php - new - Cómo crear métodos auxiliares en Laravel, no en una fachada
str_limit laravel (2)
He leído muchas preguntas sobre cómo hacer métodos auxiliares en Laravel 5.1. Pero no quiero lograr esto a través de una Fachada.
HelperClass::methodName();
Quiero hacer métodos auxiliares como en estos métodos Laravel Helper Methods como:
myCustomMethod();
No quiero que sea una fachada. es posible? ¿Cómo?
Para comenzar, creé una carpeta en mi directorio de aplicaciones llamada
Helpers
.
Luego, dentro de la carpeta Helpers, agregué archivos para las funciones que quería agregar.
Tener una carpeta con varios archivos nos permite evitar un archivo grande que se vuelve demasiado largo e inmanejable.
A continuación, creé un
HelperServiceProvider.php
ejecutando el comando artesanal:
artisan make:provider HelperServiceProvider
Dentro del método de registro agregué este fragmento
public function register()
{
foreach (glob(app_path().''/Helpers/*.php'') as $filename){
require_once($filename);
}
}
Por último, registre el proveedor de servicios en su
config/app.php
en la matriz de proveedores
''providers'' => [
''App/Providers/HelperServiceProvider'',
]
Después de eso, debe ejecutar
composer dump-autoload
y sus cambios serán visibles en Laravel.
ahora cualquier archivo en su directorio
Helpers
está cargado y listo para usar.
¡Espero que esto funcione!
Si desea seguir el ''camino de Laravel'', puede crear el archivo
helpers.php
con ayudantes personalizados:
if (! function_exists(''myCustomHelper'')) {
function myCustomHelper()
{
return ''Hey, it/'s working!'';
}
}
Luego coloque este archivo en algún directorio, agregue este directorio a la sección de carga automática del
composer.json
de una aplicación:
"autoload": {
....
"files": [
"app/someFolder/helpers.php"
]
},
Ejecute el comando
composer dumpauto
y sus ayudantes trabajarán en todas las aplicaciones, como las de Laravel.
Si quieres más ejemplos, mira los ayudantes originales de Laravel en
/vendor/laravel/framework/Illuminate/Support/helpers.php