مرا اسکن کن!

۱۵ تابع کمکی لاراول که باید بدانید

۱۵ تابع کمکی لاراول که باید بدانید



لاراول تابع‌های کمکی یا helper زیادی دارد که روشی آسان برای کار با مسیرها، آرایه‌ها و رشته‌ها به دست می‌دهند . البته شناخت همه آن‌ها کاری تقریباً ناممکن است . اغلب توسعه‌دهندگان انواع بسیار رایج‌تر را می‌شناسند ، اما برخی تابع‌های کمکی بسیار مفید دیگر نیز وجود دارند که در صورت کمی تأمل بیشتر با آن‌ها آشنا می‌شوید . شما میتونید هرجا که بهشون احتیاج پیدا کردید , از اونها استفاده کنید . همچنین مستندات رسمی لاراول رو در مورد توابع کمکی از این لینک بررسی کنید .

در این مقاله تابع‌های کمکی لاراول که باید با آن‌ها آشنا شوید را معرفی می‌کنیم .

 

۱ - Logger

تابع کمکی Logger می‌تواند برای نوشتن پیامی با سطح debug در لاگ مورد استفاده قرار گیرد .

logger('Product was changed.', ['id' => $product->id]);
 

که در نتیجه خط زیر را به لاگ اضافه می‌کند :

[2019-06-14 09:53:22] local.DEBUG: Product was changed. {"id":4}
 

اگر هیچ مقداری به تابع Logger ارسال نشود ، یک وهله از Logger بازگشت می‌دهد . بدین ترتیب می‌توانیم پیام‌هایی با سطوح مختلف در لاگ بنویسیم :

logger()->error('An error occurred');
 

کد فوق خط زیر را به لاگ اضافه می‌کند :

[2019-06-14 09: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: true
blank(0);
blank(true);
blank(false);
// Will result in: false
 

معکوس این تابع کمکی، تابع کمکی filled است .

 

۴ - دامپ کردن متغیرها

دامپ کردن متغیرها در صورتی که بخواهیم یک یا چند متغیر را دیباگ کنیم بسیار کارآمد خواهد بود .

dump($variable);
 

امکان دامپ کردن متغیرهای چندگانه با ارسال متغیرهای دیگر به تابع dump نیز وجود دارد :

dump($var1, $var2, $var3);
 

در کنار تابع کمکی dump ، تابع کمکی دامپ دیگری نیز وجود دارد . این تابع کمکی به نام dd شناخته می‌شود که به معنی «dump and die» است . تابع مذکور همانند تابع دامپ کار می‌کند و تنها تفاوت این است که تابع dd به جای این که صرفاً متغیر را دامپ کند ، اجرای اسکریپت را نیز خاتمه می‌بخشد .

 

۵ - Paths

لاراول چند تابع کمکی دارد که می‌توان برای دریافت مسیر کامل به دایرکتوری‌های خاص مورد استفاده قرار گیرد . این‌ها تابع‌های کمکی هستند که لاراول در زمان استفاده از مسیرها استفاده می‌کند :

  • app_path
  • base_path
  • config_path
  • database_path
  • public_path
  • resource_path
  • storage_path
echo storage_path();
// Output:
"C:\Path\To\My\Project\storage"
 

همچنین می‌توانید یک آرگومان را به تابع‌های کمکی مسیر ارسال کنید که به مسیر الحاق می‌شود :

echo storage_path('attachment.pdf');
// Output:
"C:\Path\To\My\Project\storage\attachment.pdf"
 

۶ - Slug

برای تولید رشته مناسب URL از یک رشته می‌توان از تابع کمکی Str::slug استفاده کرد .

$slug = Str::slug('Laravel Is Awesome');
$slug: "laravel-is-awesome"
 

جداکننده پیش‌فرض خط تیره (-) است ، اما می‌توانید این کاراکتر را با ارسال آرگومان دوم به تابع بازنویسی کنید :

$slug = Str::slug('Laravel Is Awesome', '&');
$slug: "laravel&is&awesome"
 

۷ - بررسی مقدار آرایه

متد Arr:has می‌تواند با بهره‌گیری از نمادگذاری نقطه (.) برای بررسی این که یک یا چند آیتم در یک آرایه وجود دارند یا نه استفاده شود .

برای بررسی وجود آیتم‌های چندگانه کافی است به جای یک رشته ، آرایه‌ای را به متد ارسال کنید :

use Illuminate\Support\Arr;
$blogs = ['blog' => ['title' => 'My blog', 'published' => true]];
$contains = Arr::has($blogs, 'blog.title'); 
// true
$contains = Arr::has($blogs, ['blog.title', 'blog.published']); 
// true
$contains = Arr::has($blogs, ['blog.title', 'blog.author']); 
// false
 

۸ - UUID

متد Str::uuid یک UUID ایجاد می‌کند :

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 همه مقادیر را از یک کلید مفروض در آرایه بازیابی می‌کند .

$parents = [
    ['parent' => ['id' => 1, 'name' => 'James']],
    ['parent' => ['id' => 8, 'name' => 'Lisa']],
];
Arr::pluck($parents, 'parent.name'); // ['James', 'Lisa']
 

۱۱ - Str::orderedUuid

این تابع بر اساس 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 مقدار یک متغیر پیکربندی را دریافت می کند . مقادیر پیکربندی ممکن است با استفاده از "نقطه"، که شامل نام فایل و گزینه ای است که می خواهید به آن دسترسی داشته باشید ، قابل دسترسی است . یک مقدار پیش‌فرض ممکن است مشخص شود و اگر گزینه پیکربندی وجود نداشته باشد ، برگردانده می‌شود :

$value = config('app.timezone');
 
$value = config('app.timezone', $default);

می‌توانید با ارسال آرایه‌ای از جفت‌های کلید/مقدار، متغیرهای پیکربندی را در زمان اجرا تنظیم کنید. با این حال، توجه داشته باشید که این تابع فقط بر روی مقدار پیکربندی درخواست فعلی تأثیر می گذارد و مقادیر پیکربندی واقعی شما را به روز نمی کند:

config(['app.debug' => true]);

 

۱۵ - env

تابع env مقدار یک متغیر محیطی (environment variable) را بازیابی می کند یا یک مقدار پیش فرض را برمی گرداند :

$env = env('APP_ENV');
 
$env = env('APP_ENV', 'production');

 


نوشته شده توسط :

وحید صمدیان وحید صمدیان



یکشنبه, 23 بهمن 1401

تعداد بازديد : 152

برچسب ها : فریم ورک لاراول

3.0 ستاره