برنامه نویسی 657 بازدید

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

فیلم آموزشی توابع کمکی در لاراول

دانلود ویدیو

1. 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

2. تقسیم کردن آرایه

متد ()Arr::divide امکان افراز یک آرایه به دو آرایه را فراهم می‌سازد. متد تقسیم دو آرایه بازگشت می‌دهد که یکی شامل کلیدها و آرایه دیگر شامل مقادیر است.

use Illuminate\Support\Arr;
[$keys, $values] = Arr::divide(['name' => 'James', 'age' => 33]);
$keys: ['name', 'age']
$values: ['James', 33]

3. Blank

تابع کمکی Blank بررسی می‌کند که آیا یک مقدار خالی است یا نه. منظور از مقدار خالی null است، یعنی یک رشته که صرفاً شامل کاراکتر فاصله یا آرایه یا رشته خالی است.

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

blank('');
blank('   ');
blank(null);
blank(collect());
// Will result in: true
blank(0);
blank(true);
blank(false);
// Will result in: false

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

4. دامپ کردن متغیرها

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

dump($variable);

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

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

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

5. 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"

6. Slug

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

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

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

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

7. بررسی مقدار آرایه

متد 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

8. UUID

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

use Illuminate\Support\Str;
echo(string) Str::uuid(); // "2ad4abcc-8adc-47b6-b21e-9e5497a8af1b"

9. Optional

تابع کمکی Optional امکان دسترسی به مشخصه‌ها را با فراخوانی متدها روی یک شیء که به صورت آرگومان ارسال شده فراهم می‌سازد. هر آرگومانی در این تابع پذیرفته است.

اگر شیء ارسالی به تابع null باشد، مشخصه‌ها و متدها به جای ایجاد خطا مقدار null بازگشت می‌دهند.

print optional($blog->author)->full_name;

اگر نویسنده بلاگ در مثال فوق تنظیم شده باشد، در این صورت نام کامل نویسنده نمایش خواهد یافت. اگر به هر دلیلی نویسنده تعیین نشده باشد، خطایی وجود نخواهد داشت و هیچ اتفاقی هم نمی‌افتد.

10. Pluck

متد Arr::pluck همه مقادیر را از یک کلید مفروض در آرایه بازیابی می‌کند.

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

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای 0 نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

«میثم لطفی» در رشته‌های ریاضیات کاربردی و مهندسی کامپیوتر به تحصیل پرداخته و شیفته فناوری است. وی در حال حاضر علاوه بر پیگیری علاقه‌مندی‌هایش در رشته‌های برنامه‌نویسی، کپی‌رایتینگ و محتوای چندرسانه‌ای، در زمینه نگارش مقالاتی با محوریت نرم‌افزار با مجله فرادرس همکاری دارد.

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *