Nette Documentation Preview

syntax
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

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

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

Actualización a la versión 2.3