使用Composer的自动加载器以下实例应用程序触发自动加载器
$app = new Application();
当应用程序作为参数的实例化不会触发自动加载器加载该类。要注意以下代码加载服务器类,但没有加载应用程序类。
$server = new Server(new Application(dirname(__DIR__) . '/config'));
应用程序类位于供应商之外,这就是我在composer.json
中指定它的方式。{
"autoload": {
"psr-4": {
"App\": "src"
}
}
}
我使用的名称空间如下
use AppApplication;
use StinHttpServer;
尝试以这种方式:
$app = new Application(dirname(__DIR__) . '/config');
$server = new Server($app);
我无法真正解释为什么嵌套的新对象不起作用,它似乎是与内存有关的,或者可能是PHP的限制。
,但我可以告诉你这不是关于自动加载的,这是证明
class a {
}
class b {
public function __construct($yo)
{
echo $yo;
}
}
new a(new b('hello')); //does not work
$b = new b('yo');
new a($b);//work