A maneira feia, preguiçosa e horrível: no final de bootstrap/start.php
, adicione include('tools.php')
e coloque sua função nesse novo arquivo.
A maneira limpa: Crie uma biblioteca. Dessa forma, ele será carregado automaticamente SOMENTE quando você o usar.
- Crie uma
libraries
pasta dentro da sua app
pasta
- Crie seu arquivo de biblioteca, crie uma classe nele e adicione funções estáticas a ele
- Opção 1 : Editar
start/global.php
para adicionar app_path().'/libraries'
à ClassLoader::addDirectories(
matriz.
- Opção 2 : Editar
composer.json
para adicionar "app/libraries"
à autoload
matriz. Correcomposer dump-autoload
- Chame sua classe e funções estáticas de seus pontos de vista.
Sobre suas opções, citadas no global.php
arquivo
Além de usar o Composer, você pode usar o carregador de classes Laravel para carregar seus controladores e modelos. Isso é útil para manter todas as suas classes no namespace "global" sem atualizar o Composer.
Você pode combinar as duas opções, nas quais o carregador de classes do Laravel pesquisará automaticamente as classes nos diretórios registrados ( opção 1 , mais fácil) e o Composer manterá o registro de todas as classes, mas somente após a atualização (a opção 2 poderá melhorar o desempenho).
app_path().'/library'
, em start / global.php.sitehelpers.php
Minha maneira de fazer isso é criar uma nova pasta no
/app
diretório na raiz do seu projeto Laravel 4. Em seguida, adicione esta pasta à primeira matriz do/app/start/global.php
arquivo da seguinte maneira:Contanto que a estrutura da pasta dentro da nova
/app/classes
pasta siga sua convenção de namespacing. O Laravel 4 carregará automaticamente todas as classes / arquivos dentro desta pasta. Dessa forma, não há necessidade de cavar nenhum arquivo do compositor ou executar o comando do compositor.Não tenho certeza se essa é a melhor prática, mas certamente funciona.
Se você criou um arquivo simples chamado
/app/classes/Helpers/Helper.php
como este:Tudo o que você precisa fazer é ligar
Helpers\Helper::helloWorld();
Você também pode usar o alias dessa classe auxiliar no seu
/app/config/app.php
arquivo. Basta adicionar algo assim ao final daaliases
matriz:fonte
composer dump-autoload
- eu corri e passei 20 minutos coçando a cabeça.O método helpers.php do Laravel é adicioná-lo aos seus "arquivos" em composer.json ( https://github.com/laravel/framework/blob/master/composer.json ):
O que faço é criar classes pequenas (alguns métodos por classe, uma linha por método, tudo estendido de algo e DRY, esse é o meu objetivo),
salve-os em app / libraries e adicione a composer.json:
Executar
E então use-os sempre que precisar
Assista a este vídeo sobre refatoração: http://www.youtube.com/watch?v=DC-pQPq0acs
A propósito, tenho certeza de que foi apenas um exemplo, mas talvez você não precise de um ajudante para formatar datas, pois todas as datas no Laravel são instâncias de Carbon ( https://github.com/briannesbitt/Carbon ) e Ele possui vários métodos para formatar data e hora.
fonte
formatDDMMAAAA()
comostatic
.Você também pode usar
View::share()
junto com fechamentos para conseguir isso - acabei de postar sobre isso: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Benefício adicional: você não precisa criar uma classe extra e também manter limpo o espaço para nome global.
fonte