Avvertimenti di deprecazione dopo l'aggiornamento di Symfony 4.3.9 a 4.4.1 / 5.0


12

Ho avuto un'installazione di Symfony 3.4.9 senza deprecazioni. Quindi ho aggiornato l'FW alla 4.1.1. Ora ho ricevuto 9 avvisi di deprecazione tutti provenienti dalle librerie dei fornitori:

  • La creazione di Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy senza renderlo consapevole del numero è obsoleta e verrà rimossa in Doctrine ORM 3.0.
  • La classe "Symfony \ Component \ HttpKernel \ EventListener \ ExceptionListener" è obsoleta dal momento che Symfony 4.4 utilizza invece "ErrorListener".
  • La classe Doctrine \ Common \ Persistence \ Mapping \ AbstractClassMetadataFactory è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ Mapping \ AbstractClassMetadataFactory.
  • La classe Doctrine \ Common \ Persistence \ Mapping \ RuntimeReflectionService è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ Mapping \ RuntimeReflectionService.
  • La classe Doctrine \ Common \ Persistence \ ObjectManager è obsoleta a partire da dottrine / persistence 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ ObjectManager.
  • La classe Doctrine \ Common \ Persistence \ ObjectRepository è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ ObjectRepository.
  • La classe Doctrine \ Common \ PropertyChangedListener è obsoleta dalla dottrina / persistenza 1.3 e verrà rimossa in 2.0. Utilizzare invece \ Doctrine \ Persistence \ PropertyChangedListener.
  • La chiave di configurazione "twig.exception_controller" è stata deprecata in Symfony 4.4, impostala su "null" e usa invece la chiave di configurazione "framework.error_controller". (X2)

È "normale" o c'è qualche problema nel mio file composer.json? Ho ricontrollato e non vedo alcuna dipendenza che abbia un'impostazione "fissa".

Ho persino cancellato la cartella completa del fornitore e scaricato di nuovo poiché pensavo che potesse essere rimasta qualsiasi "spazzatura", con lo stesso risultato.

Il mio file composer.json:

{
    "type" : "project",
    "license" : "proprietary",
    "require" : {
        "php" : "^7.1.3",
        "ext-ctype" : "*",
        "ext-iconv" : "*",
        "sensio/framework-extra-bundle" : "^5.2",
        "symfony/apache-pack" : "^1.0",
        "symfony/asset" : "4.4.*",
        "symfony/console" : "4.4.*",
        "symfony/dotenv" : "4.4.*",
        "symfony/expression-language" : "4.4.*",
        "symfony/flex" : "^1.1",
        "symfony/form" : "4.4.*",
        "symfony/framework-bundle" : "4.4.*",
        "symfony/monolog-bundle" : "^3.1",
        "symfony/orm-pack" : "*",
        "symfony/process" : "4.4.*",
        "symfony/security-bundle" : "4.4.*",
        "symfony/serializer-pack" : "*",
        "symfony/swiftmailer-bundle" : "^3.1",
        "symfony/translation" : "4.4.*",
        "symfony/twig-bundle" : "4.4.*",
        "symfony/validator" : "4.4.*",
        "symfony/web-link" : "4.4.*",
        "symfony/webpack-encore-bundle" : "^1.1",
        "symfony/yaml" : "4.4.*"
    },
    "require-dev" : {
        "symfony/debug-pack" : "*",
        "symfony/maker-bundle" : "^1.0",
        "symfony/profiler-pack" : "^1.0",
        "symfony/test-pack" : "*",
        "symfony/web-server-bundle" : "4.4.*"
    },
    "config" : {
        "preferred-install" : {
            "*" : "dist"
        },
        "sort-packages" : true,
        "secure-http" : false
    },
    "autoload" : {
        "psr-4" : {
            "App\\" : "src/"
        }
    },
    "autoload-dev" : {
        "psr-4" : {
            "App\\Tests\\" : "tests/"
        },
        "classmap" : [
            "vendor/phpasn1"
        ]
    },
    "replace" : {
        "paragonie/random_compat" : "2.*",
        "symfony/polyfill-ctype" : "*",
        "symfony/polyfill-iconv" : "*",
        "symfony/polyfill-php71" : "*",
        "symfony/polyfill-php70" : "*",
        "symfony/polyfill-php56" : "*"
    },
    "conflict" : {
        "symfony/symfony" : "*"
    },
    "extra" : {
        "symfony" : {
            "allow-contrib" : false,
            "require" : "4.4.*"
        }
    }
}

MODIFICARE

Ho controllato i pacchetti installati con composer showe vedo che almeno 2 dei pacchetti installati sono rilevanti con l'elenco di deprecazioni sopra:

