如果遇到成年老项目,或者不规范开发导致不能正常使用 composer require xxxx,可以用如下方式解决,以七牛云SDK为例进行处理。
假设项目位置为:~/project,七牛云SDK位置为:~/qiniu
github拉取项目,或者直接下载sdk包
$ cd ~/project
# 直接下载的sdk包,github拉取会少一级目录
$ mv ~/qiniu vender/qiniu
$ cd vender && tree -L 3
├── qiniu
│ └── php-sdk
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── autoload.php
│ ├── composer.json
│ ├── examples
│ ├── phpunit.xml.dist
│ ├── src
│ └── tests
更改项目根目录下的composer.json,以更改classmap
为例
// 位置 ~/project/composer.json
"autoload": {
// 需要引入包的位置
"classmap": [
"vendor/qiniu/php-sdk"
],
// 需要独立引入文件的位置
"files": [
"vendor/qiniu/php-sdk/src/Qiniu/functions.php"
]
},
更新自动加载文件
$ cd ~/project
$ composer dump-autoload -o