如PHP手册中所述
图案
模式。没有波浪扩展或参数替换。
我试图在变量中找到带路径名的文件但它不起作用。
加载程序文件(程序中的主要功能)需要包含几个文件,这些文件位于加载程序文件正在处理的当前类文件的同一目录中。 所以,我尝试了下面的 loader 文件。
$cwd = getcwd();
$reflector = new ReflectionClass($class_name); //$class_name come from $_GET
$fname = $reflector->getFileName();
$fdir = dirname($fname);
chdir ($fdir);
$include_file_name = glob("*.inc");
chdir ($cwd);
它有效但只是想知道它是一个好的工作还是我还能做的其他事情。
答案 0 :(得分:2)
如果您将所有类都放在一个目录中,则可以相对于当前脚本对其进行硬编码,这样就不需要反射类了。例如,如果当前脚本位于/var/www/foo
且类位于/var/www/classes
,则只需执行以下操作:
$include_file_name = glob(__DIR__ . '/../classes' . '*.inc');
但是如果这些类可以来自多个目录,那么使用这样的反射器对我来说似乎非常合适,但是你也可以将$fdir
添加到glob()
字符串而不是chdir()
像这样,但当然这只是微观优化:
$include_file_name = glob($fdir ."/*.inc");