جلسه اول | ساخت یک پروژه mvc در php
بعد یه مدت گفتم بیام ساخت پروژه mvc اموزش بدم خیلی راحت تره فقط کافیه که مرحله مرحله با من پیش بیاین 🙂 .
برای شروع شما نیاز دارید تا یک برنامه به نام composer رو دانلود کنید بعد از دانلود و نصب داخل cmd کلمه composer تایپ کنید و اینتر بزنید قاعدتا باید اطلاعات composer و داکیومنتش به شما نمایش داده بشه اگه ویندوز داشتید و اطلاعات نمایش داده نشد باید مسیر فایل composer.exe رو تو داخل environment variable ست کنید . به صورت دیفالت برای اکثر سیستم ها مسیر اینطوریه :
C:\Users\Username\AppData\Roaming\Composer\vendor\bin
بعد از ست کردن شما باید به xampp یا wamp یا .. به پوشه لوکال میرید و اونجا cmd رو باز میکنید و composer init رو تایپ میکنید و اینتر همینطور next next بزنید تا فایل composer.json براتون ساخته بشه وقتی این فایل ساخته شد شما میتونید یه این فایل رو ویرایش کنید و نام پروژه تگ ها و … اطلاعدت پروژه رو توش تغییر بدید و بعد از تغییرات شما composer install رو میزنید و پوشه vendor براتون ساخته میشه .
شاید از خودتون بپرسید چرا ما این کار رو کردیم و چه ارزشی داره ؟ ولی در واقع ما با این کار یک autoload درست کردیم تا فایل ها کلاس های ما رو موقع اجرا بخونه و بتونیم از namespace ها بدون اینکه فایل ها رو به صفحه include کنیم استفاده کنیم .
خوب بعد از این کار ها داخل پوشه پروژه ما یه پوشه به اسم vendor وجود داره و ما باید یک صفحه index درست کنیم همونطور که میدونید تو وب سرور ها به صورت دیفالت بعد از باز کردن یه دایرکتوری اطلاعات به فایل index فرستاده میشه ! خوب ما این فایل index.php داخل روت برنامه مون میسازیم و داخل این فایل
فایل autoload.php رو داخل پروژه خودمون include میکنیم .
include "vendor/autoload.php" ;
اگه دقت کنید تو mvc تمام درخواست ها به یه نشانی ارسال میشه و اون نشانی باید اطلاعات url رو برای ما parse کنه و ما رو به کنترلر های خودمون هدایت کنه !
پس ما اینجا باید کاری کنیم تمام درخواست ها به index.php فرستاده بشه برای اینکار کافیه وقتی ما از وب سرویس ها apache و ngnix استفاده میکنیم فایل htaccess رو تو روت پروژه امون قرار بدیم تا درخواست ها رو برای ما هندل کنه . پس یک فایل .htaccess میسازیم ساخت فایل htaccess نیاز به نوع وب سرورتون داره پس :
#nginx
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
#apache
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
یه توضیحی در مورد این کد بالا بدم میدونید که هر درخواست قبل از اینکه به فایل های php برسه باید توسط وب سرور ها مثل آپاچی و ngnix بررسی شه این موتور ها اولین فایل که بررسی میکنند فایل .htaccess هستش و بعد به سمت فایل php میرن یه جورایی کانفیگ درخواست های ما رو انجام میدن .
تو کد بالا ما به وب سرور میگیم ببین اگه درخواست های من مربوط به یه فایل !-f یا یه !-d خاصی نبود تمام درخواست ها به فایل index.php فرستاده میشه 🙂 برای تست شما میتونید داخل فایل index.php کد زیر رو تایپ کنید
var_dump($_REQUEST) ;
قرار بدید و میبیند که درخواست ها به این فایل فرستاده میشه خوب کار ما با کانفیگ کردن تموم شد . تو درس بعدی اموزش route نویسی رو آموزش میدم :))