فریم ورک یی۲ (به انگلیسی yii2) - اختصار کلمات yes it is - یکی از قدرتمندترین و پرکاربردترین فریم‌ورک‌های پی اچ پی می‌باشد.

از فریم ورک yii2 اغلب برای پروژه‌های سنگین مثل انجمن‌سازها فروشگاه‌های بزرگ و... استفاده ‌می‌شود.

فریم ورک yii2 در دو نسخه basic و Advance عرضه شده که تفاوت این دو نسخه در پوشه بندی‌ اونا هستش.

برای پروژه‌های تیمی و بزرگ از نسخه Advance فریم ورک yii2 استفاده ‌می‌شود.

دانلود پکیج آموزشی فریم ورک yii2

این پکیج آموزشی توسط مهندس سیف زاده تولید شده و به رایگان توسط ایشان منتشر شده است.

کمی درباره فریم ورک yii2

  • مانند بسیاری از فریمورک ها مدل MVC پیاده شده است.
  • Yii منطقش این است که دنبال سادگی کار است. بطور مثال اگر یک Design Pattern به پیچیدگی کار اضافه می کند خیلی راحت اون مسئله کنار گذاشته می شود و به قول معروف عطایش را به لقایش می بخشند تا سادگی کار حفظ شود.
  • می شود بطور یقین Yii2 را یک full stack نامید. بسیاری از ویژگی های جدید مثل ActiveRecordها برای بانکهای Relational و NoSQL و پشتیبانی از توسعه Rest API و پشتیبانی از کشینگ چند تایی.

Yii2 فریمورکی نیست که یک نفر توسعه داده باشد. یک تیم Core قوی پشت توسعه این فریمورک قرار دارد و بسیاری از برنامه نویسان حرفه ای که در گیتهاب فعالیت میکنند و کامیتهای خود را روی Yii2 می فرستند.
در حال حاضر Yii دو تا نسخه اصلی دارد یکی همان فریمورک قدیمی است 1.1 و دیگری 2.0
جالب است بدانید Yii نیازمند PHP 5.4.0 و یا بالاتر می باشد. کار با Yii نیازمند دانش شی گرایی می باشد.


توجه : جهت دانلود روی عنوان فصل کلیک کنید و سپس در پنجره بازه شده رو بخش مورد نظر کلیک کنید تا دانلود شود.

دانلود پکیج آموزشی فریم ورک yii2 به زبان فارسی

فصل اول. نصب و آماده محیط توسعه برای yii2
۱-۱. نصب virtualbox , vagrant و ساخت یک نمونه vm اوبونتوی 12.04
۱-۲. نصب php,mysql,apache بر روی لینوکس اوبونتوی 12.04
۱-۳. تنظیمات پایه و تنظیم ارسال ایمیل از سیستم خودتان
۱-۴. نصب و تنظیم phpmyadmin
۱-۵. نصب و تنظیم composer و نحوه نصب yii2 به کمک composer
۱-۶. نصب تمام موارد گفته شده بصورت offline برای آن عده از دوستانی که همزمان دسترسی به اینترنت ندارد و نصب yii2 بصورت آرشیو دانلود شده.


فصل دوم. گذری سریع بر yii2
این فصل را میتوان فصل تصمیم گیری دانست. بصورت سریع شما را بعضی از قسمتهای yii2‌آشنا میکند و میتواند نظر شما را جلب کد که yii2 واقعا قوی است. این فصل با ساخت دستی کنترلر و مدلها شروع شده و به استفاده از ابزار gii تمام میشود.
۲-۱. ساختار فایلها و فولدرهای yii2
۲-۲. ساخت دیتابیس و تنظیمات pdo‌ و نمونه کنترلر برای ثبت پست در cms
۲-۳. ساخت فرم برای کنترلر پست
۲-۴. استفاده از active record برای ثبت پست جدید در دیتابیس
۲-۵. ابزار gii‌ و ساخت موارد بالا بصورت سریع به کمک این ابزار(بجای نوشتن موارد تکراری).


فصل سوم. مفاهیم پایه در yii2
حالا که به این فصل رسیده‌اید پس فصل دوم توانسته شما را به ادامه فصلها متقاعد کند. اما برای ادامه شما باید نکات و مفاهیمی را یاد بگیرید. این که اصلا منظور controller‌و model چیست؟ چگونه yii2 لود و اجرا میشود؟ موارد session , cookie در yii2 به چه صورت است؟ و خلاصه ریز مواردی که نیاز بود در ابتدا یاد بگیرید.
۳-۱. نحوه لود شدن yii2
۳-۲. مفهوم alias در تنظیمات
۳-۳. استفاده از catchAll به عنوان یک مورد اضطراری
۳-۴. controllMap و نحوه استفاده از آن
۳-۵. مفهوم ماژول پر yii2
۳-۶. استفاده از پارامترهای عمومی از طریق تنظیم params
۳-۷. مفهوم extension در yii2
۳-۸. کنترلر و تنظیمات در آن
۳-۹. مدلها و موارد مربوط به model
۳۰-۱۰. views و جزئیات نمایش دیتا
۳-۱۱. ماژولها. بیان مفاهیم پایه
۳-۱۲. ویجتها در قسمت view
۳-۱۳. نحوه لود css و js‌ در صفحه. بررسی جزئیات assets
۳-۱۴. request و بررسی پارامترهای هنگام ارسال درخواست
۳-۱۵. response و بررسی پارامترهای هنگام دریافت جواب از سرور
۳-۱۶. session
۳-۱۷. cookie
۳-۱۸. بررسی خطاها و لا‌گها


