La manera fea, perezosa y horrible: al final de bootstrap/start.php
, agregue una include('tools.php')
y coloque su función en ese nuevo archivo.
La manera limpia: crear una biblioteca. De esa manera, se cargará automáticamente SOLO cuando realmente lo uses.
- Crea una
libraries
carpeta dentro de tu app
carpeta
- Cree su archivo de biblioteca, cree una clase en él y agréguele funciones estáticas
- Opción 1 : Editar
start/global.php
para agregar app_path().'/libraries'
a la ClassLoader::addDirectories(
matriz.
- Opción 2 : Editar
composer.json
para agregar "app/libraries"
a la autoload
matriz. corrercomposer dump-autoload
- Llame a su clase y funciones estáticas desde sus puntos de vista.
Sobre sus opciones, citadas del global.php
archivo
Además de usar Composer, puede usar el cargador de clases Laravel para cargar sus controladores y modelos. Esto es útil para mantener todas sus clases en el espacio de nombres "global" sin la actualización de Composer.
Puede combinar ambas opciones, donde el cargador de clases de Laravel buscará automáticamente clases en los directorios registrados ( Opción 1 , más fácil) y Composer mantendrá un registro de todas las clases, pero solo después de actualizarlo ( Opción 2 , podría mejorar el rendimiento).
app_path().'/library'
en start / global.php.sitehelpers.php
Mi forma de hacerlo es crear una nueva carpeta en el
/app
directorio en la raíz de su proyecto Laravel 4. Luego agregue esta carpeta a la primera matriz del/app/start/global.php
archivo de la siguiente manera:Siempre que la estructura de carpetas dentro de la nueva
/app/classes
carpeta siga su convención de espacio de nombres. Laravel 4 cargará automáticamente todas las clases / archivos dentro de esta carpeta. De esta manera no hay necesidad de profundizar en ningún archivo de compositor o ejecutar el comando de compositor.No estoy seguro si esta es la mejor práctica, pero ciertamente funciona.
Si creó un archivo simple llamado
/app/classes/Helpers/Helper.php
como este:Todo lo que necesitas hacer es llamar
Helpers\Helper::helloWorld();
También puede alias esta clase auxiliar en su
/app/config/app.php
archivo. Simplemente agregue algo como esto al final de laaliases
matriz:fuente
composer dump-autoload
, lo hice y pasé 20 minutos rascándome la cabeza.El método helpers.php de Laravel es agregarlo a sus "archivos" en composer.json ( https://github.com/laravel/framework/blob/master/composer.json ):
Lo que hago es crear clases pequeñas (algunos métodos por clase, una línea por método, todo se extiende desde algo y DRY, ese es mi objetivo),
guárdelos en aplicaciones / bibliotecas y agréguelos a composer.json:
Ejecutar
Y luego úsalos donde necesites
Mire este video sobre refactorización: http://www.youtube.com/watch?v=DC-pQPq0acs
Por cierto, estoy seguro de que fue solo un ejemplo, pero es posible que no necesite un ayudante para formatear fechas, ya que todas las fechas en Laravel son instancias de carbono ( https://github.com/briannesbitt/Carbon ) y Tiene muchos métodos para formatear la fecha y la hora.
fuente
formatDDMMAAAA()
comostatic
.También puede usarlo
View::share()
junto con los cierres para lograr esto: acabo de publicar sobre esto: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Beneficio adicional: no necesita crear una clase adicional y también mantener limpio el espacio de nombres global.
fuente