15 پکیج ضروری برای گسترش Laravel

گردآوری و تالیف : عرفان کاکایی
تاریخ انتشار : 14 شهریور 1397
دسته بندی ها : پی اچ پی

Laravel یکی از معروف‌ترین فریم‌وورک‌های PHP برای توسعه وب‌اپلیکیشن‌ها است. این فریم‌وورک امکانات زیای مانند routing ساده و سریع، راه‌های مختلف برای دسترسی به دیتابیس‌های مربوطه، تزریق Dependency قدرتمند و... را دارد.

در این مقاله، ۱۵ کتابخانه PHP عالی و اوپن سورس برای گسترش Laravel را با شما به اشتراک خواهیم گذاشت. شما می‌توانید به راحتی آن‌ها را در هر پروژه Laravel که دارید شامل کرده، و ابزار مختلفی را برای ارتقای جریان کاری خود اضافه کنید.

شما بصورت رایگان میتوانید کار با لاراول را در دوره آشنایی با لاراول فرا بگیرید 

Laravel Debugbar

پکیجی برای Laravel 5، که یک نوار توسعه دهنده برای خطایابی کد PHP و Laravel را اضافه می‌کند. گزینه‌های زیادی وجود دارند که شما را قادر می‌سازند تا تمام queryها را نمایش دهید، اطلاعات بیشتری درباره route فعلی به دست بیاوید، viewهایی که در حال حاضر بارگذاری شده‌اند را نمایش دهید و...

// تمام آرگومان‌ها به عنوان یک پیام خطایابی از میان برداشته خواهد شد

debug($var1, $someString, $intValue, $object);

// اندازه‌گیری زمان رندر یا دیگر رویدادها

start_measure('render','Time for rendering');

stop_measure('render');

add_measure('now', LARAVEL_START, microtime(true));

measure('My long operation', function() {

    // کاری را انجام بده...

});

Entrust

Entrust یک پکیج Laravel 5 است که به شما راه‌های مختلفی برای اضافه کردن مجوزهای بر پایه نقش (role) کاربر به پروژه خود می‌دهد. این کتابخانه ۴ جدول جدید اضافه می‌کند: roles، perissions، role_user و permission_role، که می‌توانید برای راه‌اندازی نقش‌های مختلف با سطوح مختلف دسترسی استفاده کنید.

// ساخت نقش‌ها و مجوزها

$admin = new Role();

$admin->name = 'admin';

$admin->display_name = 'User Administrator'; // optional

$admin->description  = 'User is allowed to manage and edit other users'; // optional

$admin->save();

Socialite

Socialite‌ راه ساده و آسانی برای مدیریت احراز هویت OAuth فراهم می‌کند. این پکیج کاربر را قادر می‌سازد تا از طریق برخی شبکه‌های اجتماعی و سرویس‌های معروف مانند Facebook، Twitter، Google، GitHub و BitBucket وارد شود.

$user = Socialite::driver('github')->user();

$token = $user->token;

$refreshToken = $user->refreshToken; // not always provided

$expiresIn = $user->expiresIn;

$user->getId();

$user->getName();

$user->getEmail();

$user->getAvatar();

User Verification

پکیجی که شما را قادر می‌سازد تا کاربران را تایید کرده، و ایمیل‌ها را اعتبارسنجی کنید. این پکیج یک نشانه تایید برای کاربران ثبت شده می‌سازد، یک ایمیل به همراه لینک نشانه تایید می‌فرستد، تایید نشانه را مدیریت می‌کند و کاربر را به عنوان یک کاربر تایید شده قرار می‌دهد.

protected function validator(array $data)

{

    return Validator::make($data, [

        'name' => 'required|max:255',

        'email' => 'required|email|max:255|unique:users',

        'password' => 'required|min:6|confirmed',

    ]);

}

Tinker

Tinker شما را قادر می‌سازد تا از طریق خط دستوری و دسترسی به تمام Eloquent jobها، رویداها و آبجکت‌ها با برنامه Laravel خود در تعامل باشید. این پکیج قبلا بخشی از Laravel بود، اما پس از نسخه 5.4 یک افزونه اختیاری است که نیاز به نصب جداگانه دارد.

Breadcrumps

با استفاده از این پکیج، می‌توانید صفحات کنترل breadcrump را به روشی ساده و راحت بسازید. این پکیج برخی از معروف‌ترین فریم‌وورک‌های frontend مانند Bootstrap، Bulma، Foundation و Materialize پشتیبانی می‌کند.

// Home > Photos

Breadcrumbs::register('photo.index', function ($breadcrumbs) {

    $breadcrumbs->parent('Home');

    $breadcrumbs->push('Photos', route('photo.index'));

});

//  Home > Photos > Upload Photo

Breadcrumbs::register('photo.create', function ($breadcrumbs) {

    $breadcrumbs->parent('photo.index');

    $breadcrumbs->push('Upload Photo', route('photo.create'));

});

Eloquent-Sluggable

Slug کردن به معنی ساخت یک نسخه ساده شده، و URL دوست از یک رشته با تبدیل آن به صورت سر هم و حذف کردن فاصله‌ها، ampersandها (&) و... است. با استفاده از Eloquent-Sluggable می‌توانید به راحتی برای تمام مدل‌های Eloquent در پروژه خود، اسلاگ بسازید.

class Post extends Eloquent

{

    use Sluggable;

    protected $fillable = ['title'];

