ایمپورت و اکسپورت یک تابع در php

391 بازدید 2 سال قبل 0 دیدگاه

دیروز در حال گشت و گذار توی کدهای لاراول بودم که به تابع queueable برخوردم. اگه با این تابع آشنایی داشته باشید احتمالا میدونید که کارش اینه که listener ها رو به صورت queueable دربیاره. جالب اینجاست که این اولین باری بود که می‌دیدم یک تابع، تحت لوای namespace تعریف شده بود.

سورس کدها رو که نگاه بندازی متوجه میشی که queueable در نیم اسپیس illuminate\Events قرار گرفته. به این صورت:

<?php
// source:: src/Illuminate/Events/functions.php

namespace Illuminate\Events;

use Closure;

if (! function_exists('Illuminate\Events\queueable')) {
    /**
     * Create a new queued Closure event listener.
     *
     * @param  \Closure  $closure
     * @return \Illuminate\Events\QueuedClosure
     */
    function queueable(Closure $closure)
    {
        return new QueuedClosure($closure);
    }
}

همونطور که می بینید این فایل فقط شامل یک تابع queueable میشه که تحت نیم اسپیس Illuminate\Events قرار گرفته. و چون با namespace قرار گرفته پس میتونی با استفاده از use function در هرجای دیگه ای اون رو ایمپورت و ازش استفاده کنی. به این صورت:

use function Illuminate\Events\queueable

کجا استفاده میشه؟

برای زمان هایی که صرفا بخاطر یک تابع نمیخوای یک کلاس مجزا بسازی ولی با این حال میخوای اون رو تحت یک namespace نگه داری این روش خیلی به کارت میاد. چون درست مثل همین تابع queueable خیلی راحت میتونی اون رو ایمپورت کنی.

 

نظرت درمورد استفاده از این روش چیه؟ تا به حال ازش استفاده کردی؟ توی قسمت نظرات برام بنویس

0 دیدگاه   (ارسال دیدگاه)