Cakephp 使用composer从github安装,github中不使用composer.json
我尝试使用Composer安装插件CakePHP CSV。我从ProLoser/CakePHP-CSV派生了它。 我不想安装在供应商,但在插件文件夹和Csv的名称,而不是默认的一个是插件的名称。我试图在composer.json中使用额外的代码,但不管我怎么做,它都会安装在项目的供应商文件夹中Cakephp 使用composer从github安装,github中不使用composer.json,cakephp,github,composer-php,Cakephp,Github,Composer Php,我尝试使用Composer安装插件CakePHP CSV。我从ProLoser/CakePHP-CSV派生了它。 我不想安装在供应商,但在插件文件夹和Csv的名称,而不是默认的一个是插件的名称。我试图在composer.json中使用额外的代码,但不管我怎么做,它都会安装在项目的供应商文件夹中 "repositories": [ { "type": "package", "package": { "name": "CakePHP-C
"repositories": [
{
"type": "package",
"package": {
"name": "CakePHP-CSV/Csv",
"version": "dev-master",
"source": {
"url": "https://github.com/sela/CakePHP-CSV",
"type": "git",
"reference": "origin/master"
}
}
}
],
"require": {
"CakePHP-CSV/Csv": "dev-master",
},
"config": {
"vendor-dir": "Vendor"
},
"extra": {
"installer-paths": {
"Plugin/Cvs": ["Plugin/cvs"]
}
}
你需要让你的包裹依赖于你 发件人: 如果您是软件包作者并希望将软件包安装到自定义目录,只需要求
编写器/安装器
并设置相应的类型
。如果您的软件包是针对特定的框架,如CakePHP、Drupal或WordPress,那么这是很常见的。以下是WordPress主题的composer.json文件示例:
{
"name": "you/themename",
"type": "wordpress-theme",
"require": {
"composer/installers": "~1.0"
}
}
后来(我在重要部分添加了斜体):
作为程序包使用者可以通过配置安装程序路径
额外设置或覆盖需要编写器/安装程序的程序包的安装路径。一个有用的例子是Drupal多站点设置,其中包应该安装到您的站点子目录中
请注意:
脚本
使用的任意额外数据
这几乎可以是任何东西。要从脚本事件处理程序中访问它,可以执行以下操作:
$extra = $event->getComposer()->getPackage()->getExtra();
第二部分非常重要;有些东西必须检索额外的数据并对其进行处理。在这个例子中,有些东西是
编写者/安装者
我需要更多的空间来编写代码,所以我自己回答。下面的代码有效,我不需要分叉代码
"repositories": [
{
"type": "package",
"package": {
"name": "ProLoser/CakePHP-CSV",
"version": "1.0",
"type": "cakephp-plugin",
"dist": {
"url": "https://github.com/ProLoser/CakePHP-CSV/archive/master.zip",
"type": "zip"
}
}
}
],
"require": {
"composer/installers": "~1.0.0",
"ProLoser/CakePHP-CSV": "1.*"
},
"config": {
"vendor-dir": "Vendor"
}
谢谢首先,您复制了示例composer.json,我需要将composer.json放在哪里?我将代码分叉到自己的存储库中,但是如果我不分叉代码并为插件创建composer.json,有没有办法做到这一点?我的本地计算机上已经有1个composer.json。@SelaYair,有两个相关的
composer.json
文件。第一个是针对包的,这一个必须需要composer/installers
。通常情况下,包的作者会提供这个,但是这个特定的库似乎没有这样做,所以您可能需要自己创建它。分叉存储库是一种很好的方法,不过您将负责将上游更改合并到分叉中。另一个composer.json
是适用于您的应用程序的,它取决于CSV库和您需要的任何其他库。您将在此处放置额外的
/安装程序路径
位,以重新定位CSV库。请注意,有大量用于创建Composer软件包以及Composer/installer
的文档。你应该读一读;您可能需要对上游库进行其他更改,以使其运行良好。