Я столкнулся с проблемой, так как я обновляю своих поставщиков при установке Symfony2.
Это содержание моего composer.json:
{ "name": "symfony/framework-standard-edition", "license": "MIT", "type": "project", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "require": { "php": ">=5.4", "symfony/symfony": ">=2.4", "doctrine/orm": "~2.2,>=2.2.3", "doctrine/doctrine-bundle": ">=1.2", "twig/extensions": ">=1.0", "symfony/assetic-bundle": ">=2.3", "symfony/swiftmailer-bundle": ">=2.3", "symfony/monolog-bundle": ">=2.4", "sensio/distribution-bundle": ">=2.3", "sensio/framework-extra-bundle": ">=3.0", "sensio/generator-bundle": ">=2.3", "incenteev/composer-parameter-handler": "~2.0", "white-october/pagerfanta-bundle": "dev-master", "friendsofsymfony/rest-bundle": "1.3.*", "friendsofsymfony/comment-bundle": "2.0.*@dev", "friendsofsymfony/message-bundle": "1.2.*@dev", "friendsofsymfony/user-bundle": "~2.0@dev", "nelmio/api-doc-bundle": "@stable", "ornicar/akismet-bundle": "dev-master", "friendsofsymfony/jsrouting-bundle": "2.0.*@dev", "appventus/alertify-bundle": "dev-master", "friendsofsymfony/oauth-server-bundle": "dev-master", "willdurand/propel-typehintable-behavior": "*", "hwi/oauth-bundle": "0.4.*@dev", "nomaya/social-bundle": "dev-master" } }
После php composer.phar update
, когда я пытаюсь /app.php, у меня следующие ошибки:
Deprecated: The Symfony\Component\Security\Core\SecurityContextInterface interface is deprecated since version 2.6 and will be removed in 3.0. in /var/www/html/xxx/app/cache/prod/classes.php on line 3035 Deprecated: The Symfony\Component\Security\Core\SecurityContext class is deprecated since version 2.6 and will be removed in 3.0. Use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage or Symfony\Component\Security\Core\Authorization\AuthorizationChecker instead. in /var/www/html/xxx/app/cache/prod/classes.php on line 3047 Fatal error: Uncaught exception 'Symfony\Component\Debug\Exception\ContextErrorException' with message 'Catchable Fatal Error: Argument 1 passed to Symfony\Component\Routing\Router::Symfony\Component\Routing\{closure}() must be an instance of Symfony\Component\Config\ConfigCacheInterface, instance of Symfony\Component\Config\ConfigCache given' in /var/www/html/xxx/app/cache/prod/classes.php:1302 Stack trace: #0 /var/www/html/xxx/app/cache/prod/classes.php(1302): Symfony\Component\Debug\ErrorHandler->handleError(4096, 'Argument 1 pass...', '/var/www/html/p...', 1302, Array) #1 [internal function]: Symfony\Component\Routing\Router->Symfony\Component\Routing\{closure}(Object(Symfony\Component\Config\ConfigCache)) #2 /var/www/html/xxx/vendor/symfony/symfony/src/Symfony/Component/Config/ConfigCacheFactory.php(46): call_user_func(Object(Closure), Object(Symfony\Component\Config\ConfigCache)) #3 /var/www/html/xxx/app/cache/prod/classes.php(1313): Symfony\Component\Config\ConfigCacheFactory->cache('/var/ww in /var/www/html/xxx/app/cache/prod/classes.php on line 5261
и когда я перехожу к /app_dev.php, у меня есть это:
Whoops, looks like something went wrong. 1/1 FatalErrorException in ConfigDataCollector.php line 276: Error: Undefined class constant 'END_OF_MAINTENANCE'
Моя версия PHP – 5.6.9 на Apache / 2.2.15.
Кто-нибудь знает?
Спасибо Кнуту
Я решил эту проблему, регенерировав bootstrap.php.cache (выполнив установку композитора / установку композитора или напрямую через скрипт)
Вы можете попробовать следующее:
php composer.phar self-update
до
php composer.phar update
Проблема заключалась в несовместимости между моими разными поставщиками, я обновил свой composer.json до:
{ "name": "symfony/framework-standard-edition", "license": "MIT", "type": "project", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "require": { "php": ">=5.4", "symfony/symfony": ">=2.4", "doctrine/orm": "~2.2,>=2.2.3", "doctrine/doctrine-bundle": ">=1.2", "twig/extensions": ">=1.0", "symfony/assetic-bundle": ">=2.3", "symfony/swiftmailer-bundle": ">=2.3", "symfony/monolog-bundle": ">=2.4", "sensio/distribution-bundle": ">=2.3", "sensio/framework-extra-bundle": ">=3.0", "sensio/generator-bundle": ">=2.3", "incenteev/composer-parameter-handler": "~2.0", "white-october/pagerfanta-bundle": "dev-master", "friendsofsymfony/rest-bundle": "1.3.*", "friendsofsymfony/comment-bundle": "2.0.*@dev", "friendsofsymfony/message-bundle": "1.2.*@dev", "friendsofsymfony/user-bundle": "~2.0@dev", "nelmio/api-doc-bundle": "@stable", "ornicar/akismet-bundle": "dev-master", "friendsofsymfony/jsrouting-bundle": "2.0.*@dev", "appventus/alertify-bundle": "dev-master", "friendsofsymfony/oauth-server-bundle": "dev-master", "willdurand/propel-typehintable-behavior": "*", "hwi/oauth-bundle": "0.4.*@dev", "nomaya/social-bundle": "dev-master" } }
и все работает …
Благодарю.
пытаться:
rm /var/www/html/xxx/app/cache/prod/* -rf
Для чего это стоит, я столкнулся с этой проблемой после обновления symfony (до 2,8 от 2,6), который работал на бродячего гостя.
Проблема действительно была в файле app/bootstrap.php.cache
. В нашем случае это не было исключено из нашего rsync
что означало, что если хост не обновил composer
проблема повторится. Это было решено путем исключения bootstrap.php.cache
из rsync
в нашем Vagrantfile:
config.vm.synced_folder "host/path", "guest/path", type: "rsync", rsync__exclude: [ 'bootstrap.php.cache'],
Этот файл создается composer
, поэтому запуск sudo composer install
или sudo composer update
у гостя будет его регенерировать.
Надеюсь, это поможет кому-то еще некоторое время.