Убрать из кода protected private в новой версии фремеворка

2

В текущей версии присутствуют в ОЧЕНЬ большом количестве, а толку никакого, так как если нужно что то вызвать то или делается наследование или копируется код. 

Что в конечном итоге осложняет поддержку плагинов, так как требуется помимо своего плагина постоянно мониторить не изменился ли скопированный фрагмент.

7 комментариев

  • +1
    Алексей Алексей Webasyst 12 сентября 2018 14:16 #

    Слишком общее пожелание без конкретики.
    Если вы делаете наследование, то логично что стоит отслеживать изменения в родителях. Тем более что изменения не так часто делаются.
    А если копируете, то не должно волновать.

    • +1
      Александр Тарасенко Александр Тарасенко 12 сентября 2018 14:53 #

      Ответьте вся-таки на вопрос, зачем? Зачем прятать код усложняя к нему доступ?

      Примеры, ниже первое что вспомнилось, а так довольно часто возникает ситуация, что вот она нужная функции вызывай спокойно, но почему-то она protected или хуже всего private: 

      2 Плагин Подарки (задействовано распределение по складам) в shopWorkflowCreateAction есть замечательная функция fillItemsStockIds но она почему-то protected, пришлось делать класс посредник

      3 shopProductCollections - почти все protected

      4 серия shopCheckout * - очень много нужных методов спрятанных в protected, даже $step_id protected?!

      5 Самое смешное protected path в waPlugin


      Насчет копирования кода, загвоздка в том что получается скопированный код остается неизменным, а основной код изменяется, и код устаревает, не учитывает новые параметры и ограничения 

      • +1
        enso_studio@mail.ru enso_studio@mail.ru 12 сентября 2018 16:11 #

        Проблема не в приватности методов, а в том, что логика реализована в контроллерах. Аналогичная проблема и html кодом в классах. В общем MVC реализация хромает.

        Свойства классов не должны быть публичными, доступ к ним осуществляться через геттеры\сеттеры, только так можно добиться "чистоты" данных.

        • +1
          km km 13 сентября 2018 17:57 #

          mvc в php вообще в принципе хромает)

          • +1
            enso_studio@mail.ru enso_studio@mail.ru 14 сентября 2018 16:15 #

            не замечал, просто веб реализация само собой отличается от десктопных приложений.  а что именно хромает?

          • +1
            Syrnik.com Syrnik.com 14 сентября 2018 21:13 #

            Можете считать, что эти методы никто не обязуется оставлять неизменными. private так уж точно. и они могут вполне поменяться в следующей версии фреймворка. В том числе и кол-во аргументов. Как уже бывало не раз.

          • +1
            Quasar Quasar 14 сентября 2018 15:16 #

            Более конкретное весит у вас в PR к фреймворку. 

            Добавить комментарий

            Чтобы добавить комментарий, зарегистрируйтесь или войдите