سلام دوستان عزیز ، امیدوارم که حال همگی شما خوب باشه و بااموزش لاراول امروز در خدمت شماهستم.

۱٫ نصب Laravel

2. پیکربندی

· آشنایی با تنظیمات ساده و پیکربندی

· تنظیم و پیکربندی محیط اجرای اپلیکیشن

· ذخیره موقت فایل های پیکربندی (Configuration Caching)

· دسترسی به مقادیر Configuration

· نام گذاری اپلیکیشن

۳٫ Maintenance mode (قرار دادن برنامه در حالت تعمیم و نگهداشت)

نصب

سیستم مورد نیاز برای server

برای نصب Laravel Framework می بایست سیستم مورد نیاز یا شرایط لازم را فراهم کنید. همان طور که انتظار می رود این شرایط لازم همگی توسط ماشین مجازی Laravel Homestead برآورده می شوند.

· PHP >= 5.5.9

· OpenSSL PHP Extension

· PDO PHP Extension

· Mbstring PHP Extension

· Tokenizer PHP Extension

نصب Laravel

Laravel از Composer برای مدیریت dependency های خود بهره می گیرد. بنابراین، برای بهره گیری از این چارچوب نرم افزاری می بایست Composer را بر روی دستگاه خود نصب کنید.

نصب با Laravel Installer

ابتدا، Laravel Installer را با استفاده از Composer دانلود نمایید:

composer global require “laravel/installer”

لازم است دایرکتوری ~/.composer/vendor/bin را در متغیر PATH قرار دهید تا سیستم بتواند به راحتی فایل اجرایی laravel را پیدا کند.

پس از نصب (چارچوب نرم افزاری لاراول)، دستور ساده ی laravel new یک نسخه ی (نصبی) جدید Laravel در پوشه (directory) ای که شما مشخص می کنید، ایجاد می کند. به عنوان نمونه دستور laravel new blog یک پوشه به نام blog ایجاد می کند که این پوشه دربردارنده ی یک نسخه ی جدید از Laravel به همراه تمامی dependency های از پیش نصب شده آن می باشد. این روش نصب بسیار سریع تر از نصب از طریق Composer است:

laravel new blog

نصب از طریق دستور Composer create-project

به عنوان روش جایگزین، می توانید Laravel را از طریق فراخوانی (درج) دستور create-project در پنجره ی فرمان خود (terminal) نصب کنید:

composer global require “laravel/installer”

پیکربندی

آشنایی با تنظیمات ساده و پیکربندی

تمامی فایل های config چارچوب نرم افزاری Laravel در پوشه ی config ذخیره می شوند. کلیه ی تنظیمات و آپشن ها مستندسازی شده است، بنابراین می توانید به راحتی داخل فایل ها سرک کشیده و با گزینه های در اختیار خود آشنا شوید.

محل تنظیم مجوزها (Directory Permissions)

پس از نصب Laravel، ممکن است لازم باشد برخی مجوزها را پیکربندی و تنظیم کنید. پوشه های موجود در دایرکتوری های storage و bootstrap/cache بایستی به راحتی برای سرور مجازی (web server) قابل رایت باشند. در صورتی که ماشین مجازی مورد استفاده ی شما Homestead باشد، نیازی به تنظیم این مجوزها نیست زیراکه از قبل تمامی آن ها تنظیم شده هستند.

Application Key (کلید منحصربفرد برنامه)

دومین کاری که بایستی پس از نصب Laravel انجام دهید، تنظیم کلید برنامه بر روی رشته ی تصادفی می باشد. چنانچه Laravel را از طریق Composer یا Laravel installer نصب کرده اید، در آن صورت می بینید که این کلید از پیش توسط دستور key:generate برای شما تنظیم شده است. به طور معمول طول یا تعداد کاراکترهای این کلید می بایست ۳۲ باشد.

کلید منحصربفرد برنامه را می توان در فایلی که پسوند آن .env هست، تنظیم کرد. اگر نام فایل .env.example را تاکنون به .env تغییر نداده اید،هم اینک باید به انجام آن اقدام نمایید.

