لاراول دارای هلپر فاکشن های بسیاری می باشد که بدون شک شما تا کنون از تعدادی از آنها استفاده کرده اید. برای نمونه برای دریافت آدرس کنونی صفحه می توانید از هلپر فانکشن url() استفاده کنید یا برای رفتن به صفحه قبل از هلپر فانکشن back()
با این حال گاهی مواقع شما نیاز دارید که برای خود توابعی ایجاد کنید که در همه بخش های اپلیکیشن در دسترس باشد و بتوانید به راحتی از آنها استفاده کنید.
این کار در لاراول به چند روش انجام می شود که در این مطلب قصد داریم یک روش بسیار ساده برای ایجاد توابع کمکی سراسری را به شما آموزش دهم پس تا انتهای مطلب با ما همراه باشید.
ابتدا پروژه لاراول خود را باز کنید و به آدرس app/Providers/AppServiceProvider.php بروید.محتویات این فایل در حالت پیشفرض بصورت زیر می باشد:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
}
حال درون این فایل و زیر تابع register یک تابع بنام loadHelpers() بصورت زیر ایجاد و سپس آن را در تابع register صدا میزنیم:
protected function loadHelpers()
{
foreach (glob(__DIR__.'/../Helpers/*.php') as $filename) {
require_once $filename;
}
}
تابع loadHelpers() کار لود کردن فایلهای php درون دایرکتوری Helpers را برعهده دارد. هر فایل php که شما در این دایرکتوری قرار دهید بصورت خودکار فراخوانی خواهد شد.
در نهایت فایل AppServiceProvider.php باید بصورت زیر تغییر کرده باشد:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->loadHelpers();
}
protected function loadHelpers()
{
foreach (glob(__DIR__.'/../Helpers/*.php') as $filename) {
require_once $filename;
}
}
}
حال ما میتوانیم فایل یا فایلهای هلپر خود را در دایرکتوری app/Helpers ایجاد نماییم.
کار لود کردن فایل ها بصورت خودکار و توسط تابع loadHelpers انجام خواهد شد.
ما یک فایل بنام string-helpers.php در دایرکتوری app/Helpers ایجاد و کدهای زیر را در آن قرار می دهیم:
<?php
if ( !function_exists('greeting') )
{
function greeting($name){
return 'Howdy ' . $name;
}
}
در کد بالا ما یک تابع بنام greeting ایجاد کرده ایم که یک ورودی می گیره و مقداری بصورت string برگشت میده.
حال ما تمام کار را انجام داده ایم. برای استفاده از فانکشن ایجاد شده در هرکجای اپلیکیشن کافیست آن را بصورت زیر صدا بزنید:
Route::get('hello', function(){
echo greeting('John');
});
برای نمونه با فراخوانی route بالا متن Howdy John نمایش داده خواهد شد.
شما می توانید با این روش توابع مهم و ضروری خود را ایجاد و در همه بخش های اپلیکیشن از آن استفاده نمایید.
امیدوارم از این آموزش لذت برده باشید.
درصورتی که شما هم روش دیگه ای برای استفاده از توابع سراسری بلد هستید از بخش نظرات برای من و همه دوستان ارسال کنید.
برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *
ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *
هنوز برای این مطلب نظری ارسال نشده است!