Mise à niveau
Mise à niveau vers la version 3.1
- l'autowiring ne passe plus
nullà un paramètre nullable sans valeur par défaut ; indiquez l'argument explicitement, ou donnez une valeur par défaut au paramètre - la prise en charge de l'annotation
@returna été abandonnée ; utilisez un type de retour, ou indiquez le type dans la définition du service à l'aide detype: - la clé
dynamica été renommée enimportedetclassentype - le symbole d'un argument omis passe de
...à_, par exempleMyService(_, 123) - dans les fichiers NEON, le caractère
@au début d'une chaîne n'a plus besoin d'être échappé - la clé
parametersà l'intérieur des définitions de factories générées est obsolète - la méthode
Nette\DI\Config\Loader::save()est obsolète ; exportez la configuration à l'aide deNette\DI\Config\Adapters\NeonAdapter::dump()
La version 3.1 est une version de transition : elle n'apporte pas de nouvelles fonctionnalités, mais elle signale par des avertissements tout ce qui fonctionnera différemment par la suite. Voir l'article Nette DI 3.1: transition release.
Mise à niveau vers la version 3.0
- la prise en charge des fichiers INI a été supprimée
- l'écriture directe de code PHP dans la configuration à l'aide de points d'interrogation (par exemple
"$service->onError[] = ?"(...)) a été supprimée ; utilisez à la place la syntaxe de tableau'$onError[]' = [...] - dans les fichiers de configuration, utilisez
factory: PDO(...)au lieu declass: PDO(...) - le tag
nette.presentern'est plus utilisé pour les presenters
Pour les auteurs d'extensions du compilateur
Alors que Nette 2.4 décrivait en interne chaque service comme Nette\DI\ServiceDefinition, il existe désormais
plusieurs types de définitions : Nette\DI\Definitions\ImportedDefinition pour les services importés (dynamiques),
Nette\DI\Definitions\FactoryDefinition pour les factories générées à partir d'interfaces,
Nette\DI\Definitions\AccessorDefinition pour les accesseurs générés et
Nette\DI\Definitions\ServiceDefinition pour les services courants.
C'est pourquoi, en plus de ContainerBuilder::addDefinition(), il existe plusieurs autres méthodes pour créer une
nouvelle définition : addFactoryDefinition(), addAccessorDefinition() et
addImportedDefinition().
Mise à niveau vers la version 2.4
- les sections de configuration (par exemple production, development) dans un seul fichier de configuration sont obsolètes ;
utilisez une paire de fichiers
config.neonetconfig.local.neon - l'héritage des définitions de services est obsolète
Statement::setEntity()est obsolète
Mise à niveau vers la version 2.3
- la prise en charge du placement de services à l'intérieur de la section extension du fichier de configuration a été supprimée
- la prise en charge des extensions ajoutées dynamiquement a été supprimée
- lors du remplacement dynamique d'un service (via
removeService(),addService()), le nouveau service doit être une instance de la même interface/classe que l'original