یکی از مزایای مهم کار با لاراول، آسان بودن فرآیند توسعه ی اپلیکیشن است. زمانی که بر روی یک پروژه ی جدید کار می کنید، دیر یا زود خواهید فهمید که برای اجرای بخش های روتین اپلیکیشن، مثل احراز هویت یا کشینگ (Caching)، به حجم زیادی از برنامه نویسی نیاز دارید. پکیج های لاراول می توانند زحمت شما را به عنوان توسعه دهنده، در نوشتن بخش های روتین و زمان بر اپلیکیشن، کم کنند. پکیج ها کارایی اپلیکیشن شما را ارتقا می دهند و به راحتی می توانید آن ها را در هر قسمت از کد خود استفاده کنید. در واقع، به قول همان مثل معروف، پکیج ها نیاز شما را به اختراع دوباره ی چرخ، مرتفع می کنند. برای مثال، با استفاده از پکیج های لاراول، می توانید از روش های مختلفی برای دسترسی به دیتابیس های رابطه ای، دیباگ کردن، تبدیل تاریخ و... استفاده کنید. در ادامه 10 مورد از بهترین پکیج های لاراول را به شما معرفی خواهیم کرد. پس تا انتهای مقاله با ما همراه باشید.
انواع پکیج ها
دو نوع پکیج وجود دارد: مستقل از فریمورک و وابسته به فریمورک. پکیج های مستقل از فریمورک، علاوه بر لاراول، برای سایر پکیج های PHP هم مناسب هستند، اما پکیج های وابسته به فریمورک، فقط ویژه ی فریمورک لاراول هستند.
توسعه ی پکیج
شما هم به عنوان یک توسعه دهنده ی لاراول می توانید پکیج لاراول خود را ایجاد کنید. به صورت خلاصه، برای ایجاد و توسعه ی پکیج در لاراول، 4 قدم وجود دارد:
- ایجاد فایل composer.json برای پکیج جدید
- افزودن Service Provider
- ایجاد Alias
- ایجاد کلاس Facade
موارد فوق، 4 قدم مهم در نوشتن پکیج برای لاراول هستند.
نصب پکیج
روش اصلی نصب پکیج در پروژه ی لاراول، به وسیله ی Composer است. Composer ابزاری برای مدیریت وابستگی ها در PHP است. دستور کلی نصب پکیج در لاراول، به شکل زیر است:
composer require package_owner/package_nameComposer به صورت خودکار، پکیج را برای شما لود می کند. تنها کاری که نیاز است شما انجام دهید، ایجاد یک شیء از کلاس پکیج است:
$package = new Namespace\Package;اکنون می توانید از ویژگی های مختلف پکیج موردنظرتان، استفاده کنید. در ادامه، به معرفی و بررسی 10 مورد از بهترین پکیج های لاراول خواهیم پرداخت.
پکیج Sociallite
کاربران اپلیکیشن های مختلف ترجیح می دهند که به جای ایجاد اکانت برای هر اپلیکیشن، از اکانت خود در اپلیکیشن های شناخته شده، بدون نیاز به وارد کردن اطلاعات جدید و تنها با چند کلیک استفاده کنند. Sociallite یکی از محبوب ترین پکیج های لاراول است که به منظور احراز هویت به وسیله ی شبکه های اجتماعی مثل فیس بوک، توییتر، گیت هاب، گوگل و چند مورد دیگر استفاده می شود. با استفاده از دستور زیر می توانید این پکیج را در اپلیکیشن خود نصب کنید:
composer require laravel/socialiteدر فایل services.php در پوشه ی config مربوط به پروژه ی خود، می توانید تنظیمات مربوط به شبکه های اجتماعی مختلف را ست کنید:
'github' => [
'client_id' => env('GITHUB_CLIENT_ID'),
'client_secret' => env('GITHUB_CLIENT_SECRET'),
'redirect' => 'http://your-callback-url',
],
...اطلاعات مختلفی از کاربر را می توانید به شکل زیر به دست آورید:
$user = Socialite::driver('github')->user();
// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
// OAuth One Providers
$token = $user->token;
$tokenSecret = $user->tokenSecret;
// All Providers
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();برای دیدن مستندات کامل این پکیج، می توانید به صفحه ی پکیج Socialite در وب سایت رسمی لاراول مراجعه کنید.
پکیج Intervention Image
توسعه دهنده ها در اپلیکیشن های خود، عموما نیاز دارند تا علاوه بر بارگذاری تصاویر ارسالی، آن ها را دستکاری کنند؛ مثل تغییر سایز عکس، ایجاد تصاویر بندانگشتی، ایجاد Watermark بر روی تصاویر، کاهش حجم و کیفیت تصاویر. تمامی این ویژگی ها، به علاوه ی ویژگی های جذاب دیگری را می توانید با نصب پکیج Intervention Image بر روی پروژه ی لاراولی خود داشته باشید. با استفاده از دستور زیر می توانید پکیج را بر روی پروژه ی خود نصب کنید:
composer require intervention/imageپس از نصب با مراجعه به فایل config/app.php، در آرایه ی providers$ خط زیر که Service Provider مربوط به این پکیج است را اضافه کنید:
Intervention\Image\ImageServiceProvider::classسپس Facade پکیج را به آرایه ی aliases$ اضافه کنید:
'Image' => Intervention\Image\Facades\Image::classاکنون می توانید به راحتی از ویژگی های جذاب این پکیج استفاده کنید:
// open an image file
$img = Image::make('public/foo.jpg');
// now you are able to resize the instance
$img->resize(320, 240);
// and insert a watermark for example
$img->insert('public/watermark.png');
// finally we save the image as a new file
$img->save('public/bar.jpg');برای دیدن مستندات کامل این پکیج، می توانید به وبسایت رسمی پکیج Image Intervention مراجعه کنید.
پکیج Laravel Debugger
هر توسعه دهنده ای نیازمند آن است که کارایی اپلیکیشن خود را بهبود ببخشد و برای این منظور، نیاز دارد بداند که موقع بروز اخطارهای مختلف، دقیقا چه اتفاقی می افتد. پکیج Laravel Debugger یکی از بهترین پکیج های لاراول برای این منظور است. این پکیج یک نوار ابزار را در حالت توسعه در اختیار توسعه دهنده قرار می دهد و کوئری های اجرا شده، Exceptionها، زمان اجرا، میزان استفاده از حافظه، Viewها، سشن ها و اطلاعات مفید دیگری را در اختیار توسعه دهنده قرار می دهد. با استفاده از دستور زیر می توانید این پکیج را نصب کنید:
composer require barryvdh/laravel-debugbar --devاین پکیج در حالتی که مقدار متغیر APP_DEBUG در فایل env. برابر true باشد، فعال می شود. می توانید به جای استفاده از ()var_dump یا ()dd، پیام ها یا مقادیر دلخواه را در نوار ابزار این پکیج نمایش دهید:
Debugbar::info($yourobject);
Debugbar::error('Any error message!');
Debugbar::warning('Watch out the message');
Debugbar::addMessage('Another message', 'my_level');شیوه ی نمایش نوار ابزار در اپلیکیشن لاراول به صورت زیر است: 
برای دیدن مستندات کامل این پکیج، می توانید به مخزن پکیج Laravel Debugger در وب سایت گیت هاب مراجعه کنید.
پکیج Laravel Permission
نقش ها و سطوح دسترسی، بخش ضروری تعداد زیادی از اپلیکیشن ها هستند. اگر شما نیز به دنبال مدیریت نقش ها و سطوح دسترسی کاربران در پروژه ی لاراولی خود هستید، پکیج Laravel Permission، این امکان را از طریق دیتابیس در اختیار شما قرار می دهد. این پکیج، دستورات Artisan، Middlewareها، دستورهای Blade و موارد متعدد دیگری را در اختیار توسعه دهنده قرار می دهد. برای نصب آن، از دستور زیر استفاده کنید:
composer require spatie/laravel-permissionپس از آن با دستور زیر، فایل config/permission.php و Migration را Publish کنید:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"سپس کش اپلیکیشن خود را با یکی از دستورات زیر پاک کنید:
php artisan optimize:clear
# or
php artisan config:clearحالا جداول مربوط به این پکیج را ایجاد کنید:
php artisan migrateسپس Trait با نام HasRoles را به مدل یا مدل های کاربران خود اضافه کنید:
use Illuminate\Foundation\Auth\User as Authenticatable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
// ...
}اکنون می توانید از ویژگی های جذاب این پکیج استفاده کنید:
// Adding permissions to a user
$user->givePermissionTo('edit articles');
// Adding permissions via a role
$user->assignRole('writer');برای مشاهده ی مستندات کامل این پکیج، می توانید به صفحه ی پکیج Laravel Permission در وبسایت Spatie مراجعه کنید.
پکیج Laravel Excel
یکی از ویژگی های معمول وب اپلیکیشن ها، گرفتن ورودی و خروجی با فرمت CSV و Excel است. پکیج Laravel Excel، استفاده از این ویژگی را بسیار آسان کرده است. برای نصب این پکیج می توانید از دستور زیر استفاده کنید:
composer require maatwebsite/excelاستفاده از این پکیج بسیار آسان است و به سادگی می توانید عملیات موردنظر خود را انجام دهید. برای مثال، با استفاده از دستور زیر می توانید یک کلاس Export در مسیر app/Exports برای مدل User ایجاد کنید:
php artisan make:export UsersExport --model=Userسپس در کنترلر می توانید از کلاس ایجاد شده استفاده کنید:
<?php
namespace App\Http\Controllers;
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
class UsersController extends Controller
{
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx');
}
}برای مشاهده ی مستندات کامل این پکیج، می توانید به وب سایت رسمی پکیج Laravel Excel مراجعه کنید.
پکیج Laravel Backup
این پکیج، یک بک آپ از اپلیکیشن شما ایجاد می کند. بک آپ ایجاد شده، یک فایل Zip است که تمامی فایل ها را در پوشه هایی که مشخص می کنید، به همراه یک Dump از دیتابیس اپلیکیشن، شامل می شود. این بک آپ، می تواند در هر یک از Filesystemهایی که در اپلیکیشن خود پیکربندی کرده اید، ذخیره شود. با استفاده از دستور زیر پکیج را نصب کنید:
composer require spatie/laravel-backupاستفاده از این پکیج بسیار آسان است. کافی است که دستور زیر را اجرا کنید:
php artisan backup:runبرای مشاهده ی مستندات کامل این پکیج، می توانید به مخزن پکیج Laravel Backup در وب سایت گیت هاب مراجعه کنید.
پکیج Laravel IDE Helper Generator
اکثر توسعه دهنده ها برای توسعه ی اپلیکیشن های لاراول از IDEهایی مثل PhpStorm یا Netbeans استفاده می کنند. این پکیج برای بهبود تکمیل خودکار یا Auto Completion در ادیتورهای کد استفاده می شود. این پکیج یک فایل را ایجاد می کند که برای IDEها و ادیتورهای کد قابل فهم است. این فایل بر اساس محتوای پروژه ی شما ایجاد می شود؛ بنابراین همواره به روز است. برای نصب آن می توانید از دستور زیر استفاده کنید:
composer require --dev barryvdh/laravel-ide-helperبرای مشاهده ی مستندات کامل این پکیج، می توانید به مخزن پکیج Laravel IDE Helper Generator در وب سایت گیت هاب مراجعه کنید.
پکیج No Captcha
مدت هاست که برای جلوگیری از حمله ی ربات ها، به جای کدهای امنیتی قدیمی یا همان Captcha، در اکثر اپلیکیشن ها، از Google ReCaptcha استفاده می شود. این پکیج، برخلاف اسمش، قابلیت استفاده از Google ReCaptcha را به اپلیکیشن لاراول شما اضافه می کند. استفاده از آن بسیار ساده است. برای نصب این پکیج، از دستور زیر استفاده کنید:
composer require anhskohbo/no-captchaتنها نیاز دارید که Site Key و Secret Key مربوط به ReCaptcha را که تهیه ی آن رایگان است، در فایل env. قرار دهید:
NOCAPTCHA_SECRET=secret-key
NOCAPTCHA_SITEKEY=site-keyحالا به سادگی می توانید از این پکیج استفاده کنید. برای رندر فایل جاوا اسکریپت مربوط به آن می توانید از دستور زیر استفاده کنید:
{!! NoCaptcha::renderJs() !!}برای نمایش ReCaptcha:
{!! NoCaptcha::display() !!}و برای اعتبارسنجی:
$validate = Validator::make(Input::all(), [
'g-recaptcha-response' => 'required|captcha'
]);برای مشاهده ی مستندات کامل این پکیج، می توانید به مخزن پکیج No Captcha در وب سایت گیت هاب مراجعه کنید.
پکیج Laravel Horizon
پکیج Horizon یک داشبورد زیبا را برای بررسی آمار مرتبط با Queueهایی که از دیتابیس Redis استفاده می کنند، فراهم می کند. با استفاده از این پکیج به سادگی می توانید آمار و ارقام مختلف مربوط به Jobها و Queueها را رصد کنید. ابتدا با استفاده از دستور زیر آن را نصب کنید:
composer require laravel/horizonپس از نصب پکیج، برای Publish شدن فایل پیکربندی، Service Provider و فایل های CSS و جاوا اسکریپت مربوط به پکیج، دستور زیر را اجرا کنید:
php artisan horizon:installتنظیمات مربوط به پیکربندی پکیج را نیز می توانید در مسیر config/horizon.php مشاهده کنید. پس از انجام موفقیت آمیز مراحل فوق، با مراجعه به آدرس /horizon با صفحه ی زیر روبه رو می شوید. در نظر داشته باشید که به صورت پیش فرض، فقط در محیط لوکال می توانید به داشبورد دسترسی داشته باشید:

