Nette Documentation Preview

syntax
Обновление
**********


Обновление до версии 4.0
========================

Большинство изменений затрагивает только авторов собственных компонентов; обычного кода приложения они не касаются. Всю историю целиком смотрите в [записи блога о выпуске |https://blog.nette.org/en/nette-component-model-4-0].

- Метод `getComponents()` теперь возвращает `array` вместо `iterable`, а его устаревшие аргументы `$deep` и `$filterType` теперь выбрасывают `Nette\DeprecatedException`. Из сигнатуры они исчезли ещё в версии 3.1, но до сих пор во время выполнения работали. Для всего поддерева используйте `getComponentTree()`, при необходимости в сочетании с `array_filter()` для фильтрации по типу.
- Уведомления о присоединении теперь доставляются сверху вниз: callback `$attached` родителя выполняется раньше, чем у его потомков, что позволяет родителю подготовить своё состояние или даже удалить потомка до того, как тот будет обработан. Порядок отсоединения не изменился (сначала потомки).
- Переопределяемые методы `attached()` и `detached()` удалены; регистрируйте callback'и через `monitor($type, $attached, $detached)`.
- Класс `Component` больше не использует трейт `Nette\SmartObject`, так что магическое обращение к свойствам из базового класса ушло (`Control` и `BaseControl` добавляют трейт сами).
- Устаревшая константа `NAME_SEPARATOR` удалена; используйте `NameSeparator`, доступную начиная с версии 3.0.3.


Обновление до версии 3.0
========================

Конструктор `Nette\ComponentModel\Component` годами не использовался и в версии 3.0 был удалён. Это нарушение обратной совместимости: если вы вызываете родительский конструктор в компоненте или презентере, вызов нужно убрать.

Обновление

Обновление до версии 4.0

Большинство изменений затрагивает только авторов собственных компонентов; обычного кода приложения они не касаются. Всю историю целиком смотрите в записи блога о выпуске.

  • Метод getComponents() теперь возвращает array вместо iterable, а его устаревшие аргументы $deep и $filterType теперь выбрасывают Nette\DeprecatedException. Из сигнатуры они исчезли ещё в версии 3.1, но до сих пор во время выполнения работали. Для всего поддерева используйте getComponentTree(), при необходимости в сочетании с array_filter() для фильтрации по типу.
  • Уведомления о присоединении теперь доставляются сверху вниз: callback $attached родителя выполняется раньше, чем у его потомков, что позволяет родителю подготовить своё состояние или даже удалить потомка до того, как тот будет обработан. Порядок отсоединения не изменился (сначала потомки).
  • Переопределяемые методы attached() и detached() удалены; регистрируйте callback'и через monitor($type, $attached, $detached).
  • Класс Component больше не использует трейт Nette\SmartObject, так что магическое обращение к свойствам из базового класса ушло (Control и BaseControl добавляют трейт сами).
  • Устаревшая константа NAME_SEPARATOR удалена; используйте NameSeparator, доступную начиная с версии 3.0.3.

Обновление до версии 3.0

Конструктор Nette\ComponentModel\Component годами не использовался и в версии 3.0 был удалён. Это нарушение обратной совместимости: если вы вызываете родительский конструктор в компоненте или презентере, вызов нужно убрать.