我让我的用户更改系统文件夹的名称。我也在它的类中使用命名空间。系统文件夹的名称保存在全局常量中。
自动加载根据 namespace 搜索文件。
所以,假设我有一个名为 system 的文件夹和一个类:
\Project_Name\System\Something;
用户将此文件夹更改为“something_else”。命名空间将与文件夹结构不匹配,并且不会加载该类。
有什么办法可以防止这种情况吗?也许在命名空间的名称中使用常量?
还有一个问题:
自动加载的类的名称是否总是以“\”开头?即使该类属于某个相对命名空间?
最佳答案
不要让他们
如果您的库依赖于 PSR-0(或任何其他)命名空间模式,请让您的用户知道他们 不能 更改文件夹名称或库将无法工作。
如果他们更改了文件夹名称——那是他们要解决的问题,而不是你要解决的问题。
关于PHP 命名空间和灵活的文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609810/