猿问

composer psr-4对抽象类找不倒

自己练习写后端模板和ORM框架。先实现的后端模板,Porject/Framework下面,里面练习composer使用了psr-4和jwt依赖,一切正常。然后我去Project/DB下面写orm实现,具体路径如下:

\DB\---\cache\  数组的序列化缓存---\DBs\    针对不同数据库的具体实现,原是dbs,已改成DBs------\MySQLi.php   封装mysqli的类---\Exception\   自定义的抛错类,命名空间Framework和DB共用一个,但是Framework下还没编写也就不存在这个命名空间---\Helpers\  给用户写表格类的抽象类和类解析用的反射工具类---\Database.php   \dbs\下所有类的抽象类父类---\Loader.php   给Prject/Framework用的接口,主要用来生成配置数组以实例化Framework/DB/DB---\DB.php   具体的DB类,用配置数组初始化

因为Porject/Framework使用的就是psr-4,所以这个也用的psr-4,但是在MySQLi.php中却找不倒Database.php。后来我把它单独放到files下就好了,不知道为什么?

有问题的composer.json:

  "autoload": {    "psr-4": {      "Project\\DB\\Exception\\": "Exception",      "Project\\DB\\Helpers\\": "Helpers",      "Project\\DB\\DBs\\": "dbs"
    },    "files": [      "Database.php"
    ]
  },  "require": {    "php": ">=7.1.7"
  }


慕雪6442864
浏览 470回答 1
1回答

qq_笑_17

你先要明白 PSR-4 的加载规范是什么 你的类名文件名跟你能不能被规范所识别。还有你composer.json里面 psr-4是怎么定义的?贴出来看下,你这样提问别人很难帮你找到原因
随时随地看视频慕课网APP
我要回答