maartenstaa/laravel-41-route-caching

此包允许您缓存路由定义,从而加快每个请求的速度。

v1.0.3 2016-05-10 18:47 UTC

This package is auto-updated.

Last update: 2024-09-04 21:55:53 UTC


README

此包允许您在Laravel 4.1和4.2中缓存路由。

Build Status Scrutinizer Code Quality Code Coverage

安装

使用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来修复它,但请确保始终包括回归测试。