在Magento 2中安装第三方扩展的最佳实践是什么?


16

在为Magento 2进行客户项目工作时-我发现了许多加载并跟踪第三方扩展的方法。

假设我们正在使用集成器安装方法(composer!),那么管理第三方扩展的最佳实践是什么?

到目前为止,我购买或下载的每个扩展都有其自己的composer.json文件-而且我知道扩展作者建议至少三种不同的方式来安装其扩展:

  1. 将这些文件复制到应用程序/代码中
  2. 将此zip复制到文件夹中,将其添加为工件存储库,并要求它
  3. 添加此在线存储库(使用/不使用身份验证)并要求它

到目前为止,我遇到过1和2,只是有点怀疑#3的存在。但是然后,注意到那些建议#1的人,我发现您可以拥有一个“路径”存储库-将扩展从app / code移到了我决定放置这些工件的同一文件夹中,并以此方式要求。

在此过程中,我的存储库配置如下所示:

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/"
    },
    "artifacts": {
        "type": "artifact",
        "url": "artifacts"
    },
    "third-party": {
        "type": "path",
        "url": "artifacts/*/*"
    },
},

因此,我对您的问题是-最佳做法是什么?您如何管理第三方扩展?

到目前为止,我相信我的方法是最好的方法-仅因为读取了他们的composer.json并且任何依赖关系冲突(或PHP版本约束)都会变得很明显-但我认为这不够确定。

Answers:


8
  • 通过composer安装模块 Magento 2 的最佳方法。因为如果通过composer安装模块,则有很多优点。

  • 如果要升级模块,只需更改composer.json文件版本并composer update在rootMagentoento上运行命令。

  • 在手动安装时,您需要先下载模块并替换旧文件,然后运行setup:upgrade命令来升级模块。

  • 通过composer安装的所有模块都将下载到供应商文件夹中。

  • 如果您从Magento Marketplace购买模块,Magento使用默认的https://repo.magento.com/ URL下载模块。

  • 如果您从第三方网站购买模块。您需要在composer.json中添加存储库以下载和安装模块。

例如

"repositories": {
    "0": {
        "type": "composer",
        "url": "https://repo.magento.com/" //Default Magento Repositry
    },
    "thirdparty-module": {
        "type": "composer",
        "url": "https://mymodule.thirdparty.com/" //Third Party Repositary
    }
},

在我看来,作曲家是在Magento 2中安装模块的最佳方式。

通过composer安装第三方模块:

  1. 运行此命令以在conposer.json中添加新的存储库

作曲家配置库.thirdparty-module git https://thirdparty-composer-url.com

  1. 现在运行此命令以在composer.json中添加模块的组件和版本

作曲者需要[component-name]:[version]

Forex.  composer require prince/helloword:1.0.0
  1. 现在运行composer update 从存储库下载模块。

作曲家更新

  1. 现在运行setup:upgrade 以在以下位置安装和注册模块config.php

php bin / magento设置:升级


1

奇怪的是,所有答案都没有说明您已将工件识别为一种可能性:

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

模块供应商可能没有可使用的存储库,因此工件才是答案。大多数人(我遇到过)将为您提供文件的zip软件包,因此通过工件与作曲家一起使用恕我直言是最简单的方法。

当然,您可以为第三方模块文件提供自己的存储库,但就我个人而言,我不认为在这些文件上采取额外的步骤很有意义。

我认为值得一提的是,如果将它们添加到app文件夹中并提交文件,或者使用您自己的存储库,您可以轻松地发现3rd party扩展版本之间哪些文件已更改。

无论如何,我发现本文是关于使用arficats https://magently.com/blog/magento-2-the-right-way-to-install-external-modules/的,所以其他人也正在使用该流程。


-1

有两种方法,请在下面找到。

(1)使用作曲家自动安装

从市场购买下载产品,并从下载的产品信息中检查组件的名称,并使用以下示例代码更新composer.json在应用程序根目录中文件。

注意:别忘了将composer.lock文件包括在git commit中。

官方参考: http : //devdocs.magento.com/guides/v2.0/cloud/howtos/install-components.html

(2)手动安装

从下载的文件中下载组件zip文件,然后在临时位置解压缩并检查其为registration.php文件,您将在其中看到组件供应商名称和组件名称。在内部创建类似的目录结构。

app/code/VendorName/ComponentName

将您的zip文件解压缩到以上目录结构中,并从应用程序根目录运行以下命令以启用该模块。

php bin/magento module:enable VendorName_ComponentName
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
php -R 777 var/

使用以下命令启用检查模块。它将显示所有启用和禁用的模块列表。

php bin/magento module:status

希望这可以帮助!


我还没有找到正确的答案。尽管对此更加困惑。
卡皮尔·亚达夫

-2

我已经通过将扩展名放在app / code下安装了magento2扩展,并且网站对我来说一直很好,因此通过将扩展名放在app / code下进行安装是安装扩展的一种方式!


-2

管理第三方扩展的最佳实践是下载zip文件,然后将zip导入app / code文件夹中,然后将其解压缩。

之后,使用以下命令

  1. php bin / magento模块:启用_
  2. php bin / magento设置:升级
  3. php bin / magento安装程序:di:compile

请注意:这不是最佳做法。app/code建议不要通过使用来安装模块composer。使用composer代替。
Jisse Reitsma
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.