PHP好友/包可见性 有没有办法限制PHP中的可见性,就像“包”可见性在java中工作,或者C++中至少“朋友”可见性一样?维护大型OOP项目并且不让任何人使用代码的任何部分的最佳实践是什么
我尽可能多地使用私有和受保护的可见性,但有时这还不够。我知道这个请求:。在PHP中实现这样的东西有什么进展吗?是否有任何解决方法可以保护您的代码(方法、类变量)不被从任何地方访问?如前所述: 不可以。您可以在声明命名空间后设置变量,但 将始终存在于全局范围内。他们从来没有义务 名称空间。你可以从没有名字的情况下推断出来 中的分辨率描述PHP好友/包可见性 有没有办法限制PHP中的可见性,就像“包”可见性在java中工作,或者C++中至少“朋友”可见性一样?维护大型OOP项目并且不让任何人使用代码的任何部分的最佳实践是什么,php,package,visibility,friend,Php,Package,Visibility,Friend,我尽可能多地使用私有和受保护的可见性,但有时这还不够。我知道这个请求:。在PHP中实现这样的东西有什么进展吗?是否有任何解决方法可以保护您的代码(方法、类变量)不被从任何地方访问?如前所述: 不可以。您可以在声明命名空间后设置变量,但 将始终存在于全局范围内。他们从来没有义务 名称空间。你可以从没有名字的情况下推断出来 中的分辨率描述 直到今天,还没有语言结构来限制可见性。但您可以使用phpDocumentor的注释来注释您的类: @internal标记可以用作@api标记的对应项,表明相关结
直到今天,还没有语言结构来限制可见性。但您可以使用phpDocumentor的注释来注释您的类:
@internal
标记可以用作@api
标记的对应项,表明相关结构元素仅用于此软件的内部工作
这取决于API用户是否遵循该建议。与Java中的包不完全一样,但可用于代码封装。请键入一个简短的示例,好吗?如果您确实需要,可以使用
debug\u backtrace
[查看什么代码调用您的代码。基本上是编写您自己的运行时访问控制。可能需要做的工作太多,而且debug\u backtrace
的性能受到了影响。感谢您的回答。但是,我仍然想知道一些最佳实践或解决方法,以实现对代码的某种保护。我看不出这是如何回答的OP的问题。名称空间与访问可见性无关。@Markus我同意我的这个旧答案没有明确地解决它,但它说(与变量相反)任何名称空间中的所有内容都是全局的,因此您无法使用“private”或“protected”等访问修饰符隐藏成员。