Обновление

Обновление до версии 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 был удалён. Это нарушение обратной совместимости: если вы вызываете родительский конструктор в компоненте или презентере, вызов нужно убрать.