نکته ی بسیار مهم: توجه داشته باشید که در صورت عدم تنظیم کلید منحصربفرد برنامه، user session ها و دیگر داده های کدگذاری/encrypt شده امن نخواهد بود.

پیکربندی و تنظیمات دیگر

Laravel نیاز به هیچ پیکربندی خارج از چارچوب و اضافی بر سازمان ندارد، بنابراین می توانید بلافاصله شروع به برنامه نویسی کنید. با این حال توصیه می شود فایل config/app.php و مستندات آن را جهت آشنایی مطالعه نمایید. این فایل دربردارنده ی تنظیماتی نظیر timezone و locale است که شاید مایل باشید مطابق با نیازهای برنامه ی خود تغییر دهید.

همچنین ممکن است مایل باشید تعدادی از component ها و دیگر اجزای Laravel همچون Cache، Database و Session را بسته به احتیاجات خود تنظیم نمایید.

زمانی که نصب Laravel به کلی پایان یافت، می بایست نسبت به پیکربندی local environment (محیط اجرای برنامه) اقدام نمایید.

URL های بهینه و خوانا (pretty URL)

Apache

چارچوب نرم افزاری لاراول با یک فایل به نام public/.htaccess ارائه می شود که اجازه ی استفاده از URL های بدون پسوند index.php را می دهد. اگر از Apache به عنوان سرور مجازی و برای سرویس دهی برنامه ی تحت وب خود استفاده کنید، در آن صورت لازم است ماژول mod_rewrite را فعال نمایید.

اگر فایل .htaccess که با Laravel عرضه می شود به هر دلیلی با سرور مجازی Apache نصب شده بر روی سیستم شما سازگاری نداشت، در آن صورت می توانید از این فایل استفاده کنید:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ index.php [L]

سرور مجازی Nginx

در وب سرور Nginx، دستور (directive) زیر در فایل پیکربندی سایت (site config) امکان استفاده از URL های بهینه را فراهم می آورد:

location / {

try_files $uri $uri/ /index.php?$query_string;

}

لازم به گفتن نیست که Homestead خود به صورت اتوماتیک URL ها را بهینه و سئو پسند می کند (URL ها pretty را پیکربندی می کند).

تنظیم و پیکربندی محیط

توصیه می شود همیشه بسته به محیطی که قرار است برنامه در آن مستقر و اجرا شود، مقادیر پیکربندی یا به اصطلاح config value های مختلف را درنظر بگیرید. به عنوان مثال درایوری که برای ذخیره موقت (cache driver) در سرور محلی (local server) انتخاب می کنید قطعا با سروری که برای نصب و مستقر کردن برنامه ی تحت وب از آن کمک می گیرد (production server)، متفاوت خواهد بود.

در کل بهتر است config را بر اساس محیط اجرای برنامه تنظیم نمایید.

برای آسان سازی این امر، چارچوب کاری Laravel از یک کتابخانه ی PHP به نام DotEnv که توسط برنامه نویس Vance Lucas طراحی شد، بهره می گیرد. زمانی که Laravel را مجددا در یک مسیر دیگر نصب می کنید، root directory (پوشه ی ریشه) اپلیکیشن شما دربردارنده ی یک فایل به نام .env.example خواهد بود. حال اگر لاراول را از طریق Composer نصب کنید، این فایل به صورت خودکار به .env تغییر نام خواهد یافت. در صورت نصب لاراول به طریق دیگر، بایستی نام فایل را خود به صورت دستی ویرایش کنید.

زمانی که اپلیکیشن شما درخواستی را دریافت می کند، تمامی متغیرهای لیست شده در این فایل داخل $_ENV PHP super-global (متغیر سراسری پی اچ پی به نام $_ENV) بارگذاری می شود. می توانید از تابع کمکی (helper) env برای بازیابی مقادیر از این متغیرها استفاده کنید. در واقع اگر فایل های config لاراول را بررسی کنید، می بینید که بسیاری از تنظیمات و آپشن ها از همین تابع helper استفاده می کنند.

