Dopo l'aggiornamento di symfony da 2.3 a 2.7, ricevo molti messaggi di avviso di deprecazione per i quali non ho trovato alcun collegamento per risolvere quel problema.come risolvere la deprecazione di Twig_Function, Twig_Function_Method, Twig_Function_Node
Il messaggio di avviso che sto ottenendo è:
DEPRECATED - The Twig_Function class is deprecated since version 1.12 and will be removed in 2.0. Use Twig_SimpleFunction instead. -
Called from require() at line 154
Called from DebugClassLoader::loadClass()
Called from spl_autoload_call() at line 25
Called from require() at line 154
Called from DebugClassLoader::loadClass()
Called from spl_autoload_call() at line 22
Called from MenuExtension::getFunctions() at line 1282
Called from Twig_Environment::initExtension() at line 1263
Called from Twig_Environment::initExtensions() at line 1196
Called from Twig_Environment::getUnaryOperators() at line 371
Called from Twig_Lexer::getOperatorRegex() at line 65
Called from Twig_Lexer::__construct() at line 529
Called from Twig_Environment::getLexer() at line 557
Called from Twig_Environment::tokenize() at line 647
Called from Twig_Environment::compileSource() at line 382
Called from Twig_Environment::loadTemplate() at line 126
Called from TwigEngine::load() at line 50
Called from TwigEngine::render() at line 72
Called from TwigEngine::render() at line 97
Called from TwigEngine::renderResponse() at line 176
Called from Controller::render() at line 65
Called from DefaultController::indexAction()
Called from call_user_func_array() at line 3109
Called from HttpKernel::handleRaw() at line 3071
Called from HttpKernel::handle() at line 3222
Called from ContainerAwareHttpKernel::handle() at line 2444
Called from Kernel::handle() at line 34
Per vostra informazione, questa è la versione ramoscello sto usando:
php composer.phar show -i | grep twig
twig/extensions v1.0.1 Common additional features for Twig that do not directly belong in core
twig/twig v1.22.1 Twig, the flexible, fast, and secure template language for PHP
NB. A mio parere, i deprecations derivano dal fatto che alcuni bundle che ho installato utilizzano alcune funzioni deprecate. Quindi, di seguito è compositore.json file nel caso in cui potrebbe aiutare.
"require": {
"php": ">=5.3.9",
"symfony/symfony": "2.7.*",
"doctrine/orm": "~2.2,>=2.2.3,<2.5",
"doctrine/dbal": "<2.5",
"doctrine/doctrine-bundle": "~1.4",
"twig/extensions": "1.0.*",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~3.0,>=3.0.12",
"sensio/framework-extra-bundle": "~3.0,>=3.0.2",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/user-bundle": "v2.0.0-alpha3",
"lunetics/locale-bundle": "v2.4.2",
"stof/doctrine-extensions-bundle": "1.2.*@dev",
"knplabs/knp-menu": "2.0.*@dev",
"knplabs/knp-menu-bundle": "2.0.*@dev",
"coresphere/console-bundle": "0.3.0",
"knplabs/knp-markdown-bundle": "1.4.*@dev",
"lunetics/timezone-bundle": "dev-master",
"knplabs/knp-time-bundle": "1.4.0",
"a2lix/translation-form-bundle": "1.*@dev",
"knplabs/doctrine-behaviors": "1.2.*@dev",
"genemu/form-bundle": "2.2.*@dev",
"friendsofsymfony/jsrouting-bundle": "@stable",
"willdurand/geocoder": "@stable",
"misd/guzzle-bundle": "1.1.*@dev",
"friendsofsymfony/rest-bundle": "1.4.*@dev",
"jms/serializer-bundle": "0.13.*@dev",
"imagine/imagine": "0.5.*@dev",
"liip/imagine-bundle": "1.0.*@dev",
"nelmio/api-doc-bundle": "@stable",
"hwi/oauth-bundle": "0.4.*@dev",
"friendsofsymfony/facebook-bundle": "dev-master",
"willdurand/geocoder-bundle": "3.0.*@dev",
"google/apiclient": "1.0.*@dev",
"vich/uploader-bundle": "0.10.0",
"nomaya/social-bundle": "1.0.*@dev",
"jms/i18n-routing-bundle": "dev-master"
}
NB. Ho messaggi di avviso simili per Twig_Function_Method
, Twig_Function_Node
, ...
NB. Questo link ci dice che ci sono delle deprecazioni ma senza specificare come risolverle.
Si potrebbe o cambiarli o in composer.json non aggiornare alla versione più recente ramoscello che li ha ammortizzati. –
** PRIMO ** Per quanto riguarda il compositore, ho già aggiornato i miei bundle alla versione più recente e senza modifiche. Ciò significa che potrebbe avere alcuni bundle * (anche se sono l'ultima versione) * utilizzare alcuni metodi deprecati di twig. ** SECONDO ** l'avvertimento di deprecazione non mi dice dove cercare l'errore (che è il file da correggere ??). –
Se la tua applicazione contiene estensioni personalizzate per 'Twig', allora questo è il posto che dovresti cercare. Se vengono seguiti gli standard di codifica, questo dovrebbe normalmente essere 'src/BundleName/Twig /'.Dai un'occhiata alla documentazione di twig su [creazione di funzioni e filtri] (http://twig.sensiolabs.org/doc/advanced.html). – Artamiel