Actualización
Actualización a la versión 3.1
- el autowiring ya no pasa
nulla un parámetro que admite null y no tiene valor por defecto; pase el argumento explícitamente o dele al parámetro un valor por defecto - se ha eliminado el soporte de la anotación
@return; use un tipo de retorno o indique el tipo en la definición del servicio contype: - la clave
dynamicse ha renombrado aimportedyclassatype - el símbolo para un argumento omitido ha cambiado de
...a_, p. ej.MyService(_, 123) - en los archivos NEON ya no hace falta escapar el carácter
@al principio de una cadena - la clave
parametersdentro de las definiciones de factories generadas está obsoleta - el método
Nette\DI\Config\Loader::save()está obsoleto; exporte la configuración conNette\DI\Config\Adapters\NeonAdapter::dump()
La versión 3.1 es una versión de transición: no trae funcionalidades nuevas, pero avisa con notices de todo lo que funcionará de otra manera más adelante. Véase el artículo Nette DI 3.1: transition release.
Actualización a la versión 3.0
- se ha eliminado el soporte de los archivos INI
- se ha eliminado la escritura directa de código PHP en la configuración con signos de interrogación (p. ej.
"$service->onError[] = ?"(...)); use en su lugar la sintaxis de array'$onError[]' = [...] - en los archivos de configuración, use
factory: PDO(...)en lugar declass: PDO(...) - la etiqueta
nette.presenterya no se usa para los presenters
Para los autores de extensiones del compilador
Mientras que Nette 2.4 describía internamente cada servicio como Nette\DI\ServiceDefinition, ahora hay varios
tipos de definición: Nette\DI\Definitions\ImportedDefinition para los servicios importados (dinámicos),
Nette\DI\Definitions\FactoryDefinition para las factories generadas a partir de interfaces,
Nette\DI\Definitions\AccessorDefinition para los accessors generados y
Nette\DI\Definitions\ServiceDefinition para los servicios corrientes.
Por eso, además de ContainerBuilder::addDefinition() hay otros métodos para crear una nueva definición:
addFactoryDefinition(), addAccessorDefinition() y addImportedDefinition().
Actualización a la versión 2.4
- las secciones de configuración (p. ej. production, development) en un único archivo de configuración están obsoletas; use
un par de archivos
config.neonyconfig.local.neon - la herencia de definiciones de servicios está obsoleta
Statement::setEntity()está obsoleto
Actualización a la versión 2.3
- se ha eliminado el soporte para colocar servicios dentro de la sección de la extensión en el archivo de configuración
- se ha eliminado el soporte de las extensiones añadidas dinámicamente
- al sustituir un servicio dinámicamente (con
removeService(),addService()), el nuevo servicio debe ser una instancia de la misma interfaz o clase que el original