در صورت تمایل می توانید متغیرهای محیطی (environment variable) را مطابق نیاز برای سرور محلی (local server) و نیز محیط استقرار و اجرای برنامه برای کاربران (production environment) ویرایش نمایید. با این وجود فایل .env را نباید به source control اپلیکیشن متعهد نمایید زیرا هر توسعه دهنده / سرویس دهنده ای که برنامه ی شما را مورد استفاده قرار می دهد ممکن است به پیکربندی و تنظیمات محیطی (محیط مقصد/نصب و اجرای برنامه) متفاوتی نیاز داشته باشد (source control یک سیستم است که به واسطه ی آن می توان تغییرات واحد اطلاعاتی که در نوشتن و توسعه ی برنامه دخیل می باشد را ردگیری و مدیریت نمود).

در صورتی که با یک تیم برنامه نویسی همکاری می کنید، ممکن است لازم باشد یک فایل .env.example به برنامه ی خود اضافه کنید. با جایگذاری مقادیر مکان نگهدار (place-holder values) در فایل config (تنظیمات) نمونه، دیگر برنامه نویسان تیم به راحتی می توانند پی ببرند کدام متغیرهای محیطی را برای اجرای برنامه نیاز دارند.

دسترسی به متغیرهای محیطی برنامه ی جاری (Application Environment)

می توان از طریق متغیر APP_ENV مقیم در فایل .env به متغیرهای محیطی (environment variable) جاری اپلیکیشن پی ببرید. حال می توان از طریق متد environment در کلاس facade به نام App، به مقدار این متغیر دسترسی داشته باشید:

$environment = App::environment();

همچنین می توانید آرگومان هایی را به متد environment ارسال کنید و بدین وسیله بررسی کنید آیا مقدار متغیر محیطی با مقدار ارائه شده منطبق می باشد یا خیر. در صورت نیاز می توانید چندین مقدار به عنوان آرگومان به متد نام برده ارسال کنید:

if (App::environment(‘local’)) {

// The environment is local

}

if (App::environment(‘local’, ‘staging’)) {

// The environment is either local OR staging…

}

همچنین می توانید از طریق متد کمکی (helper method) به نام app به نمونه ی برنامه (app instance) دسترسی داشته باشید:

$environment = app()->environment();

ذخیره ی موقت فایل های پیکربندی (Configuration Caching)

برای بهبود سرعت اجرای برنامه، می بایست تمامی فایل های تنظیمات و پیکربندی را از طریق دستور artisan ” config:cache ” در یک فایل واحد به طور موقت (در حافظه ی نهان) ذخیره کنید. این کار سبب می شود تمامی تنظیمات و گزینه های فایل های پیکربندی در قالب یک فایل واحد ترکیب شده که متعاقبا به راحتی و سرعت هر چه تمام تر توسط فریم ورک لاراول قابل بارگذاری می باشد.

شما بایستی معمولا دستور php artisan config:cache را به عنوان بخشی از روال نصب و استقرار برنامه اجرا کنید. لازم به ذکر است که دستور ذکر شده را نبایست حین توسعه ی برنامه در سرور محلی (توسعه ی محلی برنامه) اجرا نمایید زیرا که تنظیمات و گزینه های پیکربندی در زمان توسعه و نوشتن برنامه به طور مکرر نیاز به تغییر دارند.

دسترسی به مقادیر Configuration

دسترسی به مقادیر فایل های پیکربندی به راحتی از طریق تابع کمکی و سراسری (hepler) config انجام می پذیرد. به منظور دسترسی به مقادیر فایل های پیکربندی لازم است از عملگر نقطه “dot” به همراه اسم فایل و آپشنی که مایلید به آن دست پیدا کنید، استفاده نمایید. همچنین می توان یک مقدار پیش فرض تعیین کرد که در صورت عدم وجود آپشن مورد نظر در فایل پیکربندی، تابع آن را به عنوان خروجی برگرداند:

$value = config(‘app.timezone’);

