【问题标题】:Composer autoload doesn't find class作曲家自动加载找不到类
【发布时间】:2018-10-01 10:34:29
【问题描述】:

H,我的 composer json 文件用 psr-4 自动加载一个类,但是当调用那个类时,php 返回错误:Error: Class 'ClassA\Tae' not found

这里是 json 自动加载

"autoload": {
    "psr-4": {
        "ClassA\\": "includes/ClassA/",
        "": "includes/"
    }
}

而我需要ClassA的php类就是这个

require_once __DIR__ .'/../vendor/autoload.php';
use ClassA\{ Rate, Tae, Taeg };

   class TestTaeg extends \PHPUnit\Framework\TestCase {

  public function test_tae() {
        $obj = Tae::init( 5, 12 );
}

你知道为什么我找不到 ClassA 吗?

我在cli上使用phpunit运行代码,使用这种语法(这是我第一次使用phpunit)

../vendor/phpunit/phpunit/phpunit ./test-general.php

谢谢

【问题讨论】:

  • 你跑composer dump-autoload了吗?
  • 是的,我试过 composer dump-autoload 但没有任何改变

标签: php composer-php autoload classnotfound


【解决方案1】:

你的类命名空间对吗?老实说,您的 psr-4 自动加载看起来有点乱,我假设您正在自动加载所有内容,即使您不需要这些。

因此,如果您请分享您的文件夹结构的屏幕截图,我可以尝试重新创建您的问题并可能会提出解决方案。

【讨论】:

  • 谢谢 NH,这是我的文件夹树:|测试 -- bootstrap.php -- test.php |供应商--autoload.php--bin--作曲家--学说--myclabs--phar-io--phpdocumentor--phpspec--phpunit--sebastian--theer--webmozart
  • 我在您的作曲家自动加载中提到的树中没有看到“包含”文件夹。请检查一下,如果您的文件夹结构有一个实际的树状视图,那就太好了。
  • 是的,你是对的。我昨天添加了那个文件夹,但没有任何变化。所以,现在我有了这棵树(根)|测试 |供应商 |包括 -- ClassA ---- Tae(这是我在 test.php 文件中调用的类的名称 use ClassA\{Tae}; )
猜你喜欢
  • 2016-03-06
  • 2019-05-16
  • 2014-02-11
  • 2014-04-24
  • 2017-01-02
  • 2019-01-31
  • 2017-08-25
相关资源
最近更新 更多