Есть ли способ ограничить видимость в PHP так же, как видимость «пакета» работает в Java или, по крайней мере, «знакомая» видимость на C ++? Какова наилучшая практика для поддержания большого проекта ООП, и чтобы никто не использовал какую-либо часть кода?
Я использую конфиденциальную и защищенную видимость настолько, насколько могу, но иногда этого недостаточно. Я знаю об этом запросе: https://bugs.php.net/bug.php?id=55331 . Есть ли прогресс в реализации такой вещи для PHP? Есть ли способ обхода, чтобы защитить ваш код (методы, переменные класса) от доступа из любого места?
Как указано здесь :
Нет. Вы можете установить переменную после объявления пространства имен, но переменные всегда будут существовать в глобальной области. Они никогда не привязаны к пространствам имен. Вы можете сделать вывод, что из-за отсутствия описания описания имен в http://www.php.net/manual/en/language.namespaces.faq.php
До сегодняшнего дня не существует языковой конструкции для ограничения видимости. Но вы можете аннотировать свой класс с помощью phpDocumentor's @internal
:
Тег
@internal
может использоваться как аналог тега@api
, указывая, что связанные структурные элементы используются исключительно для внутренней работы этого программного обеспечения.
Пользователь должен следовать этому предложению.