بعضی اوقات ممکن است بخواهید تابعی ایجاد کنید که در همه جا در دسترس باشد، اینجاست که این آموزش برای شما مفید است.در این بخش به مبحث توابع کمکی لاراول میپردازیم.
من مدت طولانی است از متدی استفاده میکنم که در آن شما میتوانید چندین فایل حاوی توابع را تعریف کنید، این بسیار تمیزتر و خواناتر است.
بیایید استارت کار را بزنیم.
ابتدا با ساختن یک HelperServiceProvider.php شروع کنید:
php artisan make:provider HelperServiceProvider
پس از انجام این کار، فایل جدیدی در برنامه app/Providers به نام HelperServiceProvider.php مشاهده خواهید کرد.
با اطمینان میتوانید متد boot() کاملا حذف کنید زیرا ما از این استفاده نمیکنیم.
در داخل تابع register این قطعه کد را وارد کنید:
public function register()
{
foreach (glob(app_path('Helpers') . '/*.php') as $file) {
require_once $file;
}
}
کاری که انجام میدهد این است که همه فایلهای داخل app/Helpers را جستجو میکند، شاید حدس بزنید اکنون میتوانید چندین فایل پی اچ پی را در آن فهرست وارد کنید (ممکن است لازم باشد ایجاد کنید) که در برنامه شما لود میشود. این توابع کمکی در هر قسمت از کد شما موجود است (ویوها، مدلها، کنترل کنندهها و ...).
ما هنوز هم باید این ارائه دهنده را بارگیری کنیم، config/app.php را باز میکنیم و HelperServiceProvider را در بالای AppServiceProvider خود اضافه کنیم:
...
App\Providers\HelperServiceProvider::class,
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
...
حال بیایید سعی کنیم یک تابع ساده ایجاد کنیم، یک فایل جدید به نام Carbon.php در داخل پوشه app/Helpers با این محتوا ایجاد میکنیم:
<?php
/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}
نیازی به وارد کردن هیچ فضای نامی نیست و اگر میخواهید، میتوانید با فراخوانی یک دستور if_ function_exists که میتواند ایده خوبی باشد، بررسی کنید که آیا این تابع وجود دارد.
اکنون میتوانید از carbon() در همه برنامههایی که میخواهید استفاده کنید. حال اجازه دهید بگوییم اگر به تابع دیگری نیاز دارید که فرمت خاصی را بازگرداند (فقط برای موارد استفاده از این آموزش)، میتوانید آن را در همان فایل (Carbon.php) اضافه کنید:
<?php
/**
* Carbon helper
*
* @param $time
* @param $tz
*
* @return Carbon\Carbon
*/
function carbon($time = null, $tz = null)
{
return new \Carbon\Carbon($time, $tz);
}
function carbonFormatted($time = null, $tz = null)
{
return carbon($time, $tz)->format('Y-m-d')
}
و تمام. اکنون میتوانید شروع به پر کردن مسیر app/Helpers با فایلهای پی اچ پی خود کنید که حاوی کمک کنندههای سریع است که اغلب از آن ها استفاده میکنید.
اگر هرگونه سوالی در رابطه با این مبحث از لاراول دارید، در بخش زیر با ما در میان بگذارید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید