加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – PSR 4自动加载没有找到类

发布时间:2020-12-13 16:56:37 所属栏目:PHP教程 来源:网络整理
导读:我不知道为什么我的PSR-4 auotloader无法正常工作. 我的composer.json文件很简单 { "require" : { "abraham/twitteroauth" : "*" },"autoload" : { "psr-4" : {"Filters" : "src"} }} 我的PHP文件,位于src / Filters中 namespace Filters;class BlogFilter
我不知道为什么我的PSR-4 auotloader无法正常工作.

我的composer.json文件很简单

{
  "require" : {
     "abraham/twitteroauth" : "*"
  },"autoload" : {
    "psr-4" : {"Filters" : "src"}
  }
}

我的PHP文件,位于src / Filters中

namespace Filters;

class BlogFilter {

  public function __construct()
  {
    return 'hello from the constructor';
  }

}

在我的主文件中,位于根目录中,我有以下内容

require 'vendor/autoload.php';

use FiltersBlogFilter;

$foo = new BlogFilter();

echo $foo;

但是当我尝试运行代码时,我得到了

Fatal error: Class ‘FiltersBlogFilter’ not found in
/var/www/html/dev/foo.php on line 7

我不确定为什么它不起作用,我尝试运行composer update,composer install和composer dumpautoload,但错误仍然出现.

我的完整工作结构如下

.
├── composer.json
├── composer.lock
├── foo.php
├── src
│?? ├── Filters
│?? │?? └── BlogFilter.php
│?? └── TestDir
└── vendor
    ├── abraham
    │?? └── twitteroauth
    │??     ├── autoload.php
    │??     ├── composer.json
    │??     ├── LICENSE.md
    │??     ├── phpunit.xml
    │??     ├── README.md
    │??     ├── src
    │??     │?? ├── Util
    │??     │?? │?? └── JsonDecoder.php
    │??     │?? └── Util.php
    │??     └── tests
    ├── autoload.php
    └── composer
        ├── autoload_classmap.php
        ├── autoload_namespaces.php
        ├── autoload_psr4.php
        ├── autoload_real.php
        ├── ClassLoader.php
        └── installed.json

解决方法

自动加载部分应该是

"autoload" : {
    "psr-4" : {"Filters" : "src/Filters"}
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读