(...)
doctrine/orm                        v2.7.0  Object-Relational-Mapper for PHP
doctrine/persistence                1.3.3   The Doctrine Persistence project is a set of shared...
(...)

Quindi ho controllato le versioni disponibili di questi pacchetti con composer info doctrine/persistence --alle ho visto che ha installato l'ultima versione non-dev:

name     : doctrine/persistence
descrip. : The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.
keywords : mapper, object, odm, orm, persistence
versions : dev-master, 2.0.x-dev, 1.3.x-dev, * 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.x-dev, 1.2.0, 1.1.x-dev, 1.1.1, v1.1.0, 1.0.x-dev, v1.0.1, v1.0.0, dev-1.3.x-merge-up-into-master_5df35c38f354a9.94042071, dev-1.3.x-merge-up-into-master_5df33dc289ea03.65167777, dev-1.3.x-merge-up-into-master_5df29d964b0aa5.96685696, dev-github-funding, dev-master-old
(...)

Lo stesso per doctrine-orm.

Anche il sito GitHub per dottrina / persistenza sembra confermare questo: https://github.com/doctrine/persistence/releases

Quindi questo mi porta a pensare che questo sia un comportamento davvero normale e che in futuro, quando questi pacchetti verranno aggiornati, i messaggi di deprecazione scompariranno.

Nota sulla soluzione

Come noterà chiunque abbia letto la risposta accettata, ci sono ancora 5 deprecazioni che non possono ancora essere risolti. Includerò una risposta ASA ci sono una soluzione per questo. Se qualcuno lo nota prima di me, per favore non esitare ad aggiungere una risposta a questa domanda. Grazie.


Se provengono da librerie di fornitori e non dal tuo codice, allora è normale. È necessario aggiornare i fornitori in questione e questo dovrebbe risolverlo. Ricorda che non tutte le librerie sono aggiornate con le ultime deprecazioni di symfony e dottrine, quindi l'aggiornamento potrebbe non risolverlo immediatamente.
tftd

Il problema è ... quali venditori? ci sono più pacchetti per dottrina e per ramoscello. AFAIU questi sono quelli coinvolti. Quali dovrei scegliere in JSON? Ho appena controllato ... solo per il pacchetto di dottrine ce ne sono 33.
Nelson Teixeira,

Il modo più semplice che ho trovato per affrontare questo è avviare il progetto in modalità dev e passare attraverso alcune pagine del tuo browser. La barra degli strumenti di debug mostrerà avvisi di deprecazione e puoi usare i tracecollegamenti per vedere lo stacktrace e il punto pin da dove provengono. :)
tftd

2
Le cose sono cambiate tra 4.3 e 4.4. Ricorda che devi solo eliminare la deprecazione prima di passare a 5.x. Quindi, solo arare attraverso e correzione come qualsiasi altro se il primo è in realtà un problema di Dottrina e può essere fissato con: stackoverflow.com/questions/58975182/...
CERAD

1
Per favore non cancellare la domanda. Anche se non c'è nulla da fare, tranne aspettare gli aggiornamenti del fornitore. Sono arrivato qui tramite la deprecazione di Dottrina (circa ObjectManager) e mi ha aiutato a vedere, cosa sta succedendo.
k00ni,

Risposte:


3

Ok, sono stato in grado di correggere quanto segue. Sentiti libero di modificarlo se qualcuno sa come riparare uno qualsiasi degli altri.

1.) Da Cerad nei commenti: Deprecazione: Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy senza renderlo consapevole del numero è obsoleto

9.) Opzione di configurazione twig twig.exception_controller: https://github.com/symfony/symfony/blob/master/UPGRADE-4.4.md#twigbundle

2.) L'eccezione Listist è stata cancellata quando ho risolto i due elementi precedenti, portandomi solo a 5 ammortamenti


Infine, i 5 rimanenti sembrano essere noti e verranno corretti per questo: avvisi di classi obsolete nella console di Symfony 5.0.1 su Windows


1
Eccellente. Ho anche ridotto il mio numero di ammortamenti a 5. Grazie.
Nelson Teixeira,

3

Se vuoi sbarazzarti degli Doctrine\Common\Persistence\*ammortamenti fino a quando tutto è risolto, puoi aggiungere un "conflict": { "doctrine/persistence": "1.3.*" }al tuo composer.jsone rimanere con la versione 1.2. * Di dottrina / persistenza .


2
Grazie per le informazioni, ma preferisco avere i messaggi, o probabilmente dimenticherò di doverlo risolvere. :)
Nelson Teixeira il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.