Laravel 4自定义程序包未显示在autoload_namespace.php
我尝试通过在我的一个laravel应用程序中创建一个工作台包来创建一个自定义包,将它提交给github,然后将其安装在另一个包中。我的问题是命名空间映射没有被添加到autoload_namespace.php
,并且这就是该行的敲门效果
我的providers数组中的Markfee\Responder\ResponderServiceProvider
在运行时会导致以下错误:
php artisan dump-autoload
错误输出:
PHP Fatal error: Class 'Markfee\Responder\ResponderServiceProvider' not found in /media/sf_wwwshare/feenance/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
该软件包可在以下网址找到:
https://github.com/markfee/responder.git
我在我的composer.json文件中包含了包含以下条目的包
"repositories": {
"responder": {
"type": "package",
"package": {
"name": "markfee/responder",
"description": "Simple responder class for responding with json from api",
"version": "0.1.0",
"source": {
"type": "git",
"url": "https://github.com/markfee/responder.git",
"reference": "a7a24c82479fc01ec0c06833690bfd2eeee9e47d"
}
}
}
},
"require": {
"laravel/framework": "4.2.*",
"markfee/responder": "0.1.*"
},
如果有人可以放任何光,我会非常感激。如果您需要任何进一步的细节,请询问。
答案 0 :(得分:1)
通过为该存储库提供包定义,您采用了复杂的方法。如果你这样做,这个包是该存储库中任何composer.json
的完全替代,只有在没有的情况下才能使用。
您没有将自动加载定义添加到该程序包中,因此在自动加载中正确丢失了。
建议:避免在您自己的type:package
文件中使用composer.json
。如果存储库已有type:vcs
,则只需使用composer.json
。
如果要像标记版本一样使用主分支,可以在require语句中添加别名:"markfee/responder": "dev-master as 0.1.0"
。您也可以克隆该repo并在您自己的本地副本中标记您想要的提交,并引用您自己的repo。或者尝试说服维护者标记版本并将其回购添加到packagist.org
。
答案 1 :(得分:0)
"repositories": {
"responder": {
"type": "vcs",
"url": "https://github.com/markfee/responder.git"
}
},
"require": {
"laravel/framework": "4.2.*",
"markfee/responder": "dev-master"
},