类 从另一个文件导入时自动加载不起作用

classes autoload doesn't work when imported from another file

当我从另一个文件导入时,我的 autoload.php 没有加载所需的 class:

这是我自动加载的class:

main.php:

use ElephantIO\Client;
use ElephantIO\Engine\SocketIO\Version2X;
require '/library/vendor/autoload.php';

class Main {
    __construct() {
    $this->socketIOClient = new Client(new Version2X('someWebsite'));
    }
}

以下脚本有效:

require 'main.php';
$main = new Main();

但是这个脚本没有:

require '/library/vendor/autoload.php';
require 'main.php';

class NotWorking extends Thread {
    __construct() {
        $this->main = new Main();
    }
}
$nowWorking = new NotWorking();

Output:

Fatal error: Uncaught Error: Class 'ElephantIO\Client' not found in main.php

为什么会这样,再次正确自动加载的方法是什么?

提前感谢您的帮助!

编辑:

问题是我使用了扩展线程的 pthreads 和 classes 在需要 autoload.php 时表现不正常。

把要求放在第一位。

require '/library/vendor/autoload.php';

use ElephantIO\Client;
use ElephantIO\Engine\SocketIO\Version2X;