Nette Documentation Preview

syntax
Actualización
*************


Actualización a la versión 4.0
==============================

La versión mínima de PHP requerida es la 8.0.

La clase `Nette\Utils\Reflection` ofrecía los métodos `getParameterType()`, `getPropertyType()` y `getReturnType()` para trabajar con tipos. Estos métodos nacieron cuando PHP no tenía tipos union, intersection ni la más reciente forma normal disyuntiva, con los que ya no funcionan correctamente. Han sido sustituidos por la [clase Type |type]. Desde la versión 4.0, esos métodos se han eliminado.

Se ha eliminado la variable `Nette\Utils\Html::$xhtml`.

Las banderas de algunos métodos han sido sustituidas por argumentos nombrados. La notación original sigue funcionando, pero ya no es la preferida: `Json::PRETTY` → `pretty:`, `Json::ESCAPE_UNICODE` → `asciiSafe:`, `Json::FORCE_ARRAY` → `forceArrays:`, `PREG_GREP_INVERT` en `Arrays::grep()` → `invert:`, `Image::SHRINK_ONLY` en `Image::resize()` → `shrinkOnly:`, y las banderas `PREG_*` en `Strings::split()`, `match()` y `matchAll()`.

El método `Nette\Utils\Reflection::getParameterDefaultValue()` está obsoleto, porque el nativo `ReflectionParameter::getDefaultValue()` ya funciona correctamente.

Si usa RobotLoader, actualícelo también a la versión 4.


Finder
------

Finder se ha trasladado al paquete `nette/utils`. Elimine el paquete original `nette/finder`:

```shell
composer remove nette/finder
```

En Linux, Finder funciona ahora de forma predeterminada distinguiendo mayúsculas y minúsculas.

En la versión anterior, los métodos `exclude()` y `filter()` se comportaban de forma distinta según se llamaran **antes** o **después** de `from()` o `in()`. Ya no es así; `exclude()` y `filter()` funcionan siempre igual. El comportamiento de `filter()` llamado *después* de `from()`/`in()` lo asume ahora el nuevo método `descentFilter()`.

Finder ya no implementa la interfaz `Countable`.

Una cadena que empieza por barra en `Finder::findFiles('/f*')` se considera ahora una ruta absoluta. Si pretendía una ruta relativa al directorio actual, sustitúyala por ejemplo por `Finder::findFiles('./f*')`.

Si un directorio en el que busca no existe, se lanza `Nette\InvalidStateException` (en lugar de la anterior `UnexpectedValueException`).

