В текущей версии присутствуют в ОЧЕНЬ большом количестве, а толку никакого, так как если нужно что то вызвать то или делается наследование или копируется код.
Что в конечном итоге осложняет поддержку плагинов, так как требуется помимо своего плагина постоянно мониторить не изменился ли скопированный фрагмент.
7 комментариев
Слишком общее пожелание без конкретики.
Если вы делаете наследование, то логично что стоит отслеживать изменения в родителях. Тем более что изменения не так часто делаются.
А если копируете, то не должно волновать.
Ответьте вся-таки на вопрос, зачем? Зачем прятать код усложняя к нему доступ?
Примеры, ниже первое что вспомнилось, а так довольно часто возникает ситуация, что вот она нужная функции вызывай спокойно, но почему-то она protected или хуже всего private:
2 Плагин Подарки (задействовано распределение по складам) в shopWorkflowCreateAction есть замечательная функция fillItemsStockIds но она почему-то protected, пришлось делать класс посредник
3 shopProductCollections - почти все protected
4 серия shopCheckout * - очень много нужных методов спрятанных в protected, даже $step_id protected?!
5 Самое смешное protected path в waPlugin
Насчет копирования кода, загвоздка в том что получается скопированный код остается неизменным, а основной код изменяется, и код устаревает, не учитывает новые параметры и ограничения
Проблема не в приватности методов, а в том, что логика реализована в контроллерах. Аналогичная проблема и html кодом в классах. В общем MVC реализация хромает.
Свойства классов не должны быть публичными, доступ к ним осуществляться через геттеры\сеттеры, только так можно добиться "чистоты" данных.
mvc в php вообще в принципе хромает)
не замечал, просто веб реализация само собой отличается от десктопных приложений. а что именно хромает?
Можете считать, что эти методы никто не обязуется оставлять неизменными. private так уж точно. и они могут вполне поменяться в следующей версии фреймворка. В том числе и кол-во аргументов. Как уже бывало не раз.
Более конкретное весит у вас в PR к фреймворку.