PHP好友/包可见性

时间:2011-09-03 09:59:59

标签: php package visibility friend

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

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

2 个答案:

答案 0 :(得分:8)

直到今天,还没有语言构造来限制可见性。但您可以使用phpDocumentor @internal

为您的课程注释
  

@internal标记可用作@api标记的对应标记,表示关联的结构元素仅用于此软件的内部工作。

由API用户决定是否遵循该建议。

答案 1 :(得分:3)

如上所述here

  

没有。您可以在声明命名空间后设置变量,但可以设置变量   将始终存在于全局范围内。他们永远不会受到约束   命名空间。您可以从没有任何名称推断出这一点   分辨率描述   http://www.php.net/manual/en/language.namespaces.faq.php