Assetic Bundles 缓存 Composer 配置 控制台 控制器 调试 部署 Doctrine 电子邮件 事件分发器 表达式 表单 前端 日志 分析器 请求 路由 安全 序列化 服务容器 会话 PSR 7 Symfony 版本 模板 测试 升级 验证 Web 服务器 Web 服务 工作流

发布于 2015-12-06 07:34:13 | 170 次阅读 | 评论: 0 | 来源: 网络整理

当您在本地机器上运行一个 Symfony 工程时,您应该使用 dev 环境(app dev .php 前端控制器)。优化此配置主要有两个目的:

  • 在任何时候有不当情况发生(网页调试工具栏,nice 异常页面,分析器…)时,给开发者正确的反馈;

  • 尽可能与生产环境相似来避免在部署项目过程中的问题。

禁用引导文件和类缓存

并且,为了让生产环境尽可能的快,Symfony 在您的缓存中创建大型的 PHP 文件,包含您项目所需的每个请求的 PHP 类的聚集。然而,此行为可以混淆您的 IDE 或者您的调试器。此教程显示了当您需要调试含有 Symfony 类的代码时如何微调此缓存机制让它更加友好。

app_dev.php 前端控制器在默认情况下按照以下读出:

/ ...

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();

为了您的调试器更配合一点儿,移除 loadClassCache() 的请求从而禁用所有的 PHP 类缓存,并按照以下进行替换所需的语句:

// ...

// $loader = require_once __DIR__.'/../app/bootstrap.php.cache';
$loader = require_once __DIR__.'/../app/autoload.php';
require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
// $kernel->loadClassCache();
$request = Request::createFromGlobals();

如果您禁用 PHP 缓存,在您调试会话后不要忘记复原。

一些 IDEs 不喜欢一些类储存在不同的地点。为了避免问题,您可以选择让您的 IDE 忽略 PHP 缓存文件,或者您可以改变 Symfony 为这些文件使用的扩展。

$kernel->loadClassCache('classes', '.php.cache');
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务