یه برنامه نویس وب که شدید علاقه داره به یادگیری بیشتر توی زمینه کاریش و مسائل مرتبط با آی.تی و تکنولوژی :))
آشنایی با دستیارهای لاراول! - helper functions
هلپر فانکشنها در لاراول (Helper Functions) یکی از دهها امکانات عالی این فریمورک محبوب محسوب میشن و امروز میخوام یک هلپر واقعا کاربردی که خیلی خیلی کمبودش احساس میشد و توی ورژن جدید اضافه شده (نسخه 5.6) رو معرفی کنم خدمتتون.
هِلپر چی هست اصلا؟!
کدهای کمکی یا هلپرها، یک سری توابع (functions) از پیش آماده عمومی (global) برای انجام کارهای تکراری هستش که در سراسر پروژه هایی که با لاراول نوشته میشه در دسترس و قابل استفاده هستن (در ویووها (blade templates)، کنترلرها، مدلها و ...).
مثلا فرض کنید نیاز دارید توی 5 فایل بِلِید، اعداد انگلیسی رو تبدیل به فارسی کنید و یا برعکس. یا مثلا تعداد کارکترهای یک کلمه رو جاهای مختلف محاسبه کنید. برای انجام همچین کارهای تکراری کافیه یه تابع ساده بنویسید و اون رو به عنوان هلپر تو پروژه معرفی کنید و بعد به هر تعداد که خواستید صدا بزنید و استفاده کنید ازش (البته در صورتی که از قبل وجود نداشته باشه!). لاراول در حال حاضر حدود 100 مورد از این نوع توابع کار راه انداز رو توی خودش داره که لیستش رو میتونید از لینک زیر مشاهده کنید:
https://laravel.com/docs/5.6/helpers
معرفی هلپر فانکشن optional
توی اکثر پروژه ها پیش میاد که بر فرض میخواید چک کنید که اگر یک یوزر آدرس ایمیل داره یه پردازش روش انجام بدید و اگر هم Null هستش کار دیگه ای رو صورت بدید تا برنامه دچار خطا نشه. هلپر آپشنال دقیقا برای همینکار نوشته شده و شما رو از نوشتن کد بررسی این قضیه و شرط گذاشتن مدام برای این کار و مواردی از این دست بینیاز میکنه.
نمونه کد و مثال شماره 1:
// User 1 exists, with account
$user1 = User::find(1);
$accountId = $user1->account->id; // 123
// User 2 exists, without account
$user2 = User::find(2);
$accountId = $user2->account->id; // PHP Error: Trying to get property of non-object
// Fix without optional()
$accountId = $user2->account ? $user2->account->id : null; // null
$accountId = $user2->account->id ?? null; // null
// Fix with optional()
$accountId = optional($user2->account)->id; // null
نمونه کد بالا در صورتی که کاربر account id داشته باشه اون رو توی متغیر $accountId قرار میده.
معادل همین کدها هم با هلپر آپشنال در 2 خط آخر قابل مشاهده هستن:)
نمونه کد شماره 2:
- اگر خیابان تهی نباشه برگردونده میشه بجای اینکه خطا تولید بشه و اگه نباشه هم null برمیگرده
return optional($user->address)->street;
نمونه کد شماره 3:
- اگر یوزرنیم وجود داشته باشه نوشته میشه و اگه نباشه چیزی چاپ نمیشه.
{!! old('name', optional($user)->name) !!}
امیدوارم خوشتون اومده باشه.
لینک مفید:
https://laravel-news.com/5-laravel-helpers-make-life-easier
مطلبی دیگر از این انتشارات
جنگو بهتر است یا لاراول ؛)
مطلبی دیگر از این انتشارات
ساخت پکیجها در فریمورک لاراول
مطلبی دیگر از این انتشارات
لاراول : Mass Assignment