本地目录自动加载-“找不到类”

时间:2018-09-12 20:06:46

标签: composer-php vagrant psr-4

我在这里有个弯腰,我一定想念一些东西。我有一个web目录,其中两个库是同级目录:

/
  web/
    vendor/
      composer/
        autoload_psr4.php
        ...
      autoload.php
    index.php
  lib-one/
    src/
      A.php
  lib-two/
    src/
      B.php

类文件:

A.php

<?php

namespace Org\LibOne;

class A
{

    public function __construct()
    {

    }

}

B.php

<?php

namespace Org\LibTwo;

class B
{

    public function __construct()
    {

    }

}

我已经运行composer update,它将生成预期的vendor/composer/autoload_psr4.php文件:

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目录中,我有一个带有以下代码的索引文件:

index.php

<?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

我的拼写检查,命名空间,目录等有五倍检查。请帮助我恢复理智。

0 个答案:

没有答案