agenciafmd/laravel-turbo is a Laravel package for turbo - agência f&md.
It currently has 0 GitHub stars and 952 downloads on Packagist.
Install it with composer require agenciafmd/laravel-turbo.
Discover more Laravel packages by agenciafmd
or browse all Laravel packages to compare alternatives.
Last updated

Diminui o tempo de resposta e carregamento das páginas: minifica o HTML e grava uma versão estática de cada rota em public/page-cache, para ser servida direto pelo servidor web.
Baseado em:
composer require agenciafmd/laravel-turbo:dev-master
O service provider é registrado automaticamente (package discovery) e cria o grupo de middlewares turbo.
No .env:
TURBO_ENABLED=false
Com o Turbo desabilitado, o grupo turbo continua existindo, mas vazio — as rotas não precisam ser alteradas.
Publique o arquivo de configuração (config/laravel-turbo.php):
php artisan vendor:publish --tag="laravel-turbo:config"
Modifique as middlewares conforme a necessidade (ver mais). O padrão é:
use Agenciafmd\Turbo\Middlewares\CollapseWhitespace;
use Agenciafmd\Turbo\Middlewares\RemoveComments;
use Silber\PageCache\Middleware\CacheResponse;
use VinkiusLabs\LaravelPageSpeed\Middleware\ElideAttributes;
use VinkiusLabs\LaravelPageSpeed\Middleware\InsertDNSPrefetch;
use VinkiusLabs\LaravelPageSpeed\Middleware\RemoveQuotes;
return [
'enabled' => env('TURBO_ENABLED', true),
'middlewares' => [
CacheResponse::class,
RemoveComments::class,
RemoveQuotes::class,
/* não mude a ordem */
ElideAttributes::class,
InsertDNSPrefetch::class,
CollapseWhitespace::class,
],
];
RemoveComments e CollapseWhitespace são versões do pacote que removem os comentários HTML mas mantêm os comentários dentro de <style>.
Adicione a middleware turbo na rota. A resposta será minificada e um arquivo estático relativo a ela será criado em public/page-cache.
Se a página exibir dados do banco, limpe o cache assim que esses dados forem atualizados. Ver mais
Route::get('/', function () {
return view('welcome');
})->middleware('turbo');
Outro exemplo:
Route::get('/', [FrontendController::class, 'index'])
->name('frontend.index')
->middleware('turbo');
Apenas requisições GET com status 200 são gravadas (HTML ou JSON).
Para limpar o cache estático, use o comando do silber/page-cache:
# tudo
php artisan page-cache:clear
# uma página ou diretório específico
php artisan page-cache:clear blog/meu-artigo
php artisan page-cache:clear blog --recursive
Sem a reescrita de URL, o arquivo estático é gerado mas nunca é consumido. Configure o nginx / apache para procurar o arquivo em public/page-cache antes de chamar o index.php.
Ver mais
A home é gravada como pc__index__pc.html. Exemplo para nginx:
location = / {
try_files /page-cache/pc__index__pc.html /index.php?$query_string;
}
location / {
try_files $uri $uri/ /page-cache/$uri.html /page-cache/$uri.json /index.php?$query_string;
}
Os testes ficam em tests/ e usam o Tests\TestCase da aplicação, então são executados de dentro do projeto que instala o pacote:
vendor/bin/pest packages/agenciafmd/laravel-turbo/tests
Este pacote é software livre e está disponível nos termos da licença MIT.