по мадженте что когда ты создаешь класс, то все свойства которые не публичные, нужно делать private. При чем на вопрос почему "так сказал главный архитектор magento". При чем я согласен с этим утверждение если речь идет об observer и plugins которые не подразумевается наследовать и переопределять. Но если речь идет о моделях или процессорах с блоками которые иногда приходится реврайтить, то тут вопрос, а как его потом расширять? может я чегото не понимаю? Можете мне или скинуть где почитать или объяснить почему нужно делать именно так?
Вот я тоже задумался а зачем нам приватные свойства если наши сервисы всё равно взаимодействуют через интерфейс? Ну то есть по хорошему человеку даже в голову не должна придти идея на прямую что то менять в паблик свойствах, потому что он о них знать не будет, у него есть только описание методов интерфейса которые он может дёргать и при этом при тестировании намного проще будет изменять именно паблик свойства, а не приватные
расширять наследованием - крайне хреновая затея. Обычно, сознательные разработчки ставят private, ещё и final до кучи, что бы неокрепшие умы не творили хуйню.
Обсуждают сегодня