Actualización
*************
Actualización a la versión 3.1
==============================
- el autowiring ya no pasa `null` a 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 con `type:`
- la clave `dynamic` se ha renombrado a `imported` y `class` a `type`
- 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 `parameters` dentro de las definiciones de factories generadas está obsoleta
- el método `Nette\DI\Config\Loader::save()` está obsoleto; exporte la configuración con `Nette\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 |https://blog.nette.org/en/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 de `class: PDO(...)`
- la etiqueta `nette.presenter` ya 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.neon` y `config.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
Actualización
Actualización a la versión 3.1
- el autowiring ya no pasa
null a 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 con type:
- la clave
dynamic se ha renombrado a imported y class a type
- 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
parameters dentro de las definiciones de factories generadas está obsoleta
- el método
Nette\DI\Config\Loader::save() está obsoleto; exporte la configuración
con Nette\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 de class: PDO(...)
- la etiqueta
nette.presenter ya 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.neon y config.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