我正在使用symfony2。我的AppKernel中的代码如下所示:
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle()
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new My\BookBundle\MyBookBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
}
return $bundles;
}
现在我在Bookbundle下的单元测试之一的代码如下:
namespace My\BookBundle\Tests\Controller;
use My\BookBundle\Services\TestHelper;
use My\BookBundle\Tests\BaseTest;
class WriterControllerTest extends BaseTest
{
/**
* @var TestHelper
*/
protected $testHelper;
public function __construct()
{
parent::__construct();
$this->testHelper = $this->get('test_helper');
}
public function setUp()
{
$this->testHelper->setupTestData();
}
以前它运行应用程序和测试非常顺利。然后我添加了许多功能代码(例如控制器,存储库功能等)。现在,当我尝试通过编写测试来备份代码时,我在命令提示符中出现以下错误:
PHP Fatal error: Class 'Symfony\Component\HttpKernel\Kernel' not found in /var/www/Symfony/app/AppKernel.php on line 7
第7行引用了AppKernel类的声明,如上面提到的代码所示。
我很困惑,我无法找到突然破解代码背后的原因。
你能帮忙吗?
答案 0 :(得分:0)
致@ONe:我在app文件夹中定义了自动加载
To @Wouter J:单元测试没有使用appkernel - 它只是显示的错误
致@Ramon Kleiss:我安装并卸载了供应商,然后重新安装。什么都没有改变。
我无法弄清楚背后的原因是什么,但我能够解决问题。它与Test和Vendor文件夹的权限更改有关。正如我之前提到的那样,它运行得更早 - 由于某些未知原因,我的捆绑包测试文件夹和供应商文件夹的权限已更改,因此无法访问正确的文件。我删除了我的安装并从存储库中获取了新的克隆并按照规则安装了项目,一切都很好。我弄清楚旧的和最新的项目文件系统的区别,发现只有权限才有区别。
感谢您的回答。