بعد از نصب Yii حال می رسیم به اجرا برنامه تحت وب خود. اگر مقاله های قبل را با ما دنبال کرده باشید، اسم پروژه را proje گذاشتیم. حال مسیر دسترسی به Yii2 بصورت زیر می شود:
اگر پیکربندی را خودتان تنظیم نکرده باشید و حالت پیشفرض باشد با لینک اول به سایت خود وارد می شوید. در این مقاله ما فرض را بر این می گذاریم که شما پیکربندی را به گونه انجام داده اید که proje/web نیاز به نوشته شدن ندارد. یعنی همان لینک دوم مد نظر ما است.
بعد از نصب با کامپوزر، صفحه اصلی سایت از لینک زیر قابل دسترسی است (دوباره تاکیید میکنم که ما فرض میکنیم پیکربندی را انجام داده اید اگر هیچ تغییر ایجاد نکرده اید شما از لینک اول جهت دسترسی استفاده کنید):
- صفحه اصلی سایت در آدرس http://localhost/index.php قابل دسترسی است.
- صفحه About
- صفحه Contact که کاربران سایت می توانند از طریق این فرم به ما ایمیل ارسال کنند.
- صفحه Login که فرم ورود را نشان می دهد و برای لاگین کردن استفاده می شود. برای ورود نام کاربری و رمز خود را admin و admin وارد کنید تا وارد سایت شوید. در این حالت لینک Login به Logout تغییر می کند.
نکته: نام کاربری و رمز عبور admin بصورت hardcode شده داخل فریمورک موجود هست و از طریق اون شما می توانید وارد سایت شوید.
ساختار فریمورک Yii2
proje/
composer.json
config/
console.php
web.php
commands/
controllers/
models/
runtime/
vendor/
views/
web/
assets/
index.php
yii
اگر دقت کرده باشید فایل پیکربندی از اسم main.php در نسخه قدیم به web.php تغییر پیدا کرده است. فریمورک Yii2 و تمام افزونه های مورد نیاز آن در پوشه vendor قرار گرفته است. در نسخه قدیم اگر یادتان باشد پوشه فریمورک کلا بیرون از پروژه قرار داشت. اگر افزونه جدیدی هم نصب کنید در همین vendor قرار میگیرد که پوشه کامپوزر هست. مدلها و کنترلرها و viewها همه در روت پوشه قرار دارند. فایل index.php به همراه assets (فایلهای css و js و...) به پوشه web منتقل شده است.
فایل yii برای اجرای فرامین تحت ترمینال مورد استفاده قرار می گیرد. در پوشه console هم فایلهای تحت خط فرمان رو قرار می دهید تا بتوانید پروژه را با دستورات تحت کنسول maintain کنید.
در کل پوشه ها در پروژه ما به دو دسته تقسیم می شوند: یک پوشه که web هست و از طریق وب در دسترس است و کاربران به آن دسترسی دارند و دسته دیگر تمامی پوشه ها به غیر از web هست که از طریق وب غیرقابل دسترس هستند تا امنیت پروژٰه از نظر دسترسی به فایلها برقرار شود.
ساختار فریمورک Yii2 بصورت زیر می باشد:
application-structure.png
entry script به همان index.php اشاره می کند که تنها محل ورود درخواست ها به سیستم است. Assetها و widgetها با view در ازتباط هستند تا فایلهای ایستا بارگذاری شوند و ویجت ها مانند ویجت تاریخ و … لود شوند. تمامی درخواست ها در نهایت به application ارسال می شود و این مورد وظیفه انتقال داده های تولید شده را به index.php دارد. Application داخل خود یک سیستم مسیریابی دارد که تشخیص می دهد که درخواست را به کدام کنترلر ارسال کند و چه چیز را فراخوانی کند.
چرخه حیات درخواست کاربر در Yii2:
application-lifecycle.png
زمانی که کاربر درخواست خود را ارسال می کند کانفیگ لود می شود و درخواست از طریق index.php به application می رود. در داخل application مسیر تشخیص داده می شود و درخواست به کنترلر مربوطه ارسال می شود. پس از ارسال درخواست به کنترلر فیلترهای موردنظر داخل فایل کنترلر اعمال می شود و در صورتی که نیاز باشد اطلاعات را از مدل مربوطه لود می کند و سپس با فراخوانی view مربوط به کنترلر پاسخ را رندر کرده و به کاربر بر می گرداند.
گیج شدید؟ پیشنهاد میکنم اگر شدید سعی کنید هر جمله رو که می خونید به تصویر نگاه کنید تا بدونید تو کدوم مرحله هستیم. ;-)
Application چیست؟ شی ای است که در index.php ایجاد می شود و تمامی المانها را در داخل خود به مانند یک طومار ذخیره میکند و سپس پاسخ هم توسط همین شی به کاربر برگردانده می شود مسئله ای که در تصویر مشهود نیست!
در مقاله بعدی وارد کدنویسی می شویم. لازم بود تا بدونید که فریمورک جدید سیستم کارش به چه شکلی شده است. :))))))))
yii2 section 3.pdf.rar