php包含在更高的目录中
我的目录结构如下:php包含在更高的目录中,php,Php,我的目录结构如下: / index.php global.php classes/ class1.php class2.php management/ manage.php 在index.php中,我需要一次“global.php” 在global.php中,我需要foreach(glob(“classes/*”)作为$filename){require_once$filename}来要求我的所有类。稍后在global.php中,我需要实例化其中一个类 现在,我正在处
/
index.php
global.php
classes/
class1.php
class2.php
management/
manage.php
在index.php中,我需要一次“global.php”
在global.php中,我需要foreach(glob(“classes/*”)作为$filename){require_once$filename}
来要求我的所有类。稍后在global.php中,我需要实例化其中一个类
现在,我正在处理网站的管理部分,因此在management/manage.php
中,我需要访问我所有的类。如果我确实需要一次“./global.php”,那么该文件可以很好地包含在global.php中,但是稍后当我需要实例化其中一个类时,我会收到一个错误,说明找不到该类
当我处理顶级目录中的文件时,我可以毫不费力地使用global.php中的所有类。只有当我从management/manage.php中包含global.php时,才会弹出此错误,表示找不到该类。错误源在global.php中报告为一行
如何正确地包含所有必需的文件?我更愿意在global.php中只包含一次我的所有类。您真正需要的是一个。我不是在发布答案,因为你要求的是完全不同的东西,但那是你应该做的。请参见在global.phpuse
glob(dirname(_文件).“/classes/*”
中使用绝对路径。这将基于global.phpAutoloading的位置构造一个绝对路径,如果类文件只是定义类(它们实际上应该是这样的),那么这样做会更好。如果在其中定义了其他东西,比如helper函数,那么当运行代码引用某些类时,它们会神奇地出现。这让事情有点古怪。因此,如果您决定自动加载,请确保在您始终包含的某些文件中定义了非类内容。谢谢各位,我想是时候用自动加载程序重写了