引入本地包时是需要在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"
}
}
但是还是没有效果啊,我应该怎么做?
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
执行composer dump-autoload
然后查看/vendor/composer/autoload_files.php中生成的文件映射是否正确
慕森王
TA贡献1777条经验 获得超3个赞
"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
- 3 回答
- 0 关注
- 620 浏览
添加回答
举报
0/150
提交
取消