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
versione: 4.x