Nette Documentation Preview

syntax
Upgrade
*******


Upgrade na verzi 4.0
====================

.[note]
Verze 4.0 je zatím ve vývoji, tato stránka postupně vzniká.

Většina změn se týká jen autorů vlastních komponent; běžného kódu aplikace se nedotknou. Celý příběh popisuje [článek na blogu k vydání |https://blog.nette.org/cs/component-model-4-0].

- Metoda `getComponents()` už nepřijímá parametry `$deep` a `$filterType` a vždy vrací pole přímých potomků. Pro celý podstrom použijte `getComponentTree()`, případně v kombinaci s `array_filter()` pro filtrování podle typu.
- Oznámení o připojení se nově doručují odshora dolů: callback `$attached` rodiče se spustí dříve než u jeho potomků, což rodiči umožní připravit svůj stav, případně potomka odebrat ještě předtím, než se zpracuje. Pořadí při odpojování zůstává nezměněné (nejdříve potomci).
- Přepisovatelné metody `attached()` a `detached()` byly odstraněny; callbacky registrujte přes `monitor($type, $attached, $detached)`.
- Třída `Component` už nepoužívá trait `Nette\SmartObject`, takže ze základní třídy zmizel magický přístup k vlastnostem (`Control` a `BaseControl` si trait přidávají samy).
- Konstanta `NAME_SEPARATOR` byla přejmenována na `NameSeparator`.


Upgrade na verzi 3.0
====================

Konstruktor `Nette\ComponentModel\Component` nebyl roky používán a byl odstraněn ve verzi 3.0. Je to BC break: pokud voláte rodičovský konstruktor v komponentě nebo presenteru, musíte volání odstranit.

Upgrade

Upgrade na verzi 4.0

Verze 4.0 je zatím ve vývoji, tato stránka postupně vzniká.

Většina změn se týká jen autorů vlastních komponent; běžného kódu aplikace se nedotknou. Celý příběh popisuje článek na blogu k vydání.

  • Metoda getComponents() už nepřijímá parametry $deep a $filterType a vždy vrací pole přímých potomků. Pro celý podstrom použijte getComponentTree(), případně v kombinaci s array_filter() pro filtrování podle typu.
  • Oznámení o připojení se nově doručují odshora dolů: callback $attached rodiče se spustí dříve než u jeho potomků, což rodiči umožní připravit svůj stav, případně potomka odebrat ještě předtím, než se zpracuje. Pořadí při odpojování zůstává nezměněné (nejdříve potomci).
  • Přepisovatelné metody attached() a detached() byly odstraněny; callbacky registrujte přes monitor($type, $attached, $detached).
  • Třída Component už nepoužívá trait Nette\SmartObject, takže ze základní třídy zmizel magický přístup k vlastnostem (Control a BaseControl si trait přidávají samy).
  • Konstanta NAME_SEPARATOR byla přejmenována na NameSeparator.

Upgrade na verzi 3.0

Konstruktor Nette\ComponentModel\Component nebyl roky používán a byl odstraněn ve verzi 3.0. Je to BC break: pokud voláte rodičovský konstruktor v komponentě nebo presenteru, musíte volání odstranit.