    public function sluggable() {

        return [

            'slug' => [

                'source' => ['title']

            ]

        ];

    }

}

$post = new Post([

    'title' => 'My Awesome Blog Post',

]);

// $post->slug is "my-awesome-blog-post"

Migration Generator

یک پکیج Laravel که می‌تواند مهاجرت‌هایی از یک دیتابیس موجود، شامل ورودی‌ها و کلید‌های خارجی انجام دهد. وقتی که این دستور را اجرا می‌کنید، مهاجرتی برای تمام جداول در دیتابیس خود ایجاد می‌کنید:

php artisan migrate:generate

همچنین می‌توانید فقط جداول خاصی که می‌خواهید را انتخاب کنید:

php artisan migrate:generate table1,table2

NoCaptcha

پکیج Laravel 5 برای پیاده‌سازی اعتبارسنجی ضد ربات Google’s reCAPTCHA، و محافظت از فرم‌های شما در مقابل اسپم. برای استفاده از این سرویس، باید یک کلید API رایگان تهیه کنید.

// جلوگیری از خطای اعتبارسنجی

NoCaptcha::shouldReceive('verifyResponse')

    ->once()

    ->andReturn(true);

// فراهم کردن ورودی مخفی برای اعتبارسنجی اجباری

NoCaptcha::shouldReceive('display')

    ->zeroOrMoreTimes()

    ->andReturn('');

Artisan View

یک ابزار خط دستوری که تعدادی دستوری Artisan برای کار با viewها در برنامه شما اضافه می‌کند. این ابزار شما را قادر می‌سازد تا به طور خودکار الگوهای view را بدون نیاز به ایجاد دستی فایل‌های blade، تولید کنید.

# Create a view 'index.blade.php' in the default directory

$ php artisan make:view index

# Create a view 'index.blade.php' in a subdirectory ('pages')

$ php artisan make:view pages.index

# Add a section to the view

$ php artisan make:view index --section=content

Laravel Backup

با استفاده از این پکیج Laravel، می‌توانید از تمام فایل‌ها در پروژه خود پشتیبانی گیری کنید. تنها کاری که باید انجام دهید، اجرای این دستور است:

php artisan backup:run

این دستور یک فایل zip به همراه تمام فایل‌ها در شاخه مورد نظر و دیتابیس شما می‌سازد. این فایل می‌تواند در هر file systemای ذخیره شود.

CORS Middleware

راه‌اندازی CORS (Headerهای به اشتراک گذاری منبع میان ریشه‌ای = Cross-Origin Resource Sharing Headers) بر روی وبسایت خود می‌تواند کار سخت و طولانی‌ای باشد. با این کتابخانه Laravel، روند پیکربندی بسیار ساده شده است. این کتابخانه گزینه‌های CORS را مدیریت می‌کند و headerهای CORS را طبق میل شما می‌سازد.

return [
    'supportsCredentials' => false,
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['Content-Type', 'X-Requested-With'],
    'allowedMethods' => ['*'], // ex: ['GET', 'POST', 'PUT',  'DELETE']
    'exposedHeaders' => [],
    'maxAge' => 0,
]

Laravel GraphQL

GraphQL یک زبان data query است که جایگزینی برای معماری سنتی REST فراهم می‌کند. توسعه دهندگان ساختار داده‌های مورد نیاز را تعریف می‌کنند، و دقیقا همان ساختار را از سرور دریافت می‌کنند. این پکیج در راه‌اندازی و استفاده از GraphQL در پروژه خود، به شما کمک می‌کند.

Laravel Mix

Laravel Mix یک API غنی برای تعریف build stepهای Webpack برای پروژه شما، فراهم می‌کند. این کتابخانه از برخی پیش‌پردازنده‌های CSS و JavaScript رایج استفاده می‌کند که می‌توانند به هم متصل شده، و assetهای شما را تغییر شکل داده و قالب‌بندی کنند.

mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');

Laravel Extended Generators

کتابخانه‌ای از گروه Laracasts که برخی تولیدات را برای جلوگیری از هدر رفتن زمان در طی توسعه پروژه شما، فراهم می‌کند. این کتابخانه شما را قادر می‌سازد تا به سرعت مدل‌ها، viewها، کنترلرها، مهاجرت‌ها، seedها و... را راه‌اندازی کنید.

منبع

مقالات پیشنهادی

Laravel-Excel - تبدیل کردن ساده اطلاعات مدل به اکسل

امروز من می خوام به طور خلاصه بررسی اجمالی در مورد پکیج Laravel-Excel داشته باشم . به نظرم احتیاج به این نیست که در مورد این مطلب توضیح خاصی بدم چون ش...

Laravel JSON - پوشش ساده‌ای برای JSON، جهت کشف خطاها

Laravel JSON پکیجی سبک است که فرایند Encode کردن و Decode کردن در JSON را با نمایش exception‌هایی بر روی خطا، آسان تر می‌کند.

مقدمه‌ای بر تست پروژه لاراولی بوسیله Laravel Dusk

یکی از بزرگترین مشکلاتی که در PHPUnit وجود داشت این بود که تست نرم‌افزارهای برپایه JavaScript غیرممکن بود. با Dusk میتونید براحتی ویژگی‌های Client-sid...

آموزش کار با Laravel Tinker

لاراول شامل یک REPL قدرتمند به نام Tinker هست که توسط PsySH console قدرت گرفته است. کنسول Tinker به شما اجازه میده که با اپلیکیشن لاراول از طریق دستور...