Nette Documentation Preview

syntax
Aggiornamento
*************


Aggiornamento alla versione 4.0
===============================

La versione minima di PHP richiesta è la 8.0.

La classe `Nette\Utils\Reflection` offriva i metodi `getParameterType()`, `getPropertyType()` e `getReturnType()` per lavorare con i tipi. Questi metodi sono nati quando PHP non aveva ancora i tipi unione, intersezione e la più recente forma normale disgiuntiva, con i quali non funzionano più correttamente. Sono stati sostituiti dalla [classe Type |type]. Dalla versione 4.0 questi metodi sono stati rimossi.

La variabile `Nette\Utils\Html::$xhtml` è stata rimossa.

I flag di alcuni metodi sono stati sostituiti da argomenti nominali. La notazione originale funziona ancora, ma non è più quella preferita: `Json::PRETTY` → `pretty:`, `Json::ESCAPE_UNICODE` → `asciiSafe:`, `Json::FORCE_ARRAY` → `forceArrays:`, `PREG_GREP_INVERT` in `Arrays::grep()` → `invert:`, `Image::SHRINK_ONLY` in `Image::resize()` → `shrinkOnly:` e i flag `PREG_*` in `Strings::split()`, `match()` e `matchAll()`.

Il metodo `Nette\Utils\Reflection::getParameterDefaultValue()` è deprecato, perché il nativo `ReflectionParameter::getDefaultValue()` funziona ormai correttamente.

Se usate RobotLoader, aggiornate anche quello alla versione 4.


Finder
------

Finder è passato al pacchetto `nette/utils`. Rimuovete il pacchetto originale `nette/finder`:

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

Su Linux, Finder lavora ora per impostazione predefinita in modalità sensibile alle maiuscole.

Nella versione precedente i metodi `exclude()` e `filter()` si comportavano in modo diverso a seconda che venissero chiamati **prima** o **dopo** `from()` o `in()`. Ora non è più così: `exclude()` e `filter()` funzionano sempre allo stesso modo. Il comportamento di `filter()` chiamato *dopo* `from()`/`in()` è ora affidato al nuovo metodo `descentFilter()`.

Finder non implementa più l'interfaccia `Countable`.

Una stringa che inizia con una barra in `Finder::findFiles('/f*')` è ora considerata un percorso assoluto. Se intendevate un percorso relativo alla directory corrente, sostituitela per esempio con `Finder::findFiles('./f*')`.

Se una directory in cui state cercando non esiste, viene sollevata `Nette\InvalidStateException` (al posto della precedente `UnexpectedValueException`).

