یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دوره‌ها

استفاده از تخفیف‌ها
ثانیه
دقیقه
ساعت
روز
10 تا از بهترین helper های لاراول برای استفاده
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 3 دقیقه

10 تا از بهترین helper های لاراول برای استفاده

لاراول شامل توابع مختلف کمکی یا helper هست.در لاراول تعداد زیادی تابع کمکی وجود دارد که شما میتونید با استفاده ازشون کارتون رو راحت تر و سریعتر کنید. اینجا می خواهیم درمورد 10 کمکی عالی لاراول صحبت کنیم که کار توسعه رو برای من ساده تر کرده. شما میتونید هرجا که بهشون احتیاج پیدا کردید, از اونها استفاده کنید.

همچنین مستندات رسمی لاراول رو در مورد توابع کمکی از این لینک بررسی کنید.

array_dot

تابع کمکی ()array_dot به شما اجازه میده یک آرایه چندبعدی رو به یک آرایه تک بعدی تبدیل کنید که از نماد نقطه استفاده میکنه.

$array = [
    'user' => ['username' => 'something'],
    'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];

$dot_array = array_dot($array);

// [user.username] => something, [app.creator.name] => someone, [app.created] => today

array_get

تابع ()array_get مقدار یک آرایه چندبعدی رو با استفاده از نماد نقطه بازیابی میکنه.

$array = [
    'user' => ['username' => 'something'],
    'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];

$name = array_get($array, 'app.creator.name');

// someone

سومین پارامتر تابع ()array_get بصورت اختیاری بوده و اگر کلید موجود نباشه به عنوان مقدار پیش فرض در نظر گرفته میشه.

$name = array_get($array, 'app.created.name', 'anonymous');
// anonymous

public_path

تابع ()public_path مسیر مطلق به دایرکتوری public برنامه لاراولی شما رو برمی گردونه. همچنین شما میتونید مسیر رو به یک فایل یا دایرکتوری داخل مسیر public پاس بدید تا مسیر مطلقش رو بدست بیارید. برای مثال به کد زیر توجه کنید :

$public_path = public_path();

$path = public_path('js/app.js');

Str::orderedUuid

این تابع بر اساس timestamp یک شناسه uuid تولید میکنه. این uuid میتونه به عنوان ستون کلیدی در دیتابیس ذخیره بشه. دلیلش هم اینه که از طریق timestamp تولید میشه و میتونه منحصربفرد بشه. وقتی از اون در لاراول 5.6 استفاده کنید, این یک Ramsey \ Uuid \ Exception \ UnsatisfiedDependencyException برمی گردونه. برای حل این مشکل با استفاده از دستور زیر پکیج  moontoast/math رو فراخوانی کنید :

composer require "moontoast/math"

نحوه استفاده :

use Illuminate\Support\Str;

return (string) Str::orderByUuid()

// A timestamp first uuid

str_plural

این تابع یک رشته رو به فرم جمعش تبدیل میکنه. این تابع فقط زبان انگلیسی رو پشتیبانی میکنه :

echo str_plural('bank');
// banks

echo str_plural('developer');
// developers

route

تابع ()route یک مسیر url برای آدرس هایی که نامگذاری کردید تولید میکنه :

$url = route('login');
$url = route('products', ['id' => 1]);

اگر هم بخواهید به جای آدرس مطلق, آدرس نسبی بدید کافیه پارامتر false رو اضافه کنید :

$url = route('products', ['id' => 1], false);

tap

این تابع دو مقدار ورودی قبول میکنه یکی value و یکی closure. این value به closure پاس داده میشه و سپس value برگردونده میشه.

$user = App\User::find(1);

return tap($user, function($user) {
    $user->update([
        'name' => 'Random'
    ]);
});

بجای برگردوندن یک boolean, این مدل کاربر رو برمیگردونه.

در مثال زیر هم تابع update بجای boolean خود مدل کاربر رو برمیگردونه, دلیلش استفاده از tap هست :

$user = App\User::find(1);

return tap($user)->update([
    'name' => 'SomeName'
]);

dump

تابع ()dump اطلاعات متغیرهای داده شده رو بدون متوقف کردن اجرا dump میکنه. این برای دیباگ کردن بسیار مفیده. 

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

str_slug

این تابع با استفاده از رشته ی داده شده, یک slug مناسب برای url تولید میکنه. شما میتونید از طریق این تابع slug مسیرها رو برای محصولات یا پست های سایتتون تولید کنید.

$slug = str_slug('Helpers in Laravel', '-');

// helpers-in-laravel

optional

این تابع یک مقدار ورودی میگیره و شما میتونید متدها یا پراپرتی هایش رو صدا بزنید. اگر آبجکت داده شده null باشه بجای خطا, null برمیگردونه.

$user = User::find(1);

return optional($user)->name;

منبع

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
2.5 از 2 رای

6 سال پیش

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید