繁体   English   中英

使用Composer和PSR-0进行命名空间自动加载无法正常工作

[英]Namespace autoloading with composer and PSR-0 not working as expected

我做了一个测试项目,以了解作曲家和包装专家的工作方式。 该项目也在包装上

一个简单的composer require rakibtg/gowin将安装composer require rakibtg/gowin的软件包。

但是由于某种原因,命名空间无法正常工作。

这是我的目录结构和作曲家文件。 在此处输入图片说明

这是GoWin.php文件:

  <?php

  namespace GoWin;

  class GoWin {
    public function serve() {
      echo 'Lets Win Everybody!';
    }
  }

这是test.php文件,我正在其中尝试使用GoWin类中的serve()方法。

  <?php

  require_once './vendor/autoload.php';

  // use GoWin;

  ( new GoWin\GoWin() )->serve();

但是由于以下错误,它无法执行serve方法:

致命错误:未捕获的错误:在中找不到类'GoWin \\ GoWin'

/ Users / usr / Desktop / t estGoWin / index.php:7堆栈跟踪:

在第7行的/Users/usr/Desktop/testGoWin/index.php中抛出0 {main}

此时此刻我无法理解我所缺少的! 我还应该使用psr-0或psr-4吗?

我通过切换到PSR-4解决了这个问题,只需将composer.json autolaod属性更新为:

"autoload": {
    "psr-4": {
        "GoWin\\": "src/"
    }
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM