这应该是一个容易的。我开发了一个包把它的Myvendor \ MyPackage的作曲家包没有出现在autoload_namespaces
内MyVendor\MyPackage
是:
- 的Myvendor \ MyPackage的\ composer.json
- 的Myvendor \ MyPackage的\ MyClass.php
的MyVendor\MyPackage\composer.json
文件包含:
{
"name":"MyVendor/MyPackage",
"description":"MyClass!!!",
"keywords": ["MyKeyword"],
"homepage": "http://MyPackage.com",
"type":"library",
"license": "MIT",
"authors": [
{
"name": "ME",
"email": "[email protected]",
"homepage":"http://ME.com"
}
],
"require": {
},
"autoload":{
"psr-4" : {
"MyVendor\\MyPackage\\":""
}
}
}
现在我还有其他R项目称为MyOtherPackage
其composer.json
文件看起来像:
{
"require": {
"monolog/monolog": "1.2.*",
"MyVendor/MyPackage": "1.0.0"
},
"autoload": {
"psr-4": {
"MyVendor\\MyOtherPackage\\": "MyOtherPackage/",
"MyVendor\\": "/"
}
},
"repositories": [
{
"type": "package",
"package": {
"name": "MyVendor/MyPackage",
"version": "1.0.0",
"source": {
"url": "https://ME.com/svn/MyVendor/MyPackage/",
"type": "svn",
"reference": "trunk"
}
}
}
]
}
所以MyOtherPackage取决于MyPackage的。一切下载都很好,但如果我打开autload_namespaces.php它只包含monolog。它看起来像这样:
return array(
'Monolog' => array($vendorDir . '/monolog/monolog/src'),
);
为什么不MyVendor/MyPackage
出现在namespaces.php
或autoload_psr4.php
文件? composer.json
文件是否错误?
编辑我添加到MyPackage composer.json文件中。
我接着说: “自动加载”:{ \t \t “PSR-4”:{ \t \t \t “的Myvendor \\ \\ MyPackage的”: “” \t \t} \t}'和封装工程时,我运行作曲家安装,但是当我将它作为依赖项包含它时,它仍然没有显示在名称空间文件中。感谢您的帮助! – ajon
PSR-4 autoloading不包含在'autoload_namespaces.php'中,而是包含在'autoload_psr4.php'中。 – Sven
'autoload_psr4.php'文件同样没有映射文件。它具有来自MyOtherPackage的自动加载定义,但不是来自MyPackage。底线是当我尝试访问我得到的网页:'Class'MyVendor \ MyPackage \ MyClass'not found in ...' – ajon