带有Composer自动加载的PHP命名空间



我想移动几个库到Composer/Packagist,我正在努力与php命名空间映射。

  • 类文件位于/src下的Csp文件夹中。他们有一个PHP命名空间Csp
  • 由compose init生成的composer.json包含(不确定是否正确)
"autoload": {
"psr-4": {
"Theking2\Csp\": "src/"
}
},
  • 包在Packagisthttps://packagist.org/packages/theking2/上注册
  • 在一个测试项目中,我需要包
  • index.php中,我按照文档
require_once __DIR__ . '/vendor/autoload.php';
$csp = new CspBuilder(true);

但是我得到一个class not found错误。

composer.json中也使用此编辑:

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

"autoload": {
"psr-0": { "Csp\": "src/Csp" }
},

同样的结果。这些文件位于vendor/Theking2/csp-builder下的文件夹src/Csp中,因为compose update创建了它。

在有人问之前:是的,每个文件中都有一个namespace Csp;

在使用composer init时需要考虑几件事。第一个问题(<vendor><name>)定义了很多,默认为任何用户登录(?)以及她在哪个文件夹中工作。当然,这是可以改变的,但需要提前思考。所以一步一步来。

设置包

我们想要的

让我们假设这些先决条件:

<表类="年代桌子">实体价值tbody><供应商金山正在开发的包csp-builderdeveloper/logged on userjokinggithub user developingtheking2<Packagist名称/td>金山PHP名称空间金山 Csp源根src/