Я вот какого гуся вывел из нашей беседы.
Инкапсуляция не имеет ни малейшего отношения к уровням доступа и тем более к магии. Вот в чем противоречие, вернее вот сейчас все встало на свои места. Я же чувствовал где-то подвох, нестыковку.
Разработчикам PHP глубоко плевать на инкапсуляцию, ибо это часть парадигмы, а не не языка. Механизм ограничения доступов не имеет к ней никакого отношения.
Это звучит крамольно, но это действительно так. Потому не стоит искать описание инкапсуляции в мануале, там есть только нейтральная "область видимости". Это механизм, а не принцип. И посему волен не подчиняться неписанным законам.
Раз инкапсуляция, как таковая, не задокументирована в мануале, значит действительно бремя её организации лежит исключительно на разработчике. И только он повинен в нарушениях её принципов.
Язык не виноват, что дает ему такую возможность. Языку вообще по барабану эти принципы и он не должен решать проблемы, выдуманные приверженцами ООП. Кстати, и ООП, как таковое, тоже не упоминается в мануале. Там есть классы и объекты, а как их использовать, это дело сугубо индивидуальное.
Так что все верно. MiksIr прав. Есть удобные механизмы, их можно и должно использовть, а как обозвать - дело вторичное.
Поэтому прав и автор статьи на хабре -