Php 类自动加载不';从其他文件导入时无法工作

Php 类自动加载不';从其他文件导入时无法工作,php,namespaces,composer-php,autoload,Php,Namespaces,Composer Php,Autoload,当我从另一个文件导入所需的类时,My autoload.php不会加载该类: 这是i类自动加载源: main.php: use ElephantIO\Client; use ElephantIO\Engine\SocketIO\Version2X; require '/library/vendor/autoload.php'; class Main { __construct() { $this->socketIOClient = new Client(new Versi

当我从另一个文件导入所需的类时,My autoload.php不会加载该类:

这是i类自动加载源:

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和类,它们扩展了thread,但在需要autoload.php时,它们的行为并不正常。

将require放在第一位

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

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

我看不出第一个脚本是如何工作的。您正在尝试在包含自动加载之前使用类。这应该是第一个脚本抛出错误。问题是我使用了pthreads和类,这些类在需要autoload.php时扩展了thread,但它们的行为并不正常。