فصل چهارم. دیتابیس
معمولا در برنامه‌های تحت وب دیتابیس کاربرد بسیار زیادی دارد. لذا بعد از این که در فصل‌های قبل کمی با yii2 آشنا شدید نوبت به نحوه تعامل با دیتابیس است.
۴-۱. معرفی آبجکت dao
۴-۲. نحوه query بوسیله dao
۴-۳. bind کردن پارامتر
۴-۴. فرستادن query بدون گرفتن مقدار
۴-۵. استفاده از prefix در ارتباط با دیتابیس
۴-۶. transaction بیان مفاهیم و نمونه عملی
۴-۷. isolation و بررسی انواع آن
۴-۸. ساخت query به کمک امکانات yii2 
۴-۹. متد from
۴-۱۰. متد where
۴-۱۱. استفاده از hash
۴-۱۲. order,group by و having
۴-۱۳. join و بررسی امکانات join بین جداول در yii2
۴-۱۴. union کوئری
۴-۱۵. بررسی active record
۴-۱۶. فرستادن query به کمک active record
۴-۱۷. استفاده از batch query
۴-۱۸. بررسی save,validation,message,update و delete در اکتیو رکورد
۴-۱۹. بررسی validation
۴-۲۰. تغییرات در نمایش خطای validation
۴-۲۱. massive assignmentدر اکتیو رکورد
۴-۲۲. بدست آوردن تعداد رکوردها update شده
۴-۲۳. update گروهی چند ردیف توسط updateAll
۴-۲۴. حذف رکورد از جدول به کمک active record
۴-۲۵. transaction به کمک active record
۴-۲۶. استفاده از امکانات relation در active record


فصل پنجم. فرم
بعد از فراگیری ارتباط با دیتابیس و نحوه فرستادن دستورات CRUD به سمت دیتابیس باید فرمی برای ویرایش، اضافه کردن و حذف داشته باشید. این فصل به مکانیزمهای ساخت فرم میپردازد.
۵-۱. ساخت فرم
۵-۲. بررسی اضافه کردن ruleها بخش اول
۵-۳. بررسی اضافه کردن ruleها بخش دوم
۵-۴. بررسی ruleها بخش سوم
۵-۵. آپلود فایل به کمک فرمهای Yii2


فصل ششم. نمایش داده
معمولا در برنامه‌نویس بیشترین ابزاری که خیلی مورد نیاز است، ابزارهای نمایش داده است. از گرید ویو گرفته تا لیست همگی جزوی از نیازها می‌باشد و چه دردسرها که برنامه‌نویسان برای استفاده از گریدها و لیست‌ها نمیکشند. در yii2 ابزارهای بسیار خوبی برای grid,list,pagination و detail view دارد.
۶-۱. internationalization برای ساخت نرم‌افزارهای چند زبانه و بین‌المللی
۶-۲. فرمت داده‌ها مثل ارزی، متراژی و...
۶-۳. صفحه بندی به کمک ابزار pagination
۶-۴. نمایش جزئیات به کمک detail view
۶-۵. ساخت داده برای گرید و لیست به کمک data provider
۶-۶. list view
۶-۷. grid view


فصل هفتم. کارگاه شماره۱(ساخت یک cms با امکانات اولیه نمایش و ثبت داده. همراه با پنل ادمین)
بعد از طی کردن‌فصل‌های قبلی اکنون تا حدودی با امکانات و ابزارهای yii2 آشنا شده‌اید. شما اکنون میتوانید یک cms با امکانات حداقلی ایجاد کنید. در این کارگاه همچنین با موارد جدید مثل route,captcha,pjax,navigation و نحوه طراحی سایت چند زبانه آشنا میشوید.
۷-۱. نصب و راه‌اندازی یک پروژه با yii2
۷-۲. تنظیمات عمومی
۷-۳. برگرداندن bootstrap به حالت rtl با تغییرات در assets 
۷-۴. قالب بخش وبلاگ
۷-۵. قالب بخش ادمین
۷-۶. تنظیمات دیتابیس
۷-۷. کاربران بخش ادمین
۷-۸. نمایش پست در ادمین
۷-۹. کامنت در بخش ادمین
۷-۱۰. نمایش پست در وبلاگ
۷-۱۱. نمایش یک پست در وبلاگ
۷-۱۲. نمایش پست بصورت seo بهینه از طریق دستکاری route در yii2
۷-۱۳. نحوه فرستادن query نمایش پست در وبلاگ
۷-۱۴. کامنت در وبلاگ و نحوه نمایش آنها
۷-۱۵. استفاده از ajax برای ثبت کامنت جدید(بررسی ابزار pjax)
۷-۱۶. اضافه کردن کپچا برای ثبت کامنت
۷-۱۷. سایت چند زبانه بخش اول
۷-۱۸. سایت چند زبانه بخش دوم
۷-۱۹. سایت چند زبانه بخش سوم
۷-۲۰. ابزار منو و navigation
۷-۲۱. ساخت category برای cms


