Php 类自动加载不';从其他文件导入时无法工作
当我从另一个文件导入所需的类时,My autoload.php不会加载该类: 这是i类自动加载源: main.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
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,但它们的行为并不正常。