Поиск…
Вступление
замечания
Всего несколько указателей:
- Мы помещаем определения функций в проверку (
function_exists
), чтобы исключить исключения, когда поставщик услуг вызывается дважды. - Альтернативный способ - зарегистрировать файл помощников из файла
composer.json
. Вы можете скопировать логику из самой структуры laravel .
document.php
<?php
if (!function_exists('document')) {
function document($text = '') {
return $text;
}
}
Создайте файл helpers.php, предположим, пока он живет в app/Helpers/document.php
. Вы можете поместить много помощников в один файл (так это делает Laravel), или вы можете разделить их по имени.
HelpersServiceProvider.php
Теперь давайте создадим поставщика услуг. Положим это на app/Providers
:
<?php
namespace App\Providers;
class HelpersServiceProvider extends ServiceProvider
{
public function register()
{
require_once __DIR__ . '/../Helpers/document.php';
}
}
Вышеупомянутый поставщик услуг загружает файл помощников и автоматически регистрирует вашу настраиваемую функцию. Пожалуйста, убедитесь, что вы зарегистрировали этот HelpersServiceProvider в своем config/app.php
у providers
:
'providers' => [
// [..] other providers
App\Providers\HelpersServiceProvider::class,
]
использование
Теперь вы можете использовать document()
функции document()
всюду в своем коде, например, в шаблонах клинков. Этот пример возвращает только ту же строку, которую он получает в качестве аргумента
<?php
Route::get('document/{text}', function($text) {
return document($text);
});
Теперь перейдите в /document/foo
в своем браузере (используйте php artisan serve
или valet
), который вернет foo
.