یکی از مزایای مهم کار با لاراول، آسان بودن فرآیند توسعهی اپلیکیشن است. زمانی که بر روی یک پروژهی جدید کار میکنید، دیر یا زود خواهید فهمید که برای اجرای بخشهای روتین اپلیکیشن، مثل احراز هویت یا کشینگ (Caching)، به حجم زیادی از برنامه نویسی نیاز دارید. پکیجهای لاراول میتوانند زحمت شما را به عنوان توسعهدهنده، در نوشتن بخشهای روتین و زمانبر اپلیکیشن، کم کنند. پکیجها کارایی اپلیکیشن شما را ارتقا میدهند و بهراحتی میتوانید آنها را در هر قسمت از کد خود استفاده کنید. در واقع، به قول همان مثل معروف، پکیجها نیاز شما را به اختراع دوبارهی چرخ، مرتفع میکنند. برای مثال، با استفاده از پکیجهای لاراول، میتوانید از روشهای مختلفی برای دسترسی به دیتابیسهای رابطهای، دیباگ کردن، تبدیل تاریخ و... استفاده کنید. در ادامه 10 مورد از بهترین پکیجهای لاراول را به شما معرفی خواهیم کرد. پس تا انتهای مقاله با ما همراه باشید.
دو نوع پکیج وجود دارد: مستقل از فریمورک و وابسته به فریمورک. پکیجهای مستقل از فریمورک، علاوه بر لاراول، برای سایر پکیجهای PHP هم مناسب هستند، اما پکیجهای وابسته به فریمورک، فقط ویژهی فریمورک لاراول هستند.
شما هم به عنوان یک توسعهدهندهی لاراول میتوانید پکیج لاراول خود را ایجاد کنید. به صورت خلاصه، برای ایجاد و توسعهی پکیج در لاراول، 4 قدم وجود دارد:
موارد فوق، 4 قدم مهم در نوشتن پکیج برای لاراول هستند.
روش اصلی نصب پکیج در پروژهی لاراول، به وسیلهی Composer است. Composer ابزاری برای مدیریت وابستگیها در PHP است. دستور کلی نصب پکیج در لاراول، به شکل زیر است:
composer require package_owner/package_name
Composer به صورت خودکار، پکیج را برای شما لود میکند. تنها کاری که نیاز است شما انجام دهید، ایجاد یک شیء از کلاس پکیج است:
$package = new Namespace\Package;
اکنون میتوانید از ویژگیهای مختلف پکیج موردنظرتان، استفاده کنید. در ادامه، به معرفی و بررسی 10 مورد از بهترین پکیجهای لاراول خواهیم پرداخت.
کاربران اپلیکیشنهای مختلف ترجیح میدهند که به جای ایجاد اکانت برای هر اپلیکیشن، از اکانت خود در اپلیکیشنهای شناخته شده، بدون نیاز به وارد کردن اطلاعات جدید و تنها با چند کلیک استفاده کنند. 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 در وبسایت رسمی لاراول مراجعه کنید.
توسعهدهندهها در اپلیکیشنهای خود، عموما نیاز دارند تا علاوه بر بارگذاری تصاویر ارسالی، آنها را دستکاری کنند؛ مثل تغییر سایز عکس، ایجاد تصاویر بندانگشتی، ایجاد 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 یکی از بهترین پکیجهای لاراول برای این منظور است. این پکیج یک نوار ابزار را در حالت توسعه در اختیار توسعه دهنده قرار میدهد و کوئریهای اجرا شده، 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، این امکان را از طریق دیتابیس در اختیار شما قرار میدهد. این پکیج، دستورات 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 مراجعه کنید.
یکی از ویژگیهای معمول وب اپلیکیشنها، گرفتن ورودی و خروجی با فرمت 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 مراجعه کنید.
این پکیج، یک بکآپ از اپلیکیشن شما ایجاد میکند. بکآپ ایجاد شده، یک فایل Zip است که تمامی فایلها را در پوشههایی که مشخص میکنید، به همراه یک Dump از دیتابیس اپلیکیشن، شامل میشود. این بکآپ، میتواند در هر یک از Filesystemهایی که در اپلیکیشن خود پیکربندی کردهاید، ذخیره شود. با استفاده از دستور زیر پکیج را نصب کنید:
composer require spatie/laravel-backup
استفاده از این پکیج بسیار آسان است. کافی است که دستور زیر را اجرا کنید:
php artisan backup:run
برای مشاهدهی مستندات کامل این پکیج، میتوانید به مخزن پکیج Laravel Backup در وبسایت گیتهاب مراجعه کنید.
اکثر توسعهدهندهها برای توسعهی اپلیکیشنهای لاراول از IDEهایی مثل PhpStorm یا Netbeans استفاده میکنند. این پکیج برای بهبود تکمیل خودکار یا Auto Completion در ادیتورهای کد استفاده میشود. این پکیج یک فایل را ایجاد میکند که برای IDEها و ادیتورهای کد قابل فهم است. این فایل بر اساس محتوای پروژهی شما ایجاد میشود؛ بنابراین همواره بهروز است. برای نصب آن میتوانید از دستور زیر استفاده کنید:
composer require --dev barryvdh/laravel-ide-helper
برای مشاهدهی مستندات کامل این پکیج، میتوانید به مخزن پکیج Laravel IDE Helper Generator در وبسایت گیتهاب مراجعه کنید.
مدتهاست که برای جلوگیری از حملهی رباتها، به جای کدهای امنیتی قدیمی یا همان 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 در وبسایت گیتهاب مراجعه کنید.
پکیج 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 یک پکیج بسیار کارآمد برای کار بار تاریخ شمسی در لاراول است. شیوهی کار با این پکیج بسیار مشابه پکیج 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 و فریمورکهای آن را در اختیار توسعهدهندگان قرار میدهد. توسعهدهندگان لاراول، روزانه پکیجهای جدیدی را در این وبسایتها، در دسترس عموم قرار میدهند. پس شما هم دست به کار شوید و با ایجاد یک پکیج جدید، در توسعهی هرچه بیشتر این فریمورک محبوب سهیم شوید.
امیدوار هستیم که این مقاله برای شما مفید بوده باشد. خوشحال میشویم نظرات، تجربیات و سوالات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.
اگر به یادگیری بیشتر لاراول علاقه داری میتوانی در دوره آموزش لاراول کاربردی (بسته پروژه محور) شرکت کنی، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژهها به صورت کامل برنامه نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: