PHP好友/包可见性

Pav*_* S. 10 php visibility friend package

有没有办法限制PHP中的可见性,就像"包"可见性在Java中工作或至少在C++中的"朋友"可见性一样?维护大型OOP项目并且不让任何人使用任何代码部分的最佳实践是什么?

我尽可能多地使用私人和受保护的可见性,但有时这还不够.我知道这个请求:https://bugs.php.net/bug.php?id = 55331.在PHP中实现这样的事情有什么进展吗?是否有任何解决方法来保护您的代码(方法,类变量)不被任何地方访问?

Mar*_*sch 8

直到今天,还没有语言结构来限制可见性.但是你可以使用phpDocumentor注释你的类@internal:

@internal标签可以被用作对应的@api标签,指示相关联的结构元件纯粹用于这个软件的内部工作.

由API用户来遵循该建议.


Cod*_*ter 3

正如这里所述:

不可以。您可以在声明命名空间后设置变量,但变量将始终存在于全局范围内。它们永远不会绑定到名称空间。您可以从http://www.php.net/manual/en/language.namespaces.faq.php中缺少任何名称解析描述来推断这一点