لاراول تابعهای کمکی یا helper زیادی دارد که روشی آسان برای کار با مسیرها، آرایهها و رشتهها به دست میدهند . البته شناخت همه آنها کاری تقریباً ناممکن است . اغلب توسعهدهندگان انواع بسیار رایجتر را میشناسند ، اما برخی تابعهای کمکی بسیار مفید دیگر نیز وجود دارند که در صورت کمی تأمل بیشتر با آنها آشنا میشوید . شما میتونید هرجا که بهشون احتیاج پیدا کردید , از اونها استفاده کنید . همچنین مستندات رسمی لاراول رو در مورد توابع کمکی از این لینک بررسی کنید .
در این مقاله تابعهای کمکی لاراول که باید با آنها آشنا شوید را معرفی میکنیم .
۱ - Logger
تابع کمکی Logger میتواند برای نوشتن پیامی با سطح debug در لاگ مورد استفاده قرار گیرد .
logger('Product was changed.',['id'=> $product->id]);
که در نتیجه خط زیر را به لاگ اضافه میکند :
[2019-06-1409:53:22] local.DEBUG: Product was changed.{"id":4}
اگر هیچ مقداری به تابع Logger ارسال نشود ، یک وهله از Logger بازگشت میدهد . بدین ترتیب میتوانیم پیامهایی با سطوح مختلف در لاگ بنویسیم :
logger()->error('An error occurred');
کد فوق خط زیر را به لاگ اضافه میکند :
[2019-06-1409:56:12] local.ERROR: An error occurred
۲ - تقسیم کردن آرایه
متد ()Arr::divide امکان افراز یک آرایه به دو آرایه را فراهم میسازد . متد تقسیم دو آرایه بازگشت میدهد که یکی شامل کلیدها و آرایه دیگر شامل مقادیر است .
use Illuminate\Support\Arr;[$keys, $values]= Arr::divide(['name'=>'James','age'=>33]);
$keys:['name','age']
$values:['James',33]
۳ - Blank
تابع کمکی Blank بررسی میکند که آیا یک مقدار خالی است یا نه . منظور از مقدار خالی null است ، یعنی یک رشته که صرفاً شامل کاراکتر فاصله یا آرایه یا رشته خالی است .
نکته : مقادیر بولی به عنوان مقادیر خالی تلقی میشوند .
blank('');blank(' ');blank(null);blank(collect());// Will result in: trueblank(0);blank(true);blank(false);// Will result in: false
معکوس این تابع کمکی، تابع کمکی filled است .
۴ - دامپ کردن متغیرها
دامپ کردن متغیرها در صورتی که بخواهیم یک یا چند متغیر را دیباگ کنیم بسیار کارآمد خواهد بود .
dump($variable);
امکان دامپ کردن متغیرهای چندگانه با ارسال متغیرهای دیگر به تابع dump نیز وجود دارد :
dump($var1, $var2, $var3);
در کنار تابع کمکی dump ، تابع کمکی دامپ دیگری نیز وجود دارد . این تابع کمکی به نام dd شناخته میشود که به معنی «dump and die» است . تابع مذکور همانند تابع دامپ کار میکند و تنها تفاوت این است که تابع dd به جای این که صرفاً متغیر را دامپ کند ، اجرای اسکریپت را نیز خاتمه میبخشد .
۵ - Paths
لاراول چند تابع کمکی دارد که میتوان برای دریافت مسیر کامل به دایرکتوریهای خاص مورد استفاده قرار گیرد . اینها تابعهای کمکی هستند که لاراول در زمان استفاده از مسیرها استفاده میکند :
use Illuminate\Support\Str;echo(string) Str::uuid();// "2ad4abcc-8adc-47b6-b21e-9e5497a8af1b"
۹ - Optional
تابع کمکی Optional امکان دسترسی به مشخصهها را با فراخوانی متدها روی یک شیء که به صورت آرگومان ارسال شده فراهم میسازد . هر آرگومانی در این تابع پذیرفته است .
اگر شیء ارسالی به تابع null باشد ، مشخصهها و متدها به جای ایجاد خطا مقدار null بازگشت میدهند .
print optional($blog->author)->full_name;
اگر نویسنده بلاگ در مثال فوق تنظیم شده باشد ، در این صورت نام کامل نویسنده نمایش خواهد یافت . اگر به هر دلیلی نویسنده تعیین نشده باشد ، خطایی وجود نخواهد داشت و هیچ اتفاقی هم نمیافتد .
۱۰ - Pluck
متد Arr::pluck همه مقادیر را از یک کلید مفروض در آرایه بازیابی میکند .
این تابع بر اساس timestamp یک شناسه uuid تولید میکنه . این uuid میتونه به عنوان ستون کلیدی در دیتابیس ذخیره بشه. دلیلش هم اینه که از طریق timestamp تولید میشه و میتونه منحصربفرد بشه .
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
۱۲ - route
تابع ()route یک مسیر url برای آدرس هایی که نامگذاری کردید تولید میکنه :
$url = route('route.name');
اگر مسیر پارامترها را می پذیرد ، می توانید آنها را به عنوان آرگومان دوم به تابع ارسال کنید :
$url = route('route.name', ['id' => 1]);
به طور پیش فرض ، تابع route یک URL مطلق تولید می کند. اگر می خواهید یک URL نسبی ایجاد کنید، ممکن است false را به عنوان آرگومان سوم به تابع ارسال کنید:
$url = route('route.name', ['id' => 1], false);
۱۳ - tap
این تابع دو مقدار ورودی قبول میکنه یکی value و یکی closure. این value به closure پاس داده میشه و سپس value برگردونده میشه .
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Laravel')
->append(' Framework')
->tap(function (Stringable $string) {
dump('String after append: '.$string);
})
->upper();
// LARAVEL FRAMEWORK
۱۴ - config
تابع config مقدار یک متغیر پیکربندی را دریافت می کند . مقادیر پیکربندی ممکن است با استفاده از "نقطه"، که شامل نام فایل و گزینه ای است که می خواهید به آن دسترسی داشته باشید ، قابل دسترسی است . یک مقدار پیشفرض ممکن است مشخص شود و اگر گزینه پیکربندی وجود نداشته باشد ، برگردانده میشود :
میتوانید با ارسال آرایهای از جفتهای کلید/مقدار، متغیرهای پیکربندی را در زمان اجرا تنظیم کنید. با این حال، توجه داشته باشید که این تابع فقط بر روی مقدار پیکربندی درخواست فعلی تأثیر می گذارد و مقادیر پیکربندی واقعی شما را به روز نمی کند:
config(['app.debug' => true]);
۱۵ - env
تابع env مقدار یک متغیر محیطی (environment variable) را بازیابی می کند یا یک مقدار پیش فرض را برمی گرداند :