Cos'altro sa fare il Finder riscritto è descritto nell'articolo [Finder 4.0: 10 anni di esperienza sotto il cofano |https://blog.nette.org/en/finder-4-10-years-of-experience-under-the-hood].


Aggiornamento alla versione 3.1
===============================

- `Nette\Utils\Arrays::searchKey()` è stato rinominato in `getKeyOffset()`
- `Nette\Utils\Callback::closure()` è deprecato in favore di `Closure::fromCallable()`
- `Nette\Utils\Reflection::toString()` aggiunge `()` dopo il nome della funzione o del metodo
- `Nette\Utils\Strings::toAscii()` emette un notice quando ext-intl non è presente


Aggiornamento alla versione 3.0
===============================

L'interfaccia `Nette\Localization\ITranslator` è cambiata.

`Nette\Object` è deprecato da Nette 2.4 ed è stato rimosso in Nette 3.0, ma esiste ancora con il nuovo nome `Nette\LegacyObject` (il nome `object` non si può usare da PHP 7.1) nel pacchetto [nette/deprecated |https://github.com/nette/deprecated].


Aggiornamento alla versione 2.4
===============================

Le classi del framework usano ora il trait `Nette\SmartObject` invece di ereditare da `Nette\Object`, il che differisce in alcuni casi:

- supporta le "proprietà emulate" solo se è presente l'annotazione `@property type $name`
- non supporta i "metodi di estensione"
- non supporta "getReflection"
- non supporta l'ottenimento di metodi come `$this->formSubmitted`; usate invece un classico callback PHP `[$this, 'formSubmitted']`

Il metodo `Nette\Utils\Html::add()` è stato sostituito da `addHtml()` e `addText()`.


Aggiornamento alla versione 2.3
===============================

- `Image::from()` solleva `ImageException` quando non riesce a decodificare il file
- `Image::getFormatFromString()` è deprecato
- `Strings::chr()` e `normalize()` ora funzionano solo con la codifica UTF-8
- `Strings::chr()` solleva `Nette\InvalidArgumentException` se il code point non è nell'intervallo valido

Aggiornamento

Aggiornamento alla versione 4.0

La versione minima di PHP richiesta è la 8.0.

La classe Nette\Utils\Reflection offriva i metodi getParameterType(), getPropertyType() e getReturnType() per lavorare con i tipi. Questi metodi sono nati quando PHP non aveva ancora i tipi unione, intersezione e la più recente forma normale disgiuntiva, con i quali non funzionano più correttamente. Sono stati sostituiti dalla classe Type. Dalla versione 4.0 questi metodi sono stati rimossi.

La variabile Nette\Utils\Html::$xhtml è stata rimossa.

I flag di alcuni metodi sono stati sostituiti da argomenti nominali. La notazione originale funziona ancora, ma non è più quella preferita: Json::PRETTYpretty:, Json::ESCAPE_UNICODEasciiSafe:, Json::FORCE_ARRAYforceArrays:, PREG_GREP_INVERT in Arrays::grep()invert:, Image::SHRINK_ONLY in Image::resize()shrinkOnly: e i flag PREG_* in Strings::split(), match() e matchAll().

Il metodo Nette\Utils\Reflection::getParameterDefaultValue() è deprecato, perché il nativo ReflectionParameter::getDefaultValue() funziona ormai correttamente.

Se usate RobotLoader, aggiornate anche quello alla versione 4.

Finder

Finder è passato al pacchetto nette/utils. Rimuovete il pacchetto originale nette/finder:

composer remove nette/finder

Su Linux, Finder lavora ora per impostazione predefinita in modalità sensibile alle maiuscole.

Nella versione precedente i metodi exclude() e filter() si comportavano in modo diverso a seconda che venissero chiamati primadopo from() o in(). Ora non è più così: exclude() e filter() funzionano sempre allo stesso modo. Il comportamento di filter() chiamato dopo from()/in() è ora affidato al nuovo metodo descentFilter().

Finder non implementa più l'interfaccia Countable.

Una stringa che inizia con una barra in Finder::findFiles('/f*') è ora considerata un percorso assoluto. Se intendevate un percorso relativo alla directory corrente, sostituitela per esempio con Finder::findFiles('./f*').

Se una directory in cui state cercando non esiste, viene sollevata Nette\InvalidStateException (al posto della precedente UnexpectedValueException).

Cos'altro sa fare il Finder riscritto è descritto nell'articolo Finder 4.0: 10 anni di esperienza sotto il cofano.

Aggiornamento alla versione 3.1

  • Nette\Utils\Arrays::searchKey() è stato rinominato in getKeyOffset()
  • Nette\Utils\Callback::closure() è deprecato in favore di Closure::fromCallable()
  • Nette\Utils\Reflection::toString() aggiunge () dopo il nome della funzione o del metodo
  • Nette\Utils\Strings::toAscii() emette un notice quando ext-intl non è presente

Aggiornamento alla versione 3.0

L'interfaccia Nette\Localization\ITranslator è cambiata.

Nette\Object è deprecato da Nette 2.4 ed è stato rimosso in Nette 3.0, ma esiste ancora con il nuovo nome Nette\LegacyObject (il nome object non si può usare da PHP 7.1) nel pacchetto nette/deprecated.

Aggiornamento alla versione 2.4

Le classi del framework usano ora il trait Nette\SmartObject invece di ereditare da Nette\Object, il che differisce in alcuni casi:

  • supporta le „proprietà emulate“ solo se è presente l'annotazione @property type $name
  • non supporta i „metodi di estensione“
  • non supporta „getReflection“
  • non supporta l'ottenimento di metodi come $this->formSubmitted; usate invece un classico callback PHP [$this, 'formSubmitted']

Il metodo Nette\Utils\Html::add() è stato sostituito da addHtml() e addText().

Aggiornamento alla versione 2.3

  • Image::from() solleva ImageException quando non riesce a decodificare il file
  • Image::getFormatFromString() è deprecato
  • Strings::chr() e normalize() ora funzionano solo con la codifica UTF-8
  • Strings::chr() solleva Nette\InvalidArgumentException se il code point non è nell'intervallo valido