【问题标题】:how do i fix the symfony cache generated files如何修复 symfony 缓存生成的文件
【发布时间】:2016-06-30 20:47:47
【问题描述】:

我刚刚开始使用 symfony2,我遇到了一个巨大的障碍,我似乎无法弄清楚。我创建了一个名为 AppKernel 的新类来注册我的 Bundles 等。

class AppKernel extends Kernel
{

public function registerBundles()
{
    $bundles=[
        new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
        new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
        new Symfony\Bundle\MonologBundle\MonologBundle(),
        new Symfony\Bundle\SecurityBundle\SecurityBundle(),
        new mdBundle\mdBundle(),
];
    return $bundles;
}

public function registerContainerConfiguration(LoaderInterface $loader)
{
    $loader->load(function ($container) {
        $container->loadFromExtension('framework', array(
            'secret' => 'some secret here',
            'router' => array(
                'resource' => '%kernel.root_dir%/config/routing.yml'
            ),
            'templating' => array('engines' => array('php'))
        ));
    });
}

}

我的前端控制器是这样的:

include_once(__DIR__ . '/../../app/bootstrap.php');

/**
 * @var Composer\Autoload\ClassLoader $loader
 */
$loader = require '../../app/vendor/autoload.php';

Debug::enable();

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

我得到的错误信息如下:类型错误:Argument 4 传递给 Symfony\Component\HttpKernel\HttpKernel::__construct() 必须实现接口 Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface,boolean given ,在第 367 行的 /var/www/html/app/classes/cache/dev/classesDevDebugProjectContainer.php 中调用 我只是不确定如何使用参数 4 的错误值(值为 false“boolean”)创建此文件。

这是我的 composer.json 文件。

"require": {
        "php": ">=7.0",
        "symfony/console":"v3.0.0",
        "mobiledetect/mobiledetectlib": "2.5.7",
        "zendframework/zend-db": "2.2.5",
        "symfony/dependency-injection": "v3.0.0",
        "symfony/config": "v3.0.0",
        "symfony/yaml": "v2.3.5",
        "phpmailer/phpmailer" : "v5.2.9",
        "smarty/smarty" : "3.1.12",
        "knplabs/knp-snappy": "*",
        "twbs/bootstrap": "3.3.6",
        "phpoffice/phpexcel": "*",
        "moredirect/service": "dev-master",
        "symfony/var-dumper": "2.*",
        "gongo/merciful-polluter": "^0.0.3",
        "solarium/solarium": "^3.5",
        "symfony/framework-bundle": "v3.0.0",
        "symfony/form": "3.0.0",
        "doctrine/doctrine-bundle": "1.6.2",
        "symfony/monolog-bundle": "2.10.0",
        "symfony/security-bundle": "3.0.0",
        "symfony/finder": "3.0.0",
        "symfony/filesystem": "3.0.0",
        "symfony/web-profiler-bundle": "3.0.0",
        "sensio/framework-extra-bundle": "v3.0.0",
        "sensio/distribution-bundle": "3.0.0"
    }

非常感谢任何帮助。 谢谢。

【问题讨论】:

  • php bin/console cache:clear
  • 我试过了,它只会在再次生成文件后删除文件,错误再次发生。
  • 我不确定为什么您的 AppKernel.php 看起来与标准版中包含的完全不同。
  • 顺便说一句,我不明白你为什么要在刚开始使用 Symfony 的时候自己创建 AppKernel.php?!你能告诉我们背后的原因吗?您是否正在使用 SF 组件创建自己的框架
  • 我创建 appkernel 的原因是因为我通常需要使用从 symfony 打包的特定内容。我正在迁移使用我们自己开发的框架的应用程序。我也尝试过使用标准的 appkernel,但仍然遇到同样的错误。

标签: php symfony frameworks


【解决方案1】:

原来我在 composer.json 文件中缺少以下行:

"symfony/http-kernel":"3.0.0"

我添加后它工作正常。感谢所有的cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多