Как создать вспомогательные методы на Laravel, а не фасад

Я прочитал много вопросов о том, как сделать вспомогательные методы на Laravel 5.1. Но я не хочу этого добиваться в Фасад

HelperClass::methodName(); 

Я хочу, чтобы методы Помощника были как в методах Laravel Helper, например:

 myCustomMethod(); 

Я не хочу превращать его в Фасад. Это возможно? Как? Благодарю.

Solutions Collecting From Web of "Как создать вспомогательные методы на Laravel, а не фасад"

Если вы хотите перейти к «Laravel way», вы можете создать файл helpers.php с помощью специальных помощников:

 if (! function_exists('myCustomHelper')) { function myCustomHelper() { return 'Hey, it\'s working!'; } } 

Затем поместите этот файл в какой-то каталог, добавьте этот каталог в раздел автозагрузки в файле composer.json приложения:

 "autoload": { .... "files": [ "app/someFolder/helpers.php" ] }, 

Запустите команду composer dumpauto и ваши помощники будут работать через все приложения, такие как Laravel.

Если вы хотите больше примеров, посмотрите на оригинальных помощников Laravel по адресу /vendor/laravel/framework/Illuminate/Support/helpers.php

Для начала я создал папку в моем каталоге приложений под названием Helpers . Затем в папке «Помощники» я добавил файлы для функций, которые я хотел добавить. Наличие папки с несколькими файлами позволяет избежать того, что один большой файл становится слишком длинным и неуправляемым.

Затем я создал HelperServiceProvider.php , выполнив команду artisan:

artisan make:provider HelperServiceProvider В методе регистрации я добавил этот фрагмент

 public function register() { foreach (glob(app_path().'/Helpers/*.php') as $filename){ require_once($filename); } } 

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

 'providers' => [ 'App\Providers\HelperServiceProvider', ] 

После этого вам нужно запустить composer dump-autoload и ваши изменения будут видны в Laravel.

теперь загружается любой файл в вашем справочном каталоге и готов к использованию.

Надеюсь, это сработает!