Cache de configuração
A configuração do laravel se espalha por dezenas de arquivos, e including
cada um deles para cada solicitação é um processo caro. Para combinar todos os seus arquivos de configuração em um, use:
php artisan config:cache
Lembre-se de que quaisquer alterações na configuração não terão efeito depois que você a armazenar em cache. Para atualizar o cache de configuração, execute o comando acima novamente. Caso você queira se livrar completamente do cache de configuração, execute
php artisan config:clear
Cache de rotas O
roteamento também é uma tarefa cara no laravel. Para armazenar em cache o arquivo routes.php, execute o comando abaixo:
php artisan route:cache
Lembre-se de que não funciona com fechamentos. Caso você esteja usando closures, é uma ótima chance de movê-los para um controlador, pois o comando artisan lançará uma exceção ao tentar compilar rotas que estão vinculadas a closures em vez de métodos apropriados de controller. Da mesma forma que o cache de configuração, quaisquer alterações no routes.php não terão mais efeito. Para atualizar o cache, execute o comando acima sempre que fizer uma alteração no arquivo de rotas. Para se livrar completamente do cache da rota, execute o comando abaixo:
php artisan route:clear
Otimização de Classmap
Não é incomum que um projeto de tamanho médio se espalhe por centenas de arquivos PHP. Como bons comportamentos de codificação nos ditam, tudo tem seu próprio arquivo. Obviamente, isso não vem sem inconvenientes. O Laravel precisa incluir dezenas de arquivos diferentes para cada solicitação, o que é uma coisa cara a se fazer.
Portanto, um bom método de otimização é declarar quais arquivos são usados para cada solicitação (isto é, por exemplo, todos os seus provedores de serviços, middlewares e mais alguns) e combiná-los em apenas um arquivo, que será carregado posteriormente para cada solicitação. Isso não é diferente de combinar todos os seus arquivos javascript em um, portanto, o navegador precisará fazer menos solicitações ao servidor.
Os arquivos de compilação adicionais (novamente: provedores de serviços, middlewares e assim por diante) devem ser declarados por você em config / compile.php, na chave de arquivos. Depois de colocar lá tudo o essencial para cada solicitação feita ao seu aplicativo, concatene-os em um arquivo com:
php artisan optimize --force
Otimizando o carregamento automático do compositor
Este não é apenas para o laravel, mas para qualquer aplicativo que esteja usando o compositor.
Vou explicar primeiro como o PSR-4 carrega automaticamente, e depois mostrarei qual comando você deve executar para otimizá-lo. Se você não estiver interessado em saber como o compositor funciona, eu recomendo que você pule diretamente para o comando do console.
Quando você pergunta à compositora sobre a App\Controllers\AuthController
turma, ela primeiro procura uma associação direta no mapa de turmas. O mapa de classe é uma matriz com associações 1 a 1 de classes e arquivos. Como, obviamente, você não adicionou manualmente a classe Login e seu arquivo associado ao mapa de classes, o compositor seguirá em frente e pesquisará nos espaços para nome. Como o App é um espaço de nome PSR-4, que vem por padrão com o Laravel e está associado à app/
pasta, o compositor tentará converter o nome da classe PSR-4 em um nome de arquivo com procedimentos básicos de manipulação de string. No final, ele acha que App\Controllers\AuthController
deve estar localizado em um arquivo AuthController.php, que está em uma Controllers/
pasta que deve estar felizmente na pasta de namespace, que está app/
.
Todo esse trabalho duro apenas para obter que a App\Controllers\AuthController
classe exista no app/Controllers/AuthController.php
arquivo. Para que o compositor verifique todo o aplicativo e crie associações diretas 1 a 1 de classes e arquivos, execute o seguinte comando:
composer dumpautoload -o
Lembre-se de que se você já executou o php artisan optimize --force, não precisará mais executar este. Como o comando otimizar já diz ao compositor para criar um carregamento automático otimizado.