Magento有三个代码池:

  1. 社区
  2. 当地的

核: 它包含所有Magento默认模块

社区和本地: 我们将这些代码池用于我们的自定义模块开发。

现在我对此有所怀疑:

  • 为什么Magento使用两个代码池进行我们的自定义?
  • 为什么Magento不使用一个单个代码池进行自定义?

有人可以解释一下吗?

有帮助吗?

解决方案

应用/代码/核心- 保存使用基本洋红色分布并构成核心功能的模块。

应用程序/代码/社区- 持有第三方开发的模块

应用/代码/本地- 保留您开发的自定义模块,包括法师代码覆盖。

为什么Magento使用两个代码池进行我们的自定义?

Magento实际上使用了三个代码池。它将加载 当地的 第一的, 社区 第二,然后 第三。当两个+第三方扩展程序试图重写同一件事时,它将三个用于组织目的并帮助解决问题。在一个示例中,您在应用程序/代码/社区中有两个扩展程序试图重写相同的模型,您可以简单地将App/Code/local进行扩展名,然后将两个扩展名逻辑合并在一起。

为什么Magento不使用单个代码池进行自定义?

这样做的方法是尝试拥有一些代码组织。另外,当您遇到第三方冲突时,当地人非常有助于解决这些问题。当地人也很高兴拥有只有该站点才有的扩展。

其他提示

enter image description here

core : 该代码池属于Magento Core开发团队。因此,您不应在此代码池中进行任何修改。

community : 这属于Magento社区开发人员(包括任何开发第三方扩展的开发人员)。如果要创建任何第三方扩展,因此可以使用此代码池。

local : 如果您想对Magento商店进行任何修改(添加新功能 /扩展层 /核心功能修改等),则可以使用此方法,并且不想与社区共享。同时,您可以覆盖核心和社区代码池中的功能

描述Magento Codepools

核心池

首先,该文件夹存储所有使Magento如此强大,灵活和可爱的代码。 Magento开发的主要规则是,您绝对不应进行任何更改。换句话说,此文件夹仅属于Magento Core Developers,如果您要在此池中编辑任何内容,他们的邪恶精神也可以通过展示来惩罚您。

社区池

该文件夹完全属于社区开发人员。这是可以在Magentoconnect或Extensions Development Store上找到的数百个第三方扩展名的正确位置。因此,基本上,如果您已经安装了任何扩展名,则必须仅在应用程序/代码/社区/中。

当地游泳池

如果您拥有自己的基于Magento的商店,并且想自己制作所有东西,或者您是Magento开发人员,并且有目的以某种方式更改逻辑,那么本地游泳池是应该完成所有工作的地方。如果要覆盖Magento扩展,块或方法,请从Core Pool中复制必要的文件夹,然后做任何您愿意做的事情。将相同的规则应用于专门为网站创建的自定义扩展名 - 所有代码都应在本地池中。

简单地添加上述所有内容,以使优先级和模块化。您可以在mage.php中检查相同的内容。

加载代码池

 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
 $paths[] = BP . DS . 'lib';

因此,首先是本地调用,然后community然后Core和Magento将找不到任何核心文件,然后它将在包含Zend-Framework Core Files的LIB文件夹上搜索

我最好的解释是,如果您的目标是通过Magento Connect向更广泛的受众分发扩展,则可以将其放入社区中。

这将使另一个开发人员通过将类放入本地文件夹来覆盖行为。

许可以下: CC-BY-SA归因
scroll top