یکی از مزایای مهم کار با لاراول، آسان بودن فرآیند توسعه ی اپلیکیشن است. زمانی که بر روی یک پروژه ی جدید کار میکنید، دیر یا زود خواهید فهمید که برای اجرای بخشهای روتین اپلیکیشن، مثل احراز هویت یا کشینگ (Caching)، به حجم زیادی از برنامه نویسی نیاز دارید. پکیجهای لاراول میتوانند زحمت شما را به عنوان توسعه دهنده، در نوشتن بخشهای روتین و زمان بر اپلیکیشن، کم کنند. پکیجها کارایی اپلیکیشن شما را ارتقا میدهند و به راحتی میتوانید آنها را در هر قسمت از کد خود استفاده کنید. در واقع، به قول همان مثل معروف، پکیجها نیاز شما را به اختراع دوباره ی چرخ، مرتفع میکنند. برای مثال، با استفاده از پکیجهای لاراول، میتوانید از روشهای مختلفی برای دسترسی به دیتابیسهای رابطه ای، دیباگ کردن، تبدیل تاریخ و... استفاده کنید. در ادامه 10 مورد از بهترین پکیجهای لاراول را به شما معرفی خواهیم کرد. پس تا انتهای مقاله با ما همراه باشید.
انواع پکیج ها
دو نوع پکیج وجود دارد: مستقل از فریمورک و وابسته به فریمورک. پکیجهای مستقل از فریمورک، علاوه بر لاراول، برای سایر پکیجهای PHP هم مناسب هستند، اما پکیجهای وابسته به فریمورک، فقط ویژه ی فریمورک لاراول هستند.
توسعه ی پکیج
شما هم به عنوان یک توسعه دهنده ی لاراول میتوانید پکیج لاراول خود را ایجاد کنید. به صورت خلاصه، برای ایجاد و توسعه ی پکیج در لاراول، 4 قدم وجود دارد:
روش اصلی نصب پکیج در پروژه ی لاراول، به وسیله ی Composer است. Composer ابزاری برای مدیریت وابستگیها در PHP است. دستور کلی نصب پکیج در لاراول، به شکل زیر است:
composer require package_owner/package_name
Composer به صورت خودکار، پکیج را برای شما لود میکند. تنها کاری که نیاز است شما انجام دهید، ایجاد یک شیء از کلاس پکیج است:
$package = new Namespace\Package;
اکنون میتوانید از ویژگیهای مختلف پکیج موردنظرتان، استفاده کنید. در ادامه، به معرفی و بررسی 10 مورد از بهترین پکیجهای لاراول خواهیم پرداخت.
پکیج Sociallite
کاربران اپلیکیشنهای مختلف ترجیح میدهند که به جای ایجاد اکانت برای هر اپلیکیشن، از اکانت خود در اپلیکیشنهای شناخته شده، بدون نیاز به وارد کردن اطلاعات جدید و تنها با چند کلیک استفاده کنند. Sociallite یکی از محبوبترین پکیجهای لاراول است که به منظور احراز هویت به وسیله ی شبکههای اجتماعی مثل فیس بوک، توییتر، گیت هاب، گوگل و چند مورد دیگر استفاده میشود. با استفاده از دستور زیر میتوانید این پکیج را در اپلیکیشن خود نصب کنید:
composer require laravel/socialite
در فایل services.php در پوشه ی config مربوط به پروژه ی خود، میتوانید تنظیمات مربوط به شبکههای اجتماعی مختلف را ست کنید:
اطلاعات مختلفی از کاربر را میتوانید به شکل زیر به دست آورید:
$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$ اضافه کنید:
اکنون میتوانید به راحتی از ویژگیهای جذاب این پکیج استفاده کنید:
// 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 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ها و ادیتورهای کد قابل فهم است. این فایل بر اساس محتوای پروژه ی شما ایجاد میشود؛ بنابراین همواره به روز است. برای نصب آن میتوانید از دستور زیر استفاده کنید:
برای مشاهده ی مستندات کامل این پکیج، میتوانید به مخزن پکیج Laravel IDE Helper Generator در وب سایت گیت هاب مراجعه کنید.
پکیج No Captcha
مدت هاست که برای جلوگیری از حمله ی ربات ها، به جای کدهای امنیتی قدیمی یا همان Captcha، در اکثر اپلیکیشن ها، از Google ReCaptcha استفاده میشود. این پکیج، برخلاف اسمش، قابلیت استفاده از Google ReCaptcha را به اپلیکیشن لاراول شما اضافه میکند. استفاده از آن بسیار ساده است. برای نصب این پکیج، از دستور زیر استفاده کنید:
composer require anhskohbo/no-captcha
تنها نیاز دارید که Site Key و Secret Key مربوط به ReCaptcha را که تهیه ی آن رایگان است، در فایل env. قرار دهید:
برای مشاهده ی مستندات کامل این پکیج، میتوانید به مخزن پکیج 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 و فریمورکهای آن را در اختیار توسعه دهندگان قرار میدهد. توسعه دهندگان لاراول، روزانه پکیجهای جدیدی را در این وب سایت ها، در دسترس عموم قرار میدهند. پس شما هم دست به کار شوید و با ایجاد یک پکیج جدید، در توسعه ی هرچه بیشتر این فریمورک محبوب سهیم شوید.
امیدوار هستیم که این مقاله برای شما مفید بوده باشد. خوشحال میشویم نظرات، تجربیات و سوالات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.
اگر به یادگیری بیشتر لاراول علاقه داری میتوانی در دوره آموزش لاراول کاربردی (بسته پروژه محور) شرکت کنی، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژهها به صورت کامل برنامه نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.