2015-12-07 5 views
8

После обновления Symfony до 2.8, я нашел много предупреждения устаревания:Symfony 2.8: ResourceInterface :: isFresh() является устаревшим, начиная с 2.8

Класс "Symfony \ Bundle \ AsseticBundle \ Config \ AsseticResource" это выполнение проверки через ResourceInterface :: isFresh(), ресурс, который является устаревшим, так как 2.8 и будут удалены в 3,0 (54 раза)

Стек (от Symfony профилировщика)

BCResourceInterfaceChecker::isFresh() (called from bootstrap.php.cache at line 3061) 
ResourceCheckerConfigCache::isFresh() (called from ResourceCheckerConfigCacheFactory.php at line 45) 
ResourceCheckerConfigCacheFactory::cache() (called from classes.php at line 1328) 
Router::getMatcher() (called from classes.php at line 1288) 
Router::match() (called from classes.php at line 7170) 
Router::match() (called from classes.php at line 2086) 
RouterListener::onKernelRequest() 
call_user_func() (called from WrappedListener.php at line 61) 
WrappedListener::__invoke() 
call_user_func() (called from classes.php at line 1853) 
EventDispatcher::doDispatch() (called from classes.php at line 1771) 
EventDispatcher::dispatch() (called from TraceableEventDispatcher.php at line 132) 
TraceableEventDispatcher::dispatch() (called from bootstrap.php.cache at line 3178) 
HttpKernel::handleRaw() (called from bootstrap.php.cache at line 3151) 
HttpKernel::handle() (called from bootstrap.php.cache at line 3302) 
ContainerAwareHttpKernel::handle() (called from bootstrap.php.cache at line 2498) 
Kernel::handle() (called from app_dev.php at line 29) 

для обновления я использовал:

composer.phar update symfony/symfony --with-dependencies 

это мой composer.json

{ 
    "name": "framework/symfony", 
    "license": "proprietary", 
    "type": "project", 
    "autoload": { 
     "psr-4": { 
      "": "src/" 
     } 
    }, 
    "require": { 
     "php": ">=5.3.9", 
     "symfony/symfony": "2.8.*", 
     "doctrine/orm": "^2.4.8", 
     "doctrine/doctrine-bundle": "~1.4", 
     "symfony/assetic-bundle": "~2.3", 
     "symfony/swiftmailer-bundle": "~2.3", 
     "symfony/monolog-bundle": "~2.4", 
     "sensio/distribution-bundle": "~4.0", 
     "sensio/framework-extra-bundle": "^3.0.2", 
     "incenteev/composer-parameter-handler": "~2.0" 
    }, 
    "require-dev": { 
     "sensio/generator-bundle": "~2.3" 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
     ], 
     "post-update-cmd": [ 
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin" 
    }, 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web", 
     "symfony-assets-install": "relative", 
     "incenteev-parameters": { 
      "file": "app/config/parameters.yml" 
     } 
    } 
} 

как решить это предупреждение устаревания?

+0

http://stackoverflow.com/questions/34105114/assetic-not-found-in-symfony-2-8-and-3-0 – Matteo

+0

@Matteo не решает мою проблему ... – ar099968

+1

от symfony 2.7 on, assetic больше не поставляется в рамках самой структуры. Я создал новый экземпляр версии 3, он использует какое-то управление активами, но не усложняет. может быть, какой-то помощник может помочь .. обновление: посмотрите на это сообщение, возможно, есть некоторые данные: http://symfony.com/blog/new-in-symfony-2-7-the-new-asset-component – Joshua

ответ

13

Некоторые прибегая к помощи нашел это: https://knpuniversity.com/screencast/symfony3-upgrade/fix-deprecations-in-bundles

Они ссылаются на страницу Assetic GitHub, который утверждает, что 2.7.1 готов к Symfony 3. Но ясно, что это не так. Это так просто. Assetic просто не symfony 3 готов, поэтому он генерирует много предупреждений об уклонении в 2.8. merge request to fix this еще не сведен.

1

Вы пробовали обновить версию assetic bundle до последней версии?

"symfony/assetic-bundle": "~2.7", 
+1

Будет хорошо, когда будет опубликован тег 2.7.2, на данный момент это не так 31 декабря 2015 года: проверьте https://github.com/symfony/assetic-bundle/issues/401 – COil

+0

2.7.1 isn ' t 3.0, но пока нет 2.8 или 2.7.2. –

10

Разветвитель-ведущий Symfony 3 совместим в течение нескольких недель. Нет ничего плохого в обновлении, чтобы использовать его.

composer.json

.... 
"symfony/assetic-bundle": "dev-master", 
.... 

обновление композитора Symfony/assetic-расслоение

Все ошибки уходят.

+0

Какую версию вы получите с этим, если сегодня, 2.7.1 является последним, а 2.7.1 имеет проблему? Похоже, я что-то упускаю. – userfuser

+2

Вы подберете версию, которая активно разрабатывается (отсюда и тег dev-master), версия, которая постоянно добавляет к ней новые функции (и удаляет код амортизации), но она еще не была полностью протестирована на совместимость с Сторонние расширения. Как правило, разработчик-разработчик очень стабилен, но поскольку у людей нет времени, чтобы его всегда тестировать, требуется очень много времени, чтобы перейти к стабильной работе, но теперь он решит ваши проблемы. –

+1

Tnx @Don, я всегда предполагал (ошибочно), что dev-master укажет мне последнюю стабильную версию (например, 2.7.1) – userfuser