Lo que sabe hacer además el Finder reescrito se describe en el artículo [Finder 4.0: 10 años de experiencia bajo el capó |https://blog.nette.org/en/finder-4-10-years-of-experience-under-the-hood].


Actualización a la versión 3.1
==============================

- `Nette\Utils\Arrays::searchKey()` se ha renombrado a `getKeyOffset()`
- `Nette\Utils\Callback::closure()` está obsoleto en favor de `Closure::fromCallable()`
- `Nette\Utils\Reflection::toString()` añade `()` tras el nombre de la función o el método
- `Nette\Utils\Strings::toAscii()` emite un aviso cuando no está presente ext-intl


Actualización a la versión 3.0
==============================

La interfaz `Nette\Localization\ITranslator` ha cambiado.

`Nette\Object` está obsoleto desde Nette 2.4 y se eliminó en Nette 3.0, pero sigue existiendo con el nuevo nombre `Nette\LegacyObject` (el nombre `object` no se puede usar desde PHP 7.1) en el paquete [nette/deprecated |https://github.com/nette/deprecated].


Actualización a la versión 2.4
==============================

Las clases del framework usan ahora el trait `Nette\SmartObject` en lugar de heredar de `Nette\Object`, lo que difiere en varios casos:

- admite las "propiedades emuladas" solo cuando está presente la anotación `@property type $name`
- no admite los "métodos de extensión"
- no admite "getReflection"
- no admite obtener métodos como `$this->formSubmitted`; use en su lugar un callback clásico de PHP, `[$this, 'formSubmitted']`

El método `Nette\Utils\Html::add()` ha sido sustituido por `addHtml()` y `addText()`.


Actualización a la versión 2.3
==============================

- `Image::from()` lanza `ImageException` cuando no puede decodificar el archivo
- `Image::getFormatFromString()` está obsoleto
- `Strings::chr()` y `normalize()` funcionan ahora solo con codificación UTF-8
- `Strings::chr()` lanza `Nette\InvalidArgumentException` si el punto de código no está en el rango válido

Actualización

Actualización a la versión 4.0

La versión mínima de PHP requerida es la 8.0.

La clase Nette\Utils\Reflection ofrecía los métodos getParameterType(), getPropertyType() y getReturnType() para trabajar con tipos. Estos métodos nacieron cuando PHP no tenía tipos union, intersection ni la más reciente forma normal disyuntiva, con los que ya no funcionan correctamente. Han sido sustituidos por la clase Type. Desde la versión 4.0, esos métodos se han eliminado.

Se ha eliminado la variable Nette\Utils\Html::$xhtml.

Las banderas de algunos métodos han sido sustituidas por argumentos nombrados. La notación original sigue funcionando, pero ya no es la preferida: Json::PRETTYpretty:, Json::ESCAPE_UNICODEasciiSafe:, Json::FORCE_ARRAYforceArrays:, PREG_GREP_INVERT en Arrays::grep()invert:, Image::SHRINK_ONLY en Image::resize()shrinkOnly:, y las banderas PREG_* en Strings::split(), match() y matchAll().

El método Nette\Utils\Reflection::getParameterDefaultValue() está obsoleto, porque el nativo ReflectionParameter::getDefaultValue() ya funciona correctamente.

Si usa RobotLoader, actualícelo también a la versión 4.

Finder

Finder se ha trasladado al paquete nette/utils. Elimine el paquete original nette/finder:

composer remove nette/finder

En Linux, Finder funciona ahora de forma predeterminada distinguiendo mayúsculas y minúsculas.

En la versión anterior, los métodos exclude() y filter() se comportaban de forma distinta según se llamaran antesdespués de from() o in(). Ya no es así; exclude() y filter() funcionan siempre igual. El comportamiento de filter() llamado después de from()/in() lo asume ahora el nuevo método descentFilter().

Finder ya no implementa la interfaz Countable.

Una cadena que empieza por barra en Finder::findFiles('/f*') se considera ahora una ruta absoluta. Si pretendía una ruta relativa al directorio actual, sustitúyala por ejemplo por Finder::findFiles('./f*').

Si un directorio en el que busca no existe, se lanza Nette\InvalidStateException (en lugar de la anterior UnexpectedValueException).

Lo que sabe hacer además el Finder reescrito se describe en el artículo Finder 4.0: 10 años de experiencia bajo el capó.

Actualización a la versión 3.1

  • Nette\Utils\Arrays::searchKey() se ha renombrado a getKeyOffset()
  • Nette\Utils\Callback::closure() está obsoleto en favor de Closure::fromCallable()
  • Nette\Utils\Reflection::toString() añade () tras el nombre de la función o el método
  • Nette\Utils\Strings::toAscii() emite un aviso cuando no está presente ext-intl

Actualización a la versión 3.0

La interfaz Nette\Localization\ITranslator ha cambiado.

Nette\Object está obsoleto desde Nette 2.4 y se eliminó en Nette 3.0, pero sigue existiendo con el nuevo nombre Nette\LegacyObject (el nombre object no se puede usar desde PHP 7.1) en el paquete nette/deprecated.

Actualización a la versión 2.4

Las clases del framework usan ahora el trait Nette\SmartObject en lugar de heredar de Nette\Object, lo que difiere en varios casos:

  • admite las „propiedades emuladas“ solo cuando está presente la anotación @property type $name
  • no admite los „métodos de extensión“
  • no admite „getReflection“
  • no admite obtener métodos como $this->formSubmitted; use en su lugar un callback clásico de PHP, [$this, 'formSubmitted']

El método Nette\Utils\Html::add() ha sido sustituido por addHtml() y addText().

Actualización a la versión 2.3

  • Image::from() lanza ImageException cuando no puede decodificar el archivo
  • Image::getFormatFromString() está obsoleto
  • Strings::chr() y normalize() funcionan ahora solo con codificación UTF-8
  • Strings::chr() lanza Nette\InvalidArgumentException si el punto de código no está en el rango válido