我有这个定义:
{ "repositories": [ { "type": "package", "package": { "name": "symfony/sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "symfony/sfGuardPlugin": "4.0.*" } }
我正在使用Symfony 1,并且想在上安装它们plugins/sfGuardPlugin/。我该如何指定?
plugins/sfGuardPlugin/
看来您可以将vendor目录定义为其他内容(plugins在您的情况下):
vendor
plugins
{ "config": { "vendor-dir": "plugins" } }
然后,您可以将包名称重命名为其中没有级别目录,例如:
"package": { "name": "sfGuardPlugin",
因此,您composer.json应该看起来像这样:
composer.json
{ "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "sfGuardPlugin": "4.0.*" } }
编辑
使用此配置,您将获得路径(这 当然 对symfony不利):
插件/sfGuardPlugin/sfGuardPlugin-4.0.2/
我发现了一个解决方法composer.json:
{ "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "source": { "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/", "type": "svn", "reference": "branches/1.3/" } } } ], "require": { "sfGuardPlugin": "4.0.*" } }