str_limit new create classes array php laravel laravel-5.1 helper

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