我有一个自动加载器,它作为 php 文件放置在我项目中所有其他子目录的上方。
它的作用是为任何特定的服务器请求一次加载所有可能的类。经过进一步思考,我得出结论,我只需要自动加载所需的类。
我需要做些什么来避免加载其他不需要的类?
如果我需要在我的子目录中发布类文件的相关代码片段,我可以。
<?php
namespace autoloader;
class autoloader
{
private $directoryName;
public function __construct($directoryName)
{
$this->directoryName = $directoryName;
}
public function autoload()
{
foreach (glob("{$this->directoryName}/*.class.php") as $filename)
{
include_once $filename;
}
foreach (glob("{$this->directoryName}/*.php") as $filename)
{
include_once $filename;
}
}
}
# nullify any existing autoloads
spl_autoload_register(null, false);
# instantiate the autoloader object
$classes = [
new autoloader('request'),
new autoloader('config'),
new autoloader('controllers'),
new autoloader('models'),
new autoloader('data')
];
# register the loader functions
foreach ($classes as $class)
spl_autoload_register(array($class, 'autoload'));