امکانات و قابلیت های جدید در لاراول 5.7

Laravel5-7

در این پست درباره قابلیت ها و امکانات جدید در لاراول 5.7 صحبت می کنیم. در لاراول 5.7 چند قابلیت جدید به همراه یک سری بهبودها و رفع باگ ها اضافه شده است.

سرفصل های این آموزش

  • نصب لاراول
  • تغییرات دایرکتوری resource
  • action url های قابل فراخوانی
  • dump server لاراول
  • بهبود پیام خطای فراخوانی لینک ها
  • تایید ایمیل
  • درگاه کاربران مهمان و سیاست گذاری ها
  • لینک های صفحه گذاری
  • استریم های خواندن/نوشتن فایل سیستم
  • Laravel Nova

امکانات جدید لاراول 5.7

در کنفرانس Laracon قبلی، Taylor Otwell برخی از تغییرات بوجود آمده در این نسخه لاراول را به شرح زیر اعلام کرد:

  • تغییرات دایرکتوری های resource
  • Action url های قابل فراخوانی
  • Dump Server لاراول
  • بهبود پیام های خطای فراخوانی های دینامیک

نصب لاراول 5.7

دستورات زیر را در محیط ترمینال برای نصب لاراول 5.7 تایپ کنید.

composer create-project laravel/laravel test dev-develop

نصب لاراول 5.7

تغییر دایرکتوری های resource

اگر پروژه را در یک نرم افزار ویرایشگر کد، باز کنید می بینید که ساختار دایرکتوری ها تغییر کرده است.در این نسخه تمام دایرکتوری های موجود در فولدر asset به دایرکتوری resource منتقل شده است.

تغییر دایرکتوری های resource در لاراول 5.7

برای بروزرسانی از لاراول 5.6 به 5.7 باید ابتدا پیکربندی Laravel Mix را بروزرسانی کنید.

let mix = require('laravel-mix');

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

سپس باید دایرکتوری را با استفاده از دستور زیر به مسیر جدید انتقال دهید:

mv resources/assets/* resources
rm -Rf resources/assets/

Action Url های قابل فراخوانی در لاراول 5.7

در لاراول 5.7 از یک سینتکس جدید برای Action Url ها استفاده شده است.

به این ویژگی نشانه گذاری چند تایی (tuple notation) و یا سینتکس آرایه فراخوانی برای اکشن های تولید کننده url گفته می شود.

در زیر چگونگی کارکرد آن در لاراول 5.7 را آورده ایم.

<?php

$url = action([UserController::class, 'index']);

در لاراول 5.6، action helperها تنها ار سبک زیر استفاده می کردند، که احتمالا با آن آشنا هستید.

<?php

$url = action('UserController@profile', ['id' => 1]);

یکی از مزیت های سینتکس آرایه فراخوانی این است که اگر شما از ویرایشگرهای متنی مثل vscode ،Sublime ،Atom و یا از IDE هایی مانند PHPStorm که از قابلیت پیمایش کد پشتیبانی می کنند، استفاده کنید می توانید بطور مستقیم داخل فایل های کنترلر پیمایش کنید.

Dump Server لاراول

Dump Server لاراول در نسخه 5.7 لاراول ارائه شده است. Dump Server به شکل یک پکیج در حال توسعه در فایل کامپوزر laravel/laravel استفاده خواهد شد.

دستور زیر به شما اجازه می دهد که داده ها را در کنسول یا یک فایل html به جای مرورگر Dump کنید.

php artisan dump-server

dump server لاراول

بهبود پیام های خطای فراخوانی دینامیک

لاراول 5.7 قابلیتی را ارائه کرده که به راحتی می توانید پیام های خطایی که توسط فراخوانی های دینامیک در مدل های Eloquent انجام شده را رهگیری کنید.

با این قابلیت یک تصویر واضع از محل وقوع خطا در برنامه را دریافت می کنید.

تایید ایمیل در لاراول 5.7

لاراول 5.7 یک سرویس تایید ایمیل اختیاری برای سیستم احراز هویت (Authentication) این فریم ورک معرفی کرد. برای انجام این کار یک ستون از نوع timestamp و به نام email_verified_at به جدول users پیش فرض اضافه می شود.

برای اجبار کاربران تازه ثبت نام کرده به تایید ایمیل شان، باید مدل user را توسط اینترفیس MustVerifyEmail علامت گذاری کنید.

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

درگاه ها و سیاست گذاری کاربران مهمان

در نسخه های قبلی لاراول درگاه های (Gates) احراز هویت برای بازدیدکنندگانی که احراز هویت نشده بودند به طور خودکار مقدار false را بر می گرداند.

همچنین برای جلوگیری از احراز هویت یک کاربر مهمان می توانید عبارت optional یا null را قرار دهید.

Gate::define('update-post', function (?User $user, Post $post) {
    // ...
});

لینک های paginator

این ویژگی به کنترل تعداد لینک‌های اضافه که در هر سمت پنجره url مربوط به paginator نمایش داده می‌شوند، کمک می‌کند

{{ $paginator->onEachSide(5)->links() }}

استریم های خواندن/نوشتن لاراول

فایل سیستم لاراول از دو متد به نام های readStream و writeStream پشتیبانی می کند.

Storage::disk('s3')->writeStream(
    'remote-file.zip',
    Storage::disk('local')->readStream('local-file.zip')
);

لاراول Nova

Laravel Nova یکی از ویژگی ها یا امکانات خود لاراول نیست.این یک پکیج متفاوت است که توسط Taylor otwell ایجاد شده است. Laravel Nova یک داشبورد مدیریتی برای برنامه های لاراول است.

لاراول نوا (Laravel Nova)

ویژگی اصلی Nova توانایی اداره رکوردهای دیتابیس با استفاده از Eloquent می باشد.

به علاوه Nova پشتیبانی از فیلترها، لنزها، اکشن ها، اکشن های صف، متریک، احراز هویت، ابزارهای سفارشی، فیلدهای سفارشی و ... را ارائه می دهند.

برای اطلاعات بیشتر درباره Laravel Nova به این سایت مراجعه کنید.

نویسنده شوید

دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.