如何为Debug而优化你的开发环境
当你在本地机器上开发Symfony项目时,你应该使用dev
环境(走的是app_dev.php
前端控制器)。这个环境在配置上主要优化了以下两个方面:
只要有东西出错(web debug toolbar,漂亮的报错页面,profiler分析器,...),给予开发者以精确反馈;
部署项目时,保证生产环境无限接近开发环境,以避免问题。
禁用bootstrap文件和Class缓存 ¶
代 为了令生产环境尽可能的快,Symfony在你的缓存中创建了巨大的PHP文件,包含了每一次请求时你的项目所需的PHP类。但是,这种行为可能令你在除错时感到迷惑,因为相同的类可以在两个不同的地方找到:原始类文件,以及集结了很多类的大文件。
本文演示了你应如何调节这种缓存架构,以便你在对“包含了到Symfony类”的代码进行除错时,能够令其变得更加友好。
前端控制器app_dev.php
在默认时执行以下代码:
1 2 3 4 5 6 7 8 9 |
// ...
$loader = require __DIR__.'/../app/autoload.php';
Debug::enable();
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
// ... |
为了能更加愉快地除错,你可以禁止对全部PHP类缓存进行加载,通过删除对loadClassCache()
的调用来实现:
1 2 3 4 5 6 7 8 |
// ...
$loader = require_once __DIR__.'/../app/autoload.php';
Debug::enable();
$kernel = new AppKernel('dev', true);
// $kernel->loadClassCache();
$request = Request::createFromGlobals(); |
如果你禁止了PHP缓存,不要忘了在除错环节之后,重新开启它。
有些IDE并不喜欢类文件被存放于不同位置这样一个事实。为了避免麻烦,你应该指定IDE忽略那些PHP缓存文件。