Symfony 2.8: ResourceInterface :: isFresh () устарел с версии 2.8

После обновления до Symfony до 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"
        }
    }
}

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


person ar099968    schedule 07.12.2015    source источник
comment
stackoverflow.com/questions/34105114/   -  person Matteo    schedule 07.12.2015
comment
@Matteo не решает мою проблему ...   -  person ar099968    schedule 07.12.2015
comment
Начиная с Symfony 2.7, ассетики больше не входят в состав самого фреймворка. Я создал свежий экземпляр версии 3, он использует какое-то управление активами, но больше не ассетик. может быть, какой-нибудь сопровождающий может помочь .. обновление: посмотрите этот пост, может быть, там есть информация: symfony.com/blog/new-in-symfony-2-7-the-new-asset-component   -  person Joshua    schedule 10.12.2015
comment
github.com/symfony/assetic-bundle/pull/395 Исправление готово быть объединенным, но не знаю, почему этого еще не произошло.   -  person Stephan Vierkant    schedule 14.01.2016


Ответы (3)


Некоторые поисковые запросы обнаружили следующее: https://knpuniversity.com/screencast/symfony3-upgrade/fix-deprecations-in-bundles

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

person Joshua    schedule 10.12.2015

Ветка dev-master уже несколько недель совместима с Symfony 3. Нет ничего плохого в обновлении, чтобы использовать его.

composer.json

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

композитор обновить Symfony / Assetic-bundle

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

person Don Omondi    schedule 11.12.2015
comment
Какую версию вы выберете, если на сегодня 2.7.1 самая последняя, ​​а у 2.7.1 есть проблемы? Похоже, я что-то упускаю. - person userfuser; 10.02.2016
comment
Вы выберете версию, которая активно разрабатывается (отсюда и тег dev-master), версию, в которую постоянно добавляются новые функции (и удаляется код амортизации), но которая еще не была тщательно протестирована на совместимость с 3-й. партийные расширения. Обычно dev-master очень стабилен, но, поскольку у людей нет времени постоянно его тестировать, переход на стабильную версию занимает очень много времени, но теперь он решит ваши проблемы. - person Don Omondi; 10.02.2016
comment
Tnx @Don, я всегда предполагал (ошибочно), что dev-master укажет мне на последнюю стабильную версию (например, 2.7.1 в данном случае) - person userfuser; 10.02.2016
comment
@userfuser в любое время :) Это распространенное заблуждение. - person Don Omondi; 10.02.2016

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

"symfony/assetic-bundle": "~2.7", 
person Daniel Cole    schedule 07.12.2015
comment
Будет хорошо, когда будет опубликован тег 2.7.2. На данный момент это не так 31 декабря 2015 г .: проверьте github.com/symfony/assetic-bundle/issues/401 - person COil; 31.12.2015
comment
2.7.1 еще не совместим с 3.0, но еще нет 2.8 или 2.7.2. - person Stephan Vierkant; 14.01.2016