2016-07-08 38 views
2

我有一个名为FilterInput的PHP类。当我的基于Symfony(3.0.3)的应用程序调用FilterInput的静态成员函数时,将隐式调用Symfony的DebugClassLoader。该方法被称为loadClass并开始像这样:symfony 3应用程序无法默默地在DebugClassLoader中require_once

public function loadClass($class) 
{ 
    ErrorHandler::stackErrors(); 

    try { 
     if ($this->isFinder) { 
      if ($file = $this->classLoader[0]->findFile($class)) { 
       require_once $file; 
      } 
     } else { 
      call_user_func($this->classLoader, $class); 
      $file = false; 
     } 
    } finally { 
     ErrorHandler::unstackErrors(); 
    } 
... 

我观察的问题是,当执行到达include_once指令,应用程序就会失败。也就是说,http请求返回空,并且在dev.log或我的apache日志中没有输出。我已验证$file变量包含完整且正确的/path/to/FilterInput.php。我也验证过这个文件是可读的。所以我的问题是:

  1. 为什么执行停止在这一点?
  2. 它为什么会在没有日志错误消息或响应中返回数据的情况下失败。

编辑:进一步的信息:如果我填写垃圾路径,例如, “/ foo/bar”然后我得到一个错误信息Compile Error: AppBundle\Components\Factory::getDBO(): Failed opening required '/foo/bar' (include_path='.:');所以大概无声的失败与某个事实有关,在给定路径的文件。

+1

您确定处于开发模式?在你的app.php中,确保你像下面这样实例化你的AppKernel:'$ kernel = new AppKernel('dev',true);' –

+0

帮助我找到了很多先前忽略的错误 - 但我仍然**无声**在require_once上失败 – Black

回答

3

require_once将失败默默地病程的如果一条指令,例如:

defined('PATH_BASE') or die(); 

出现在源文件的头部;并且所需的定义不存在

相关问题