我正在建立一个持续集成和交付的新系统。
由于PEAR即将对大多数包(如phpunit)进行EOL,我切换到composer,这似乎是一个好主意,因为我需要它的项目。
所以为了测试我的集成服务器,我从一个非常简单的composer.json开始:{
"require-dev": {
"phpunit/phpunit": "4.1.*",
"phpmd/phpmd" : "2.0.*",
"pdepend/pdepend" : "2.0.0",
"zerkalica/php-code-browser": "dev-master",
"squizlabs/php_codesniffer": "1.*",
"sebastian/phpcpd": "*",
"phpdocumentor/phpdocumentor": "dev-master"
}
}
这导致230MB供应商目录。
查看已安装包的完整列表:https://gist.github.com/rufinus/14b271f61e143364452f
这是预期的结果吗?
我应该切换到PHAR文件并将它们存储在项目内的bin目录中吗?
最佳实践是什么?(没有梨)
您可以配置composer来下载每个包,而不是克隆它。这将节省一些空间和时间。
{
"require-dev": {
"phpunit/phpunit": "4.1.*",
"phpmd/phpmd" : "2.0.*",
"pdepend/pdepend" : "2.0.0",
"zerkalica/php-code-browser": "dev-master",
"squizlabs/php_codesniffer": "1.*",
"sebastian/phpcpd": "*",
"phpdocumentor/phpdocumentor": "dev-master"
},
"config": {
"preferred-install": "dist"
}
}
要测试,请移除vendor
, composer.lock
并再次运行composer install
。现在它应该下载每个包,而不是克隆它。
作为旁注。尝试使用特定版本而不是"*"或"dev-master"。例如phpcpd,我确信它经常被标记为