آخرین نسخه از محبوبترین فریم ورک PHP لاراول 5.5 نام دارد که ویژگیهای فوقالعادهای به آن اضافه شده است.
لاراول یک فریم ورک زبان PHP است که برای توسعه و طراحی اپلیکیشنهای وب در نظر گرفته شده است. این فریم ورک PHP از معماری سه لایه MVC استفاده میکند وبه صورت کدباز و رایگان در دسترس افراد قرار دارد. لاراول امکان توسعه برنامههای وب را سریع و آسان کرده و با کد نویسی زیبا و خلاقانهای که دارد، بسیار انعطاف پذیر است. روند رشد این فریم ورک در سالهای اخیر بسیار سریع بوده و اکنون یکی از محبوبترین فریم ورک های زبان PHP است. در هر یک از نسخههای جدید لاراول، ویژ گیهای جدید و منحصر به فردی نسبت به نسخههای پیشین به آن اضافه میشود که این فریم ورک را کارآمدتر از پیش میکند. آخرین نسخه فریم ورک لارارول، لاراول 5.5 نام دارد که قصد داریم در ادامه مقاله ویژگیهای جدید اضافه شده به این نسخه از محبوبترین فریم ورک PHP اشاره کنیم.
قابلیتهای پیش فرض frontend در لاراول 5.5 (Frontend presets)
قابلیت پیش فرض frontend، یکی از قابلیتهای جدیدی است که به لاراول 5.5 اضافه شده است. با این امکان میتوان دو حالت پیش فرض برای php artisan تنظیم کرد:
;php artisan preset react
به صورت پیش فرض روی کامپوننتهای react تنظیم شده است;php artisan preset none
به صورت پیش فرض در حالت none تنطیم شده است
گزینههای جدید مسیریابی (routing) برای لاراول
قابلیت جدید مسیریابی یکی دیگر ویژگیهای منحصر به فرد لاراول جدید است. دو مثال ساده زیر این قابلیت جدید را به صورتی قابل درک برای شما توضیح میدهد:
- برای مثال مسیر ('
Route::view('/welcome', 'welcome
مسیر welcome view را برمیگرداند. - مسیر ('Route : : redirect('home', 'dashboard ما را به url دیگری هدایت میکند.
Blade::if در لاراول 5.5
دستورالعملهای Blade شرطی، مانند مثال زیر، از دیگر قابلیتهای لاراول 5.5 است:
•e.g. Blade::if('public', function () { return app()->context()->isPublic(); });
•Generates: @public / @endpublic
Renderable mailable
این قابلیت یک mailable را از یک مسیر برمیگرداند تا آن را نمایش دهد.
Route::get('preview', function () {
return MyMailable;
});
قابلیت Renderable Exceptions
این قابلیت روشهایی برای کار با exceptionها ارائه میدهد. به عنوان مثال :
- روش ()report روی exception چگونگی گزارش گرفتن از آن را تعریف میکند.
- روش ()render روی exception چگونگی رندر کردن آن را تعریف میکند.
class MyException extends Exception
{
public function report()
{
// send wherever
}
public function render()
{
return view('error-or-whatever');
}
}
رابط پاسخگو (Responsable interface) در نسخه جدید لاراول
از ویژگیهای دیگر لاراول 5.5 پیاده سازی رابط پاسخگو است. از متد ()toResponse داخل کلاس، میتوان استفاده کرد تا چگونگی تبدیل یک شی به حالت پاسخگو (Responsive) را نشان داد.
class Thing implements Responsable
{
public function toResponse()
{
return 'This is a great response! ' . $this->id;
}
}
One-off Notifications (اعلان های ناشناس)
// Easy way to notify people who aren't in your system as Notifiable
Notification::route('mail', '[email protected]')
->notify(new App\Notifications\NotifyThingHappened);
پیشرفت اعتبار سنجی(Validation improvements)
لاراول 5.5 با توجه به پیشرفتهای چشمگیری که داشته، اعتبارسنجی پیشرفتهتری هم ارائه میدهد.
- دستور()this->validate$ دادههای اعتبار سنجی شده را برمیگرداند
- اعتبارسنجی سفارشی یا custom کلاسهای rule با
php artisan make:rule
- متد ()passes نام و مقدار را گرفته؛ یک مقدار Boolean برمیگرداند
- متد ()message در صورت نیاز پیغام خطا نمایش میدهد
$this->validate([
'myfield' => [
'string',
'required',
new App\Rules\MyValidationRule
]
);
TrustedProxy package
قابلیت جدید دیگر لاراول 5.5 پکیج TrustedProxy است. اگر روی برنامه خود پروکسی خاصی، مثل پروکسی CloudFlare یا هر چیز دیگری که سرویس ssl را بر روی پروکسی برنامه قرار بدهد، داشته باشید، لاراول نمیتواند به درستی تشخیص بدهد که یک سرویس http نیست. این درخواستها از پورت 80 به جای پورت 443 دریافت میشوند.
TrustProxies Middleware ، extending Fideloper's TrustedProxy برای سیستم مشخص میکند که چطور به پروکسی اعتماد کند تا سر صفحههای ارسال شده (از جمله عواملی که ssl آنها را شناسایی میکند)، به صورت قابل اعتماد ارسال شوند.
خصوصیت proxies$ روی middleware به شما اجازه میدهد تا مشخص کنید کدام پروکسی قابل اعتماد است.
Migrate:fresh
این دستور مقدار down در خصوصیت migration را نادیده میگیرد و قبل از راه اندازی مجدد تمام پایگاه داده را پاک میکند. برای اطلاع بیشتر درباره دستور Migarte:fresh در نسخه جدید لاراول، می توانید مجموعه تغییرات و آموزشهای مربوط به لاراول 5.5 را در لیداوب دنبال کنید.
ویژگی های جدید مهاجرت (migration) در پایگاه داده
ما قبلا از دو روش DatabaseMigrations و DatabaseTransactions به صورت ترکیبی استفاده میکردیم. به این صورت که مهاجرت یا migration در ابتدای تستهای ما انجام میشود. در این حالت بقیه تستها براساس تراکنشها صورت میگیرد.
مزایای این روش این است که ما مجبور نیستیم زمان مهاجرت را به یاد داشته باشیم. زیرا Migration یک بار در ابتدای تستها انجام میشود. یکی دیگر از مزایای این روش، سریعتر بودن آن است، زیرا هر بار مجبور به مهاجرت نیستیم.
ویژگی جدید به نام RefreshDatabase:
// Usage
class MyTest extends TestCase
{
use RefreshDatabase;
}
WithoutExceptionHandling middleware
قبلا در صورت انجام تست یکپارچهسازی، استثناها (exception) در تستهای ما دیده نمیشدند. ولی حالا با غیر فعال کردن مدیریت استثنا یا exception handling، لاراول 5.5 به شما اجازه میدهد که exceptionها دیده شوند تا مشخص شود کجای کار اشتباه است.
Dusk improvements
در به روزرسانی جدید، Headless به صورت پیش فرض سریعتر است و مرورگر هر بار باز نمیشود.
تغییرات Package auto-discovery در لاراول 5.5
- در لاراول 5.5 دیگر نیازی به ثبت ارائه دهنده خدمات در آرایه config/app.php ندارید، در حال حاضر یک بلاک در هر پکیج composer.json ایجاد شده تا بدون استفاده از عملیات دستی، لاراول این عملیات را خود به خود انجام دهد.
- پکیج php artisan خودش اجرای عملیات فرایند discovery را انجام میدهد.
- در هنگام نصب پکیج اغلب فقط نیاز است که نام پکیج را به composer بدهیم و لازم نیست کار دیگری انجام بدهیم.
Vendor:publish menu
با مرور تمام پکیجها و برچسب ها می توان این روش را به جای عملیات دستی استفاده کرد. در واقع دستور Vendor:publish در لاراول 5.5 یکی از امکاناتی است که کار شما را خیلی ساده تر از قبل می کند.
دستورات کنسول Auto-registered
دیگر لازم نیست دستورات را در آرایه دستور app/Console/Kernel.php وارد کنیم. در عوض لاراول در نسخه 5.5 دنبال کلاسهایی میگردد که دستورات را صادر کردهاند. آنها را پیدا کرده و کدهای نوشته شده در آن را اجرا میکند.
زنجیره کاری یا Job chaining
این قابلیت به ما کمک میکند تا یک کار را برای اجرا بفرستیم و سپس کارهای دیگری که بعد از آن باید تکمیل و اجرا شوند را در یک صف قرار بدهیم تا به ترتیب اجرا شوند.
dispatch((new App\Jobs\PerformTask)->chain([
new App\Jobs\AnotherTask,
new App\Jobs\FinalTask($post)
]));
مدل missing بهتر برای کار با job در لاراول 5.5
اگر یک job داشته باشیم که توسط یک مدل خاص ارجاع داده میشود، اگر آن مدل قبل از انجام کار از بین برود، job هم فورا fail میشود. در نسخهها پیشین لاراول، در این حالت دوباره سعی در اجرای job ناموفق میکردیم. ولی حالا در لاراول 5.5 با تنظیم مقدار true برای deleteWhenMissingModels$، میتوانیم قبل از fail شدن job آن را از بین ببریم.
Laravel Horizon
ویژگی جدید دیگر که به لاراول 5.5 اضافه شده Laravel Horizon نام دارد که در مقاله دیگری به طور کامل به آن پرداختهایم.
برای اطلاع از تغییرات در نسخه های لاراول یا اطلاع از زمان انتشار نسخههای جدید، میتوانید مجله آموزشی آنلاین لاراول را دنبال کنید تا شما را با آخرین تغییرات در فریم ورکها مختلف PHP آشنا کنیم. همچنین میتوانید از آموزشهای ساده ما در زمینههای مختلف برنامهنویسی وب بهره ببرید.
دیدگاه ها
متاسفانه فقط اعضای سایت قادر به ثبت دیدگاه هستند
ورود به سایت