Laravel 5
Как добавить свои helpers?
Вспомогательные функции должны быть доступны глобально.
Вариант 1
Если нужны отдельные функции без класса, то можно так:
1. Создаем файл helpers.php в папке app/Helpers. Папка Helpers создана предварительно для случая, когда функций будет много и их придется распределять по отдельным файлам. Тестовый код файла helpers.php:
1 2 3 4 5 6 7 8 |
<?php if (!function_exists('classActivePath')) { function test_function() { return 'test_function_result'; } } |
Далее в composer.json добавляем в "autoload" блок "files":
1 2 3 4 5 6 7 8 9 10 11 |
"autoload": { "classmap": [ "database" ], "files": [ "app/Helpers/helpers.php" ], "psr-4": { "App\\": "app/" } }, |
Последнее действие: выполняем в консоли composer dump-autoload
Вариант 2
Если устроит вариант с классом (назовем его Helper).
1 2 3 4 5 6 7 8 9 10 11 |
<?php // app\Helpers\Helper.php namespace App\Helpers; class Helper { public static function shout(string $string) { return strtoupper($string); } } |
Далее добавим alias в config/app.php:
1 2 3 4 5 6 |
<?php // config/app.php 'aliases'=>[ ... 'Helper'=>App\Helpers\Helper::class, ... |
Пример вызова в view:
1 |
{!! Helper::shout('this is how to use autoloading correctly!!') !!} |
Можно вызывать в любом месте, для этого достаточно добавить use Helper;