Почему у Magento есть 3 пула кодов?


26

Magento имеет три пула кода:

  1. сообщество
  2. ядро
  3. местный

Ядро: содержит все стандартные модули Magento

Сообщество и местное сообщество: мы используем эти пулы кода для разработки наших пользовательских модулей.

Теперь у меня есть сомнения по этому поводу:

  • почему Magento использует два пула кода для нашей настройки?
  • почему Magento не использует один пул кода для настройки?

Может ли кто-нибудь объяснить об этом?

Ответы:


34

app / code / core - содержит модули, которые распространяются вместе с базовым Magento и составляют основные функциональные возможности.

app / code / community - содержит модули, разработанные сторонними разработчиками

app / code / local - содержит разработанные вами пользовательские модули, включая переопределения кода Mage.

Почему Magento использует два пула кода для нашей настройки?

Magento фактически использует три пула кода. Он будет загружен локальным первым, вторым сообществом и третьим ядром . Он использует три для организационных целей и для решения проблем, когда два + сторонние расширения пытаются переписать одно и то же. Например, если у вас есть два расширения в app / code / community, пытающихся переписать одну и ту же модель, вы можете просто создать расширение в app / code / local и объединить логику двух расширений.

Почему Magento не использует единый пул кода для настройки?

Это было сделано таким образом, чтобы попытаться организовать код. Кроме того, когда у вас возникают конфликты со сторонними организациями, местный администратор может помочь решить эти проблемы. Местные также замечательно иметь расширения, которые когда-либо будет только у этого сайта.


1
Хороший ответ на вопрос с одним пулом кода. Учитывая все конфликты, с которыми вы столкнетесь после установки нескольких сторонних модулей, очень важно иметь этот третий localпул кода, чтобы избавиться от всех проблем.
Fiasco Labs

11

введите описание изображения здесь

core :Этот пул кода принадлежит команде разработчиков ядра Magento. Таким образом, вы не должны вносить никаких изменений в этот пул кода.

community :Это принадлежит разработчикам сообщества Magento (включая любого разработчика, который разрабатывает сторонние расширения). Если вы создаете какие-либо сторонние расширения, вы можете использовать этот пул кода для этого.

local :Это можно использовать, если вы хотите внести какие-либо изменения (добавить новые функциональные возможности / переопределение расширений / основные модификации и т. Д.) Специально для своего магазина Magento и не хотите делиться им с сообществом. В то же время вы можете переопределить функциональность в пуле кода ядра и сообщества.


5

Опишите Magento Codepools

Основной бассейн

Прежде всего, в этой папке хранится весь код, который делает Magento таким мощным, гибким и привлекательным. Главное правило развития Magento заключается в том, что вы никогда не должны вносить в него никаких изменений. Другими словами, эта папка принадлежит только разработчикам ядра Magento, и если вы собираетесь что-то редактировать в этом пуле, их злой дух может наказать вас даже через дисплей.

Общественный бассейн

Эта папка полностью принадлежит сообществу разработчиков. Это подходящее место для сотен сторонних расширений, как бесплатных, так и платных, которые можно найти в MagentoConnect или можно найти в магазине разработки расширений. В общем, если вы установили какое-либо расширение, оно должно быть только в приложении / коде / сообществе /.

Локальный бассейн

Если у вас есть собственный магазин на основе Magento и вы хотите сделать все самостоятельно, или вы являетесь разработчиком Magento и хотите каким-то образом изменить логику, локальный пул - это место, где все должно быть сделано. Если вы хотите переопределить расширения, блоки или методы Magento, скопируйте необходимые папки из основного пула и делайте все, что вы склонны делать. Примените то же правило к пользовательским расширениям, которые создаются специально для веб-сайта - весь код должен находиться в локальном пуле.


4

Добавление всего вышеперечисленного просто для определения приоритетов и наличия модульности. Вы можете проверить то же самое в 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';

Поэтому сначала Local вызывается, затем community, затем core и magento не найдут какие-либо файлы core, а затем будут искать в папке lib, содержащей файлы ядра Zend-Framework.


1

Лучшее объяснение, которое у меня есть, заключается в том, что если вы хотите распространять свои расширения среди более широкой аудитории, например, через Magento Connect, вы можете разместить их в сообществе.

Это позволило бы другому разработчику переопределить поведение, поместив класс в локальную папку.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.