آموزش ایجاد helper function و توابع سراسری در لاراول

آموزش ایجاد helper function و توابع سراسری در لاراول

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

لاراول دارای هلپر فاکشن های بسیاری می باشد که بدون شک شما تا کنون از تعدادی از آنها استفاده کرده اید. برای نمونه برای دریافت آدرس کنونی صفحه می توانید از هلپر فانکشن 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 نمایش داده خواهد شد.

 

شما می توانید با این روش توابع مهم و ضروری خود را ایجاد و در همه بخش های اپلیکیشن از آن استفاده نمایید.

امیدوارم از این آموزش لذت برده باشید.

درصورتی که شما هم روش دیگه ای برای استفاده از توابع سراسری بلد هستید از بخش نظرات برای من و همه دوستان ارسال کنید.


ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!