maartenstaa / laravel-41-route-caching
此包允许您缓存路由定义,从而加快每个请求的速度。
v1.0.3
2016-05-10 18:47 UTC
Requires
- laravel/framework: >=4.1,<4.3
Requires (Dev)
- phpunit/phpunit: ~4
This package is auto-updated.
Last update: 2024-09-04 21:55:53 UTC
README
此包允许您在Laravel 4.1和4.2中缓存路由。
安装
使用Composer,将包添加到您的require
部分。
{ "require": { "maartenstaa/laravel-41-route-caching": "dev-master" } }
运行composer update
。然后,打开您的app/config/app.php
配置文件,并将服务提供者在提供者部分末尾添加。
return array( // ... 'providers' => array( // ... 'MaartenStaa\Routing\RoutingServiceProvider', ), );
用法
在您的app/routes.php
文件中,或任何其他用于定义路由的文件中,将路由定义包裹在Route::cache
的调用中,如下所示
Route::cache(__FILE__, function() { // Define your routes here. });
此包将保存闭包中定义的路由,并将它们写入缓存。在随后的任何请求中,它将确定闭包不需要执行,并将从缓存中加载路由。由于您传递的是定义路由的文件名(__FILE__
),脚本将自动检测文件是否已修改。换句话说,您在添加新路由后不需要清除缓存。
为什么?
通过分析,我发现定义许多路由(在我的案例中是100+)在每个请求上花费了大量的时间 - 这段时间本可以用来准备用户的响应。
缓存这些路由可以显著减少开销。
限制
您不能使用此包使用闭包序列化路由,例如
Route::get('/', function () { return 'Hello, world!'; });
您只能用它将路由序列化到控制器中。如果您的app/routes.php
文件中既有,当然可以将所有控制器路由放在cache
调用中,并将任何在它之外的闭包路由使用。
贡献
编码规范
所有代码都应遵循PSR-2编码规范。
单元测试
如果您发现一个错误,请随时发送一个pull request来修复它,但请确保始终包括回归测试。