阻止 Composer 安装 CakePHP/2 的第二个副本
Prevent Composer from installing a second copy of CakePHP/2
我想使用 Composer 在我的 app
目录中安装一些库,但是 src/app/composer.json
将 CakePHP 列为非开发依赖项:
"require": {
"php": ">=5.3.0",
"ext-mcrypt": "*",
"cakephp/cakephp": "~2.9"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
这导致 CakePHP 的第二个副本安装到我的 app/Vendor
目录中。这很烦人,因为它使用光盘 space 并且在 IDE 的代码智能的道路上。
防止这种情况的最佳方法是什么?完全删除依赖项是否安全?
之所以首先将 CakePHP 列为核心依赖项,是因为实际上可以安装 CakePHP/2.x itself. It's explained in the Advanced Installation 章节。
除了使用 Composer 之外,初始设置还需要一些额外的手动步骤,这些步骤在 tarball 安装中不需要,但没有明确记录。您还必须使用 cake bake
shell 来创建您的初始应用程序文件(而不是只是开始输入已经存在的文件),这会产生与您可能习惯的结构不同的结构:
my_project/ My stuff comes here
<my app files>
Vendor/
cakephp/
cakephp/
... 而不是:
my_project/
<cakephp files>
app/ My stuff used to be here
如果您选择传统(又名手动)安装,您将不再满足依赖关系,因此您可以自行决定要做什么:
- 保持原样并在 editor/IDE
中将多余的副本标记为忽略
- 从 app/composer.json 删除依赖项并祈祷你不需要一个需要它的库
我想使用 Composer 在我的 app
目录中安装一些库,但是 src/app/composer.json
将 CakePHP 列为非开发依赖项:
"require": {
"php": ">=5.3.0",
"ext-mcrypt": "*",
"cakephp/cakephp": "~2.9"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
这导致 CakePHP 的第二个副本安装到我的 app/Vendor
目录中。这很烦人,因为它使用光盘 space 并且在 IDE 的代码智能的道路上。
防止这种情况的最佳方法是什么?完全删除依赖项是否安全?
之所以首先将 CakePHP 列为核心依赖项,是因为实际上可以安装 CakePHP/2.x itself. It's explained in the Advanced Installation 章节。
除了使用 Composer 之外,初始设置还需要一些额外的手动步骤,这些步骤在 tarball 安装中不需要,但没有明确记录。您还必须使用 cake bake
shell 来创建您的初始应用程序文件(而不是只是开始输入已经存在的文件),这会产生与您可能习惯的结构不同的结构:
my_project/ My stuff comes here
<my app files>
Vendor/
cakephp/
cakephp/
... 而不是:
my_project/
<cakephp files>
app/ My stuff used to be here
如果您选择传统(又名手动)安装,您将不再满足依赖关系,因此您可以自行决定要做什么:
- 保持原样并在 editor/IDE 中将多余的副本标记为忽略
- 从 app/composer.json 删除依赖项并祈祷你不需要一个需要它的库