使用(独立)模块化项目安装多个 Composer

     2023-03-15     190

关键词:

【中文标题】使用(独立)模块化项目安装多个 Composer【英文标题】:Multiple Composer Installs with (Independent) Modular Projects 【发布时间】:2017-12-13 10:31:23 【问题描述】:

我正在努力寻找将 composer 用于模块化结构的最佳方式。

假设我有这个框架树:

/cms/site/addons

假设开发人员可以使用插件来添加他们的composer.json 安装项目。 赞/site/addons/MyNewFeature/composer.json

所以下一个问题是/vendor 位置。如果每个插件都有一个/vendor 目录,我是否应该在主框架中自动加载它们,我认为这样的性能会太多,并且多个作曲家安装可能会安装很多相同的依赖项。而且我不能让它们都安装在同一个/vendor 目录中,比如/site/addons/vendor,因为composer 会自动删除当前安装中未包含的所有项目并使用它自己的锁定文件。

您如何为基于模块化项目的系统安装多个作曲家?虽然每个项目都需要自己的作曲家供应商,但为了性能,最好只包括 1 个供应商安装。我还没有找到解决方案,想知道你们中是否有人有想法或引导我走向正确的方向。

这几乎就像您需要一个主要的composer.json 安装,它会自动转到每个插件并安装它们......

另一种解决方案是对所有插件(安装/更新)使用作曲家,这给了我较少的控制权,并且对位于 /vendor 目录中的所有内容提出了问题。

【问题讨论】:

【参考方案1】:

经过一些研究和测试,我遇到了这个概念。

这允许框架按照其设计方式手动安装/更新插件,并在主composer.json 文件中使用repositories 通配符路径。

"repositories": [
        
            "type": "path",
            "url": "../site/addons/*",
            "options": 
                "symlink": false
            
        
    ]

现在它将检查 composer.json 文件的所有插件目录,并将它们的所有依赖项安装到一个通用的 /vendor 目录中,就像我最初想要的那样。

我不确定这样做以后可能会出现什么问题,但到目前为止,这提供了我想要的控制。

框架只需要确保主 json 中的 require 具有所有启用的插件。

https://getcomposer.org/doc/05-repositories.md#path

【讨论】:

如何使用 composer 安装 Magento2 示例模块?

】如何使用composer安装Magento2示例模块?【英文标题】:HowdoIinstallaMagento2sample-moduleusingcomposer?【发布时间】:2016-02-0904:39:12【问题描述】:我在本地机器上使用Magento2EE。我已经在这个上搜索了几个小时。我想安装此处列出的示例... 查看详情

使用composer安装多个包?(代码片段)

我正在尝试使用composer安装最新版本的ZendFramework2,并同时安装至少一个其他软件包。另一个包是另一个ZendFramework包。这两个包是:zendframework/zendframeworkzendframework/zendservice-twitter我将zendframework/zendservice-twitter添加到该文件的require... 查看详情

Composer,我的包中的类没有在使用它的应用程序中自动加载

】Composer,我的包中的类没有在使用它的应用程序中自动加载【英文标题】:Composer,classwithinmypackageisnotbeingautoloadedinapplicationusingit【发布时间】:2015-10-2623:35:12【问题描述】:我正在创建一个模块,该模块将包含在多个项目中。... 查看详情

使用 Composer 安装 PHP 项目依赖项

】使用Composer安装PHP项目依赖项【英文标题】:InstallingPHPProjectDependencieswithComposer【发布时间】:2015-07-1403:34:57【问题描述】:我正在尝试使用Composer(在XAMPP上)安装Nette2.3.1。在c:\\x\\php文件夹中,我运行以下命令:composercreate-pr... 查看详情

composer使用

Composer是PHP5以上的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 准备:开启php.ini里的openssl扩展 安装:双击安装文件->选择php.exe, 进入cmd,输入composer,如果存在这个... 查看详情

模块和组件的异同

...是跨项目可用的复用性       作为被第三方独立使用的工具,一般都有独立的封装     模块:偏向于设计,在项目中强调的是划分相对独立的功能,      更偏重于逻辑上的区分,封装上可以和其他模... 查看详情

git子模块-submodule

有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。Git... 查看详情

git子模块-submodule(转)

有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。Git... 查看详情

vue多个项目公共化组件方案

...方案1、把公共部分独立出来一个项目,npm发布私有包,使用的项目npminstall下载(目前下载使用出现配置错误)存在问题:目前公共部分已经独立出来,发布到npm,但是引用的时候接口部分报错,原因应该是配置错误,还在尝试2、... 查看详情

无法在 laravel 项目中使用 composer 安装 blocktrail/blocktrail-sdk

】无法在laravel项目中使用composer安装blocktrail/blocktrail-sdk【英文标题】:Cantinstallblocktrail/blocktrail-sdkwithcomposeronlaravelproject【发布时间】:2019-03-0114:38:27【问题描述】:问题是我需要在我的laravel项目中使用带有composer的blocktrail/block... 查看详情

composer基本使用

一、Composer的安装1、下载Composer2、Composer安装  1)、Composer安装前请确保已经安装了php;打开命令行窗口输入php-v可以查看php的当前版本号。3、局部安装与全局安装  局部安装:正确安装完后,可以将 composer.phar 文件... 查看详情

通过 composer 安装多个版本的 PHPUnit

】通过composer安装多个版本的PHPUnit【英文标题】:InstallmultipleversionofPHPUnitviacomposer【发布时间】:2015-01-2107:56:43【问题描述】:我正在使用ZendFramework1.x&2.x,不幸的是ZendFramework1.x仅支持PHPUnit3.x和ZendFramework2.x需要PHPUnit4.x为... 查看详情

composer安装与使用(代码片段)

Composer安装与使用Composer是PHP的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。Compos... 查看详情

如何使用 Composer 安装 lumen 5.8

】如何使用Composer安装lumen5.8【英文标题】:Howtoinstalllumen5.8usingComposer【发布时间】:2020-03-0215:29:03【问题描述】:我的源项目包含laravel/lumen5.8,我最近克隆了该项目并安装了composer,当我尝试以这种方式安装lumen时composerglobalrequ... 查看详情

composer安装以及使用方法

Composer是PHP的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 Linux下安装curl-sShttps://getcomposer.org/installer|php上面如果速度慢、或者失败的话,可以使用下面的方法:php-r"readfile(‘http:/... 查看详情

怎么使用php包依赖管理工具composer执行命令安装

参考技术ACentOS7下安装Composer安装Composer1、将composer.phar下载到项目中使用curl-sShttps://getcomposer.org/installer|php下载Composer的二进制文件,是一个PHAR包(PHP的归档)2、可以通过--install-dir选项指定Composer的安装目录(它可以是一个绝对... 查看详情

composer 从两个 composer.json 文件安装

】composer从两个composer.json文件安装【英文标题】:composerinstallfromtwocomposer.jsonfile【发布时间】:2018-03-1618:31:10【问题描述】:我有多个composer.json具有多个单独的依赖项,并希望使用单个composerinstall命令在两个composer.json中安装所... 查看详情

composer安装与使用(代码片段)

Composer是PHP的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。Composer默认情况下不是... 查看详情