۱۰ تابع کمکی لاراول که باید بدانید — راهنمای کاربردی (+ دانلود فیلم آموزش گام به گام)
لاراول تابعهای کمکی زیادی دارد که روشی آسان برای کار با مسیرها، آرایهها و رشتهها به دست میدهند. البته شناخت همه آنها کاری تقریباً ناممکن است. اغلب توسعهدهندگان انواع بسیار رایجتر را میشناسند، اما برخی تابعهای کمکی بسیار مفید دیگر نیز وجود دارند که در صورت کمی تأمل بیشتر با آنها آشنا میشوید. در این مقاله تابعهای کمکی لاراول که باید با آنها آشنا شوید را معرفی میکنیم.
فیلم آموزشی توابع کمکی در لاراول
1. Logger
تابع کمکی Logger میتواند برای نوشتن پیامی با سطح debug در لاگ مورد استفاده قرار گیرد.
1logger('Product was changed.', ['id' => $product->id]);
که در نتیجه خط زیر را به لاگ اضافه میکند:
1[2019-06-14 09:53:22] local.DEBUG: Product was changed. {"id":4}
اگر هیچ مقداری به تابع Logger ارسال نشود، یک وهله از Logger بازگشت میدهد. بدین ترتیب میتوانیم پیامهایی با سطوح مختلف در لاگ بنویسیم:
1logger()->error('An error occurred');
کد فوق خط زیر را به لاگ اضافه میکند:
1[2019-06-14 09:56:12] local.ERROR: An error occurred
2. تقسیم کردن آرایه
متد ()Arr::divide امکان افراز یک آرایه به دو آرایه را فراهم میسازد.
متد تقسیم دو آرایه بازگشت میدهد که یکی شامل کلیدها و آرایه دیگر شامل مقادیر است.
1use Illuminate\Support\Arr;
2[$keys, $values] = Arr::divide(['name' => 'James', 'age' => 33]);
3$keys: ['name', 'age']
4$values: ['James', 33]
3. Blank
تابع کمکی Blank بررسی میکند که آیا یک مقدار خالی است یا نه. منظور از مقدار خالی null است، یعنی یک رشته که صرفاً شامل کاراکتر فاصله یا آرایه یا رشته خالی است.
نکته: مقادیر بولی به عنوان مقادیر خالی تلقی میشوند.
1blank('');
2blank(' ');
3blank(null);
4blank(collect());
5// Will result in: true
6blank(0);
7blank(true);
8blank(false);
9// Will result in: false
معکوس این تابع کمکی، تابع کمکی filled است.
4. دامپ کردن متغیرها
دامپ کردن متغیرها در صورتی که بخواهیم یک یا چند متغیر را دیباگ کنیم بسیار کارآمد خواهد بود.
1dump($variable);
امکان دامپ کردن متغیرهای چندگانه با ارسال متغیرهای دیگر به تابع dump نیز وجود دارد:
1dump($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
1echo storage_path();
2// Output:
3"C:\Path\To\My\Project\storage"
همچنین میتوانید یک آرگومان را به تابعهای کمکی مسیر ارسال کنید که به مسیر الحاق میشود:
1echo storage_path('attachment.pdf');
2// Output:
3"C:\Path\To\My\Project\storage\attachment.pdf"
6. Slug
برای تولید رشته مناسب URL از یک رشته میتوان از تابع کمکی Str::slug استفاده کرد.
1$slug = Str::slug('Laravel Is Awesome');
2$slug: "laravel-is-awesome"
جداکننده پیشفرض خط تیره (-) است، اما میتوانید این کاراکتر را با ارسال آرگومان دوم به تابع بازنویسی کنید:
1$slug = Str::slug('Laravel Is Awesome', '&');
2$slug: "laravel&is&awesome"
7. بررسی مقدار آرایه
متد Arr:has میتواند با بهرهگیری از نمادگذاری نقطه (.) برای بررسی این که یک یا چند آیتم در یک آرایه وجود دارند یا نه استفاده شود.
برای بررسی وجود آیتمهای چندگانه کافی است به جای یک رشته، آرایهای را به متد ارسال کنید:
1use Illuminate\Support\Arr;
2$blogs = ['blog' => ['title' => 'My blog', 'published' => true]];
3$contains = Arr::has($blogs, 'blog.title');
4// true
5$contains = Arr::has($blogs, ['blog.title', 'blog.published']);
6// true
7$contains = Arr::has($blogs, ['blog.title', 'blog.author']);
8// false
8. UUID
متد Str::uuid یک UUID ایجاد میکند:
1use Illuminate\Support\Str;
2echo(string) Str::uuid(); // "2ad4abcc-8adc-47b6-b21e-9e5497a8af1b"
9. Optional
تابع کمکی Optional امکان دسترسی به مشخصهها را با فراخوانی متدها روی یک شیء که به صورت آرگومان ارسال شده فراهم میسازد. هر آرگومانی در این تابع پذیرفته است.
اگر شیء ارسالی به تابع null باشد، مشخصهها و متدها به جای ایجاد خطا مقدار null بازگشت میدهند.
1print optional($blog->author)->full_name;
اگر نویسنده بلاگ در مثال فوق تنظیم شده باشد، در این صورت نام کامل نویسنده نمایش خواهد یافت. اگر به هر دلیلی نویسنده تعیین نشده باشد، خطایی وجود نخواهد داشت و هیچ اتفاقی هم نمیافتد.
10. Pluck
متد Arr::pluck همه مقادیر را از یک کلید مفروض در آرایه بازیابی میکند.
1$parents = [
2 ['parent' => ['id' => 1, 'name' => 'James']],
3 ['parent' => ['id' => 8, 'name' => 'Lisa']],
4];
5Arr::pluck($parents, 'parent.name'); // ['James', 'Lisa']
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی PHP
- مجموعه آموزشهای برنامهنویسی
- آموزش REST API در Laravel (لاراول) با بسته Passport
- سیستم اعلان (Notification System) در لاراول — راهنمای کاربردی
- زمانبندی وظایف در لاراول (Laravel) — راهنمای مقدماتی
==