Как сделать глобальные вспомогательные функции в laravel 5?

Если бы я хотел сделать функцию currentUser() для некоторого материала oauth, то я делаю, где я могу использовать его в представлении или в контроллере (подумайте, что вы используете helper_method: current_user в контроллере приложения).

Все, что я читаю, состояния, чтобы создать папку помощников и добавить туда функцию, а затем так, как вы можете сделать Helpers::functionName Правильно ли это сделать?

Каков «способ laravel» для создания вспомогательных функций, которые можно использовать в шаблонах и контроллерах blade-серверов?

Solutions Collecting From Web of "Как сделать глобальные вспомогательные функции в laravel 5?"

Создайте новый файл в каталоге вашего приложения / справочника имён AnythingHelper.php. Пример моего помощника:

 <?php function getDomesticCities() { $result = \App\Package::where('type', '=', 'domestic') ->groupBy('from_city') ->get(['from_city']); return $result; } 

создайте поставщика услуг для вашего помощника, следуя команде

 php artisan make:provider HelperServiceProvider 

в регистровой функции вашего нового созданного HelperServiceProvider.php добавьте следующий код

 require_once app_path('Helpers/AnythingHelper.php'); 

теперь в вашем config / app.php загрузите этого поставщика услуг, и все готово

 'App\Providers\HelperServiceProvider', 

Другим эффективным способом создания глобального файла функций является автозагрузка его непосредственно из композитора. Раздел автозагрузки композитора принимает массив files который автоматически загружается.

  1. Создайте файл functions.php где угодно, в этом примере мы создадим его внутри app/Helpers .

  2. Добавьте свои функции, но не добавляйте класс или пространство имен.

     <?php function global_function_example($str) { return 'A Global Function with '. $str; } 
  3. В composer.json внутри секции autoload добавьте следующую строку:

     "files": ["app/Helpers/functions.php"] 

Для Laravel 5:

 "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" }, "files": ["app/Helpers/functions.php"] }, 
  1. Запуск composer dump-autoload

Поздравления! Теперь вы можете обратиться к global_function_example('hello world') из любой части вашего приложения, включая виды Blade.

Надеюсь, это полезно для кого-то!