关于网友提出的“ [已解决]composer不能引入本地的三方代码?”问题疑问,本网通过在网上对“ [已解决]composer不能引入本地的三方代码?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: [已解决]composer不能引入本地的三方代码?
描述:引入本地包时是需要在repositories依赖里填写完整的包路径(包composer.json的相对目录),而不是只填写包目录所在位置,
所以我把主项目的composer.json改成这样就好了:
"repositories": {
"upacpsdk": {
"type": "path",
"url": "local3rdpackages/upacp" //<---这里不能只写local3rdpackages,而要写本地包完整路径
},
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
最后执行下require就可以了:
composer require upacp/sdk:dev-master -vvv
=======下面是原问题描述=========
我要引入银联的sdk,于是写了下面这种目录结构:

这里local3rdpackages目录是与主项目的composer.json在同一个目录级别下,我给三方库添加的composer.json文件代码如下(主要是为了inlcude acp_service.php文件)
{
"name": "upacp/sdk",
"autoload": {
"files": [
"acp_service.php"
],
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
}
}
}
主项目的composer.json文件里导入local3rdpackages目录下包的代码如下
"repositories": {
"0": {
"type": "path",
"url": "local3rdpackages/*/*",
"options": {
"symlink": false
}
},
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
但是还是没有效果啊,我应该怎么做?
解决方案1: "autoload": {
"psr-4": {
"App\\Controller\\": "app/controller",
"App\\Model\\": "app/model"
}, //自动加载规范。key为项目中引用类时的namespace,value为自定义类namespace。要注意key中需要两个\\
"files":["app/controller/index.php"], //引入单个文件
"classmap":["app/controller"] //引入文件夹下所有文件
}
以上三中方式都可以映入自定义类或者函数。
然后在执行 composer update
解决方案2:执行composer dump-autoload
然后查看/vendor/composer/autoload_files.php中生成的文件映射是否正确
解决方案3:原来是新版本composer的path类型. 刚看完文档.
以上介绍了“ [已解决]composer不能引入本地的三方代码?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4535101.html