如何在不使用require_的情况下自动加载和调用独立的PHP类?

如何在不使用require_的情况下自动加载和调用独立的PHP类?,php,composer-php,autoload,autoloader,spl-autoload-register,Php,Composer Php,Autoload,Autoloader,Spl Autoload Register,我有一个名为EQ的主类,连接到其他类,可以在这里查看 EQ类未连接到my,我使用以下命令在本地服务器中调用它: php -f path/to/EQ.php 和使用CRON作业的实时服务器: 1,15,30,45 * * * * (sleep 12; /usr/bin/php -q /path/to/EQ.php >/dev/null 2>&1) 我不知道如何正确使用自动加载器并将所有依赖文件加载到此类,以及删除一次require\us。我已经试过了,但

我有一个名为
EQ
的主类,连接到其他类,可以在这里查看

EQ类未连接到my,我使用以下命令在本地服务器中调用它:

php -f path/to/EQ.php 
和使用CRON作业的实时服务器:

1,15,30,45  *   *   *   *   (sleep 12; /usr/bin/php -q /path/to/EQ.php >/dev/null 2>&1)
我不知道如何正确使用自动加载器并将所有依赖文件加载到此类,以及删除一次
require\u
s。我已经试过了,但似乎确实有效:

spl_autoload_register(array('EQ', 'autoload'));
我如何解决这个问题

企图
实际上,autoloader函数将类名映射到文件名。例如:

class EQ
{
    public function autoloader($classname)
    {
        $filename = __DIR__ . "/includes/$classname.class.php";
        if (file_exists($filename)) {
            require_once $filename;
        } else {
            throw new Exception(sprintf("File %s not found!", $filename));
        }
    }
}

spl_autoload_register(["EQ", "autoloader"]);

$st = new ST;
// ST.php should be loaded automatically
$st->doStuff();
但是,大部分内容都内置在PHP中,使您的代码更加简单:

spl_autoload_extensions(".php");
spl_autoload_register();
$st = new ST;
$st->doStuff();

只要
ST.php
include\u路径中的任何位置,它就可以正常工作。不需要自动加载器功能。

您应该知道,它有几个示例。你也可以在“php psr-4自动加载器”上用谷歌搜索。或者您可以简单地让composer自动加载您的类“似乎正在工作”那么问题出在哪里?只需将逻辑放入自动加载函数中,将类名映射到文件位置。当代码调用
newsomething
时,它将类名作为字符串
Something
传递;你必须弄清楚它在哪里,然后包括(或要求)它。不确定你是否陈述了问题,但如果需要检查
spl_autoload_extensions(".php");
spl_autoload_register();
$st = new ST;
$st->doStuff();