有没有办法限制PHP的可见性,就像Java中的“package”可见性或C ++中的“朋友”可见性一样?维护大型OOP项目并且不让任何人使用代码的任何部分的最佳实践是什么?
我尽可能多地使用私人和受保护的可见性,但有时这还不够。我知道这个请求:https://bugs.php.net/bug.php?id=55331。在PHP中实现这样的事情有什么进展吗?是否有任何解决方法可以保护您的代码(方法,类变量)不被任何地方访问?
答案 0 :(得分:8)
直到今天,还没有语言构造来限制可见性。但您可以使用phpDocumentor @internal
:
@internal
标记可用作@api
标记的对应标记,表示关联的结构元素仅用于此软件的内部工作。
由API用户决定是否遵循该建议。
答案 1 :(得分:3)
如上所述here:
没有。您可以在声明命名空间后设置变量,但可以设置变量 将始终存在于全局范围内。他们永远不会受到约束 命名空间。您可以从没有任何名称推断出这一点 分辨率描述 http://www.php.net/manual/en/language.namespaces.faq.php