我在这里有个弯腰,我一定想念一些东西。我有一个web
目录,其中两个库是同级目录:
/
web/
vendor/
composer/
autoload_psr4.php
...
autoload.php
index.php
lib-one/
src/
A.php
lib-two/
src/
B.php
类文件:
<?php
namespace Org\LibOne;
class A
{
public function __construct()
{
}
}
<?php
namespace Org\LibTwo;
class B
{
public function __construct()
{
}
}
我已经运行composer update
,它将生成预期的vendor/composer/autoload_psr4.php
文件:
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Org\\LibOne\\' => array($baseDir . '/../lib-one/src'),
'Org\\LibTwo\\' => array($baseDir . '/../lib-two/src'),
);
最后,在Web目录中,我有一个带有以下代码的索引文件:
<?php
include('vendor/autoload.php');
use Org\LibOne\A;
use Org\LibTwo\B;
$a = new A();
$b = new B();
$a
被分配了一个A
实例,而$b
错误,说Class 'Org\LibTwo\B' not found in 'web/index.php line 9'
。
仅在使用Org\LibTwo
的代码已经起作用之后,我添加了Org\LibOne
。
我的拼写检查,命名空间,目录等有五倍检查。请帮助我恢复理智。