برای دیدن مستندات کامل این پکیج، می توانید به صفحه ی پکیج Laravel Horizon در وب سایت رسمی لاراول مراجعه کنید.
پکیج morilog/jalali
ایجاد تاریخ شمسی و تبدیل تاریخ میلادی به شمسی همیشه از دغدغه های توسعه دهندگان ایرانی است. پکیج morilog/jalali یک پکیج بسیار کارآمد برای کار بار تاریخ شمسی در لاراول است. شیوه ی کار با این پکیج بسیار مشابه پکیج Carbon در لاراول است و همچنین، برای تبدیل تاریخ می توانید مستقیما شیء ایجاد شده از کلاس Carbon را به شیء کلاس Jalalian و بالعکس تبدیل کنید. برای نصب نسخه ی 3 پکیج می توانید از دستور زیر استفاده کنید:
composer require morilog/jalali:3.*سپس بنا به نیاز می توانید از قابلیت های مختلف این پکیج در اپلیکیشن خود استفاده کنید:
// An example
$date = \Morilog\Jalali\Jalalian::now()
// Another example
$jDate = Jalalian::fromCarbon(Carbon::now());
// and another one
$Jalalian = '1394/11/25 15:00:00';
$dateTime = \Morilog\Jalali\CalendarUtils::createDatetimeFromFormat('Y/m/d H:i:s', $Jalalian);برای دیدن مستندات کامل این پکیج، می توانید به مخزن پکیج morilog/jalali در وب سایت گیت هاب مراجعه کنید.
جمع بندی
در این مقاله از سری مقالات آموزش لاراول، ابتدا با مفهوم پکیج در لاراول آشنا شدیم و نحوه ی استفاده از آن را فرا گرفتیم. سپس 10 مورد از بهترین پکیج های لاراول را شناختیم و شیوه ی نصب و کار با آن ها را نیز به صورت خلاصه آموختیم تا بتوانیم از آن ها برای افزایش کارایی اپلیکیشن لاراول خود استفاده کنیم. موارد فوق فقط تعداد اندکی از پکیج های موجود برای توسعه ی اپلیکیشن های لاراول هستند که ما آن ها را براساس محبوبیت بین توسعه دهندگان و نیازهای موجود، انتخاب کردیم. برای مشاهده ی پکیج های بیشتر می توانید به وب سایت Packalyst مراجعه کنید که هم اکنون، بالغ بر 15 هزار پکیج لاراول در آن موجود است. وب سایت Packagist نیز منبع عظیمی از پکیج های مربوط به زبان PHP و فریمورک های آن را در اختیار توسعه دهندگان قرار می دهد. توسعه دهندگان لاراول، روزانه پکیج های جدیدی را در این وب سایت ها، در دسترس عموم قرار می دهند. پس شما هم دست به کار شوید و با ایجاد یک پکیج جدید، در توسعه ی هرچه بیشتر این فریمورک محبوب سهیم شوید.
امیدوار هستیم که این مقاله برای شما مفید بوده باشد. خوشحال می شویم نظرات، تجربیات و سوالات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.
اگر به یادگیری بیشتر لاراول علاقه داری می توانی در دوره آموزش لاراول کاربردی (بسته پروژه محور) شرکت کنی، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژه ها به صورت کامل برنامه نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.
مقاله خوبی بود.