类 从另一个文件导入时自动加载不起作用
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;
当我从另一个文件导入时,我的 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;