در این مقاله سعی داریم شما را با فریم ورک لاراول آشنا کنیم. PHP یک زبان برنامهنویسی است که توانسته تاکنون عنوان اولین انتخاب برای توسعهدهندگان وب را حفظ کند. درحالیکه عدهی بسیاری آنرا به دلیل نداشتن سرعت بالا یا تمیز نبودن مورد انتقاد قرار میدهند، اما بر اساس آخرین آمارها تقریبا ۸۰% از کل وبسایتهای جهان مبتنی بر PHP هستند.
از آنجا که هر پلتفرم هاستینگ از PHP پشتیبانی میکند، این زبان در همه جا استفاده میشود و بیشترین سازگاری را نیز دارد. این مسئله همیشه در مورد زبانهای پیشرفته وب مانند Ruby یا Python اتفاق نمیافتد.
برنامهنویسان به ندرت برنامههای وب را از ابتدا مینویسند، زیرا فریم ورکها ساختار بسیار محکمی را برای هر پروژه جدید فراهم میکنند و زمان توسعه و طراحیوب را بطور چشمگیری سرعت میبخشند.
چندین فریمورک با کیفیت بالا برای PHP دردسترس است و لاراول تقریباً بیشترین کاربرد را دارد و با بیش از ۵۱۰۰۰ ستاره در Github قرار دارد.
دلایل زیادی برای این محبوبیت وجود دارد: لاراول متن باز بوده و دارای یک موتور بسیار سریع و همچنین گستردهترین مستندسازی در میان تمام فریمورکهاست. این فریمورک میتواند به طور موثری کلیه عملکردهای مشترک یک وبسایت مدرن مانند authentication ، routing ، session management یا caching را بهانجام رساند.
Laravel بهراحتی با سیستمهای ایمیلی ادغام میشود، دارای خصوصیت built-in testing بوده و همچنین بسیار مقیاسپذیر است. علاوهبراین، بهمنظور استفاده از جدیدترین ویژگیهای PHP، دائماً بهروزرسانی میشود و کد آن نیز بسیار ایمن است و از برنامههای تحتوب در برابر خطرناکترین خطرات امنیتی محافظت میکند.
Laravel مؤلفهها و ویژگیهای بسیاری را برای تسهیل وظایف یک توسعهدهنده وب فراهم میکند. یکی از مهمترین آنها، ادغام آن با بسته ابزار مدیریتی Composer است؛ که نصب کتابخانهها و پیشنیازهای جانبی را بسیار آسان میکند.
دادههای پایگاهداده از طریق query builder قابل دسترسی هستند، اما این فریمورک دارای ابزار Eloquent ORM است که یک رکورد پیادهسازی فعال است که رابطهی بین آبجتهای database-type را تعریف میکند.
لاراول به منظور ساختن بلوکهای پویا از layout های از پیش تعریف شده و از موتور پیشرفته Blade استفاده میکند که بسیار قابلتنظیم بوده و دارای loop و عبارتهای شرطی خاص خود است.
تمامی ویژگیهای authentication درحال حاضر در این فریمورک گنجانده شدهاند و سرویسهایی مانند ثبتنام یا بازیابی رمزهای عبور را نیز مدیریت میکنند. فریمورک لاراول برای caching، از Redis برای مدیریت session و بهینهسازی زمان Load استفاده میکند.
سایر توابع پیشرفته نیز بهطور پیشفرض در Laravel دردسترس هستند. بنابراین به ابزارهای خارجی نیازی نیست. این موارد شامل سیستمکنترل نسخه Migrations و همچنین unit testing یکپارچه یا بارگذاری خودکار class نیز میشود که باعث میشود فقط کامپوننتهای استفاده شده بارگذاری شوند.
لاراول همچنین شامل یک ابزار خط فرمان یکپارچه به نام Artisan است که دستورات مفیدی را برای اتوماسیون وب اپلیکیشنها ارائه میدهد.
لاراول را میتوان در طیف گستردهای از سیستمعاملها نصب کرد. در این آموزش از یک سرور CentOS 7 استفاده خواهیم کرد که تمام بستههایش نیز به جدیدترین نسخه بهروز شدهاند.
این فریمورک به یک LAMP stack نیاز دارد که از Apache بهعنوان وبسرور و همچنین PHP و MySQL استفاده میکند. به جزئیات نصب این سرویسها نمیپردازیم، اما سرور ما از Apache 2.4 ، MySQL 5.7 و PHP 7.2 استفاده میکند. علاوه بر PHP، تعدادی از ماژولهای معمول مانند mbstring، zip، XML یا mcrypt، و همچنین ماژولهای مورد نیاز خود لاراول (OpenSSL، PDO ، tokenizer، ctype ، JSON و bcmath) نیز نصب شدهاند.
ابزار مدیریت بسته Composer توسط لاراول برای مدیریت وابستگیها و پیشنیازها استفاده میشود؛ اما میتواند برای نصب خود فریمورک نیز مورد استفاده قرار گیرد.
آخرین نسخه Composer را میتوانید با استفاده از دستور Curl دانلود کنید:
curl -sS https://getcomposer.org/installer | php
مزیت این روش این است که نصبکنندهی Composer قبل از نصب بسته، بهطور خودکار صحیحبودن تمام تنظیمات و وجود کلیه پیشنیازها را بررسی میکند.
mv composer.phar /usr/bin/composer
chmod +x /usr/bin/composer
اکنون میتوانید فایل باینری را به مکان مناسب منتقل کرده و آنرا تبدیل به فایل اجرایی کنید. بنابراین میتواند به عنوان دستور سیستمی هم مورد استفاده قرار گیرد.
اگر در حین نصب به مشکلی برخوردید، دستور Composer را اجرا کنید. این دستور بهطور خودکار عمدهترین مشکلات را بررسی و شناسایی کرده و راهکار رفع آنها را نیز پیشنهاد میکند.
لاراول به چند روش قابل نصب است. سادهترین روش توصیه شده توسط document این فریم ورک، استفاده از نصبکنندهی رسمی آن است.
نصبکننده میتواند بهراحتی با استفاده از Composer اجرا شود:
composer global require laravel/installer
متوجه خواهید شد که نصبکننده، دایرکتوری را به/root/.config/composer/ (در صورتیکه بهعنوان روت اجرا شود) تغییر میدهد. برای اینکه لاراول به درستی کار کند، مکان فولدر bin تامینکننده باید در متغیر گلوبال $PATH شما باشد:
PATH=$PATH:/root/.config/composer/vendor/bin
این دستور را در فایل .profile~/ وارد کنید تا مسیر پس از راهاندازی مجدد سیستم بهدرستی تنظیم شود.
بههمین سادگی، اکنون لاراول نصب شده و آماده اجراست. میتوانید از دستور binary برای ایجاد یک نصب جدید در فولدر موردنظر خود استفاده کنید.
بهعنوان مثال، به فولدر پیشفرض root وبسایت، در وبسرور Apache بروید و نصب جدید لاراول را در فولدری بهنام blog شروع کنید:
cd /var/www/html
laravel new blog
اگر همه چیز خوب پیش رفت، دو خط آخر خروجی باید به این شکل باشد:
Package manifest generated successfully.
Application ready! Build something amazing.
اگر فقط میخواهید لاراول را تست کنید، سادهترین راه برای انجام آن استفاده از Homestead است که یک محیط Vagrant بوده که بهسرعت میتوانید بهعنوان یک ماشین مجازی در تمام سیستمعاملهای شناخته شده نصب کنید.
این روش امکان یک نصب کاملاً کاربردی با کلیه سرویسهای از قبل تنظیمشده را فراهم میکند. مزیت دیگر این روش آن است که ماشینهای مجازی معمولاً یکبار مصرف هستند. بنابراین میتوانید فقط پس از چند دقیقه یک ماشین مجازی جدید راهاندازی کنید. بنابراین یاد میگیرید که چگونه از این فریمورک استفاده کنید.
در روش نصبی دیگر از اسکریپتهای رایج استفاده نمیشود؛ بلکه مستقیماً با استفاده از دستور create-project در Composer اجرا میشود. در نهایت، با اجرای دستور زیر میتوانید لاراول را با استفاده از development server که از قبل در php موجود است، تست کنید:
php artisan serve
Development server بر روی پورت localhost 8000 اجرا میشود و در مرورگر سیستم لوکال شما قابل دسترسی است. البته این گزینه نباید در یک محیط تولید استفاده شود.
روت وبسرور شما اکنون باید به فهرست عمومی لاراول اشاره کند. اگر از یک دامنه واقعی استفاده میکنید، برای این منظور میتوانید یک بلوک هاست مجازی را در آپاچی تنظیم کنید. در غیر این صورت میتوانید دستور document root پیشفرض را در فایل به etc/httpd/conf/httpd.conf تغییر دهید:
DocumentRoot “/var/www/html/blog/public”
آپاچی باید از نو راهاندازی شود تا این تغییر اعمال شود.
مرحله بعدی رفع مجوزهای فولدر است. اگر لاراول را مانند مثال بالا به صورت روت نصب کرده باشید، وب سرور مجوز نوشتن را نخواهد داشت. سادهترین گزینه در این حالت تغییر بازگشتی مالکیت کل فولدر بلاگ به apache:apache است. Apache به مجوز نوشتن (write permission) در تمام فولدرهای موجود در فضای حافظه و مسیر bootstrap/cache نیاز دارد.
پس از تنظیمات document root و تنظیم مجوزها، صفحه mail برنامه شما باید به این صورت باشد:
تمام فایلهای تنظیمات بهراحتی در فولدر config قرار دارند. میتوانید بهراحتی به مشاهده این فایلها بپردازید، همه گزینهها به خوبی مستند شدهاند و بهراحتی میتوانید با کمک منابع آنلاین دیگر توضیحات دقیقتر در مورد آنها را پیدا کنید.
معمولترین گزینههایی که باید تغییر کنند، معمولاً timezone و مقادیر متناسب با اطلاعات منطقه یا local value هستند که در فایل تنظیمات app.php دیده میشوند.
آخرین مرحله اجباری که توسط توسعهدهندگان توصیه میشود این است که اطمینان حاصل کنید که application key برنامه شما بر روی random string تنظیم شده است. اگر لاراول را از طریق Composer یا اسکریپت نصب کرده باشید، یک کلید تصادفیrandom key برای شما ایجاد شده است و میتوانید آنرا در فایل مخفی env. در مسیر روت پروژه پیدا کنید.
داشتن یک کلید تصادفی random key به منظور رمزگذاری دادههای بسیار حساس مانند user session و محافظت از حریم شخصی کاربر privacy بسیار مهم است.
تبریک میگویم، شما اکنون یک پروژه کاملاً کاربردی لاراول دارید. اکنون باید تنظیمات دیگر مانند پایگاه داده و گزینههای caching را بهبود ببخشید. در اینجا این تنظیمات را شرح نمیدهیم، زیرا در منابع رسمی و غیررسمی مختلف به خوبی به آنها پرداخته شده است.
نصب پیشفرض لاراول یک فایل htaccess. در فولدر عمومی ایجاد میکند که URL ها را بازنویسی میکند تا آنها را برای کاربر نهایی زیباتر کند.
قوانین در این فایل تا زمانی که ماژول mod_rewrite در آپاچی فعال باشد، باید بطور پیشفرض کار کنند. با دستور زیر میتوانید این کار را بهراحتی تست کنید، خروجی باید به صورت “(rewrite_module (shared” باشد:
httpd -M | grep rewrite
برای اینکه پروژههای لاراول شما تعاملیتر و قدرتمندتر شود، Laravel Backpack را نیز نصب و تنظیم خواهیم کرد. بسته اصلی یک رابط بصری برای Laravel فراهم میکند که بسیاری از کارها مانند authentication و notification ها را ساده میکند. نصب بستههای بیشتر به شما امکان میدهد تا پنلهای مدیریتی پیچیدهتری را برای برنامههای خود ایجاد کنید.
پیش از ادامه، باید اطمینان حاصل کنید که نام کاربری و بانک اطلاعاتی را برای پروژه خود در MySQL ایجاد کردهاید و سپس credentials صحیح را در فایل env. خود وارد کنید.
برای ایجاد نام کاربری و بانک اطلاعاتی، دستورات زیر را در mysql اجرا کنید:
create database database_name;|
create user ‘user_name’@’localhost’ identified by ‘strong_password’;
grant all privileges on database_name.* to ‘user_name’@’localhost’;
flush privileges;
ماژول Backpack اصلی، اکنون با استفاده از Composer قابل نصب است:
composer require backpack/base
php artisan backpack:base:install
اکنون میتوانید به دموی پنل مدیریتی در مرورگر خود به آدرس <IP_or_domain>/ vendor/adminlte/ دسترسی پیدا کنید.
ماژول بعدی برای نصب backpack/CRUD است:
composer require backpack/crud
دستورات زیر را برای ایجاد فولدر بارگذاری و انتشار فایلهای مختلف مورد نیاز اجرا کنید:
mkdir public/uploads
php artisan elfinder:publish
php artisan vendor:publish –provider=”Backpack\CRUD\CrudServiceProvider” –tag=”public”
php artisan vendor:publish –provider=”Backpack\CRUD\CrudServiceProvider” –tag=”lang”
php artisan vendor:publish –provider=”Backpack\CRUD\CrudServiceProvider” –tag=”config”
php artisan vendor:publish –provider=”Backpack\CRUD\CrudServiceProvider” –tag=”elfinder”
فایل config/filesystems.php را ویرایش نموده و این بلوک را اضافه کنید تا upload disk تعریف شود:
‘uploads’ => [
‘driver’ => ‘local’,
‘root’ => public_path(‘uploads’),
],
نصب مابقی ماژولهای Backpack اختیاری است. بسیاری از این آیتمها وجود دارد و نیازی به نصب آنها نیست مگر اینکه برای پروژه شما ضروری باشند.
به منظور استفاده در این مقاله، سه مورد از رایجترینهای آنها را نصب و تنظیم خواهیم کرد.
اولین مورد از آنها langfilemanager است:
composer require backpack/langfilemanager
دستورات بعدی برای تنظیم بسته و انتشار فایلهایش مورد نیاز است:
php artisan migrate –path=vendor/backpack/langfilemanager/src/database/migrations
php artisan db:seed –class=”Backpack\LangFileManager\database\seeds\LanguageTableSeeder”
php artisan vendor:publish –provider=”Backpack\LangFileManager\LangFileManagerServiceProvider” –tag=”config”
php artisan vendor:publish –provider=”Backpack\LangFileManager\LangFileManagerServiceProvider” –tag=”lang”
backup manager یکی دیگر از ماژولهای بسیار مفید است که نصب آن نیز بسیار آسان است:
composer require backpack/backupmanager
php artisan vendor:publish –provider=”Backpack\BackupManager\BackupManagerServiceProvider”
فایل config/filesystems.php را ویرایش کنید و یک بلوک جدید برای تعریف دیسک اضافه کنید:
‘backups’ => [
‘driver’ => ‘local’,
‘root’ => storage_path(‘backups’), // that’s where your backups are stored by default: storage/backups
],
این ماژول با رایجترین ارائهدهندگان فضای ابری سازگار است، بنابراین میتوانید درایور را برای ذخیره دادههای خود در فضاهای دیگر مانند Amazon S3، Google Cloud یا Dropbox تعریف کنید.
گزینههای دقیقتر تهیه نسخه پشتیبان در فایل تنظیمات config/laravel-backup.php موجود است. در همین حال در فایل app/Console/Kernel.php میتوانید یک تابع برنامهریزی شده را برای بکآپگیری خودکار تعریف کنید.
آخرین ماژول اختیاری Backpack که قصد داریم نصب کنیم، log manager است:
composer require backpack/logmanager
مانند سایر ماژولها، فایل config/filesystems.php باید ویرایش شود تا با اضافهکردن این بلوک یک filesystem تعریف شود:
‘storage’ => [
‘driver’ => ‘local’,
‘root’ => storage_path(),
],
تنظیم پیشفرض Backpack چرخش روزانه log file است، بنابراین روزانه فقط یک مورد دردسترس خواهد بود. اگر میخواهید یک فایل log روزانه داشته باشید، این دستور را در تنظیمات env. خود اضافه کنید:
همین تنظیمات را میتوان در فایل config/app.php نیز اعمال کرد.
آموزشهای بسیار عالی برای یادگیری لاراول وجود دارد، اما احتمالاً بهترین گزینه سری آموزشی Laravel From Scratch است که در وبسایت رسمی آن قرار دارد.
این مجموعه شامل ویدیوهای رایگان است که در ۳۸ قسمت تقسیم شده و برای کاربران جدید طراحی شده است. این آموزشها بهطور مداوم آپدیت میشوند تا بازتابی از آخرین ویژگیهای Laravel باشند. تکمیل این دوره آموزشی میتواند یک نقطه شروع عالی در حرفه شما بهعنوان یک توسعهدهندهوب باشد.
لاراول یک فریمورک مبتنی بر php بسیار قدرتمند است و تسلط بر آن میتواند بسیار سودمند باشد. در این مقاله، ویژگیهای اصلی فریمورک و همچنین کلیه اقدامات مورد نیاز برای نصب و اجرای اجزای آن را ارائه دادهایم. همچنین از رابطگرافیکی Backpack گفتیم که تا حد زیادی روند ساخت یک پروژه جدید را سادهتر میکند. چنانچه در هر کدام از مراحل با مشکل یا نکتهی مبهمی مواجه شدید، آن را با ما در میان بگذارید تا شما را راهنمایی کنیم.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.