فصل هشتم. امنیت
هر ابزار تحت وبی باید حداقل امنیت را داشته باشد. البته بصورت عمومی تعیین هویت کاربران در ورود به پنل‌ها جزو موارد ضروری است. همچنین نحوه ذخیره رمز عبور کاربران در دیتابیس، سیستم‌های تعیین سطح دسترسی، کد کردن داده‌های حساس و تولید رشته‌های تصادفی برای موارد مورد نیاز در این فصل بررسی میشود.
۸-۱. بررسی کلاس user در yii2
۸-۲. تنظیمات user
۸-۳. متد user
۸-۴. بررسی لاگین user
۸-۵. تعیین هویت authorization
۸-۶. تنظیمات تعیین هویت
۸-۷. سیستم rbac
۸-۸. تنظیمات برای راه‌اندازی سیستم rbac
۸-۹. داده اولیه برای سیستم rbac
۸-۱۰.استفاده از rule در سیستم rbac
۸-۱۱. کد کردن و دیکد داده‌ها در yii2
۸-۱۲. امنیت در پسورد
۸-۱۳. تولید رشته تصادفی


فصل نهم. کش
با کمی صرف وقت و دقت میتوانید فشار کاری سرور را کم کنید و داده‌هایی را که مکررا مورد دسترسی قرار میگیرند را کش کنید. در این فصل به موارد نصب و استفاده از سیستم‌های کش میپردازد.
۹-۱. تعریف سیستمهای کش 
۹-۲. دیتا در کش
۹-۳. نصب ابزار memcache
۹-۴. تنظیمات memcache و استفاده از آن
۹-۵. توابع در دسترس برای کش
۹-۶. کش متراکم یا fragment cache
۹-۷. کش کردن کامل یک صفحه
۹-۸. کش بر روی http


فصل دهم. وب‌سرویس
معمولا در تولید سامانه‌های بزرگ نیاز به ساخت ابزارهای جانبی هم هست. مثلا ساخت نرم‌افزار آندروید برای یک سایت. این موراد ارتباطی باید با وب‌سرویس انجام شود. این فصل به نصب و راه‌اندازی یک وب‌سرویس میپردازد.
۱۰-۱. معرفی وب‌سرویس و امکانات yii2 برای راه‌اندازی وب سرویس
۱۰-۲. ساخت وب‌سرویس و نحوه تست آن
۱۰-۳. لاگین و موارد امنیتی در وب‌سرویس(تعیین هویت کاربران در وب سرویس)


فصل یازدهم. کارگاه دوم (اضافه کردن امنیت به cms)
در طی فصل‌های گذشته توانسته‌اید امنیت، کش و وب سرویس را فرا بگیرید. موارد کش و وب سرویس جزو ضروریات یک cms به حساب نمی‌آیند ولی امنیت را حتما باید اضافه کنید.
۱۱-۱. نمایش دموی انجام شده از سیستم امنیت cms
۱۱-۲. تنظیمات اولیه برای راه‌اندازی rbac
۱۱-۳. اضافه، حذف و ویرایش رول‌ به کاربران
۱۱-۴. اختصاص یک نقش به کاربر


فصل دوازدهم. ماژول و extensions
ماژول یک زیر سیستم از سیستم اصلی و میتوانید حتی نرم‌افزارهای بزرگ را به قسمتهای کوچک تبدیل کنید. extension از ابزارهای جانبی که بصورت کلاسهای واحدی که میتوانند در هر کجای فریم ورک صدا زده شوند و برای شما کار بخصوصی را انجام دهند. مثلا extension برای ویرایش تصاویر.
۱۲-۱. تعریف ماژول و نحوه نوشتن یک ماژول
۱۲-۲. ساخت یک نمونه ماژول
۱۲-۳. تعریف و نحوه نوشتن extension
۱۲-۴. ساخت یک extension از روی کلاسی که از phpclasses.org دانلود میشود همراه با ثبت در github و packagist.


فصل سیزدهم. تست و با‌گ‌گیری
در yii2 ابزارهای برای تست و دیباگ برنامه وجود دارند. در این فصل به نحوه فعال‌سازی و استفاده از این ابزارها میپردازیم.
۱۳-۱. ابزارهای تست و نحوه نصب و فعال‌سازی codeception
۱۳-۲. ابزار debug


فصل چهاردهم. کارگاه سوم. (انتشار برنامه-ساخت فایل install برای مکانیزه کردن مراحل نصب)
بعد از پایان تمام فصل های تا حدودی یک cms جمع و جور را آماده کرده‌اید. اکنون در این کارگاه به مراحل ساخت یک فایل install برای مکانیزه کردن مراحل نصب و انتشار برنامه میپردازیم.
۱۴-۱. ساخت فایل install.php و انتشار برنامه.