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