جهت تنظیم مقادیر config در زمان اجرا (run-time)، یک آرایه به عنوان پارامتر ورودی به تابع کمکی config پاس دهید:

config([‘app.timezone’ => ‘America/Chicago’]);

نام گذاری اپلیکیشن

پس از نصب Laravel، قطعا نوبت به نام گذاری اپلیکیشن می رسد. به صورت پیش فرض فضای (namespace) نام برنامه App بوده (پوشه ی app نیز تحت همین فضای نام قرار دارد) و به طور خودکار توسط استاندارد بارگذاری خودکار PSR-4 لود می شود. با این حال می توانید فضای نام را طوری ویرایش کنید که اسم برنامه ی شما را منعکس کند (هم نام با اسم برنامه ی شما باشد). این کار از طریق دستور آرتیزان app:name صورت می پذیرد.

به عنوان مثال، اگر نام برنامه ی شما “Horsefly” است، می توانید دستور زیر را از root برنامه فراخوانده و اجرا نمایید:

php artisan app:name Horsefly

تغییر اسم برنامه یک امر کاملا اختیاری می باشد و در صورت تمایل می توانید فضای نام برنامه را به نمونه ی پیش فرض آن (App) واگذارید.

Maintenance Mode (قرار دادن برنامه در حالت تعمیم و نگهداشت)

زمانی که برنامه ی شما در حالت maintenance قرار دارد، یک نمایه ی مخصوص برای تمامی درخواست ها به برنامه ی تحت وب شما به نمایش در می آید. این امر غیرفعال یا “disable” کردن برنامه را هنگامی که شما در حال انجام عملیات بروز رسانی یا زمانی که عملیات نگهداشت (به عنوان مثال اعمال تغییراتی در سایت) را برای برنامه اجرا می کنید، قطعا آسان تر می سازد. امکان maintenance mode در پشته ی پیش فرض میان افزار (middleware stack) برنامه ی شما قرار گرفته است. (stack یک قرارداد برای نوشتن middleware یا میان افزارهای HttpKernelInterface می باشد. با گنجاندن برنامه ی خویش در الگوی طراحی decorator شما قادر خواهید بود رفتارهای جدید از بیرون وارد برنامه ی خود نمایید. قردادها: stack middleware صرفا یک شی است که از این قراردادها پیروی می کند: ۱٫ پیاده سازی HttpKernelInterface 2. پذیرفتن decorated app به عنوان اولین آرگومان constructor 3. Decorate کردن فراخوانی handle و delegate به decorated app . middleware: میان‌افزار یک برنامه است که خدماتی به نرم‌افزارهای کاربردی ورای آن‌هایی که از طریق سیستم‌عامل موجود است ارائه می‌دهد. میان‌افزارها کار توسعه‌دهنده را در برقراری ارتباط و انجام‌دادن کارهای ورودی/خروجی (I/O) ساده می‌کند و آن‌ها می‌توانند به هدف مشخص برنامه‌یشان متمرکز شوند.)

در صورتی که برنامه را در حالت maintenance اجرا کنید، خطای HttpException با کد وضعیت (state code) 503 رخ می دهد.

برای فعال سازی maintenance mode، کافی است دستور آرتیزان down را اجرا کنید:

php artisan down

به منظور غیرفعال کردن این حالت، دستور up را فراخوانی کنید:

php artisan up

قالب های پیش فرض maintenance mode

قالب (template) پیش فرض برای پاسخ/response (در حالت نگهداشت یا maintenance mode) در فایل resources/views/errors/503.blade.php مقیم می باشد.

Maintenance mode (حالت نگهداشت) و Queue (عملیات در صف قرار گرفته)

زمانی که برنامه ی شما در حالت maintenance mode قرار دارد، هیچ عملیات صف بندی شده و در queue قرار گرفته ای انجام نمی شوند. به محض خارج شدن برنامه از این حالت، عملیات ذکر شده با روال عادی و به ترتیب مدیریت و اجرا می شوند.
آموزش ماشین مجازی Homestead لاراول