Чому Magento має 3 пули кодів?


26

У Magento є три пули кодів:

  1. громада
  2. серцевина
  3. місцеві

Основні: Він містить усі модулі Magento за замовчуванням

Спільнота та місцева організація: ми використовуємо ці пули кодів для розробки спеціального модуля.

Тепер я сумніваюся з цього приводу:

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

Може хтось пояснить з цього приводу?

Відповіді:


34

додаток / код / ​​ядро - утримує модулі, які поширюються з базовим Magento і складають основну функціональність.

додаток / код / ​​спільнота - утримує модулі, розроблені сторонніми сторонами

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

Чому Magento використовує два кодових пула для нашої настройки?

Magento фактично використовує три пули коду. Він завантажить локальне перше, спільне друге та основне третє. Він використовує три для цілей організації та для вирішення питань, коли два + сторонні розширення намагаються переписати одне і те ж. У прикладі, якщо у вас є два розширення в додатку / коді / спільноті, які намагаються переписати одну і ту ж модель, ви можете просто зробити розширення в app / code / local і об'єднати логіку двох розширень разом.

Чому Magento не використовує єдиний пул коду для налаштування?

Це було зроблено таким чином, щоб спробувати створити якусь організацію коду. Крім того, якщо у вас є сторонні конфлікти, місцеві допоможуть вирішити ці проблеми. Місцеві також чудово мають розширення, які матиме лише той сайт.


1
Приємна відповідь на питання про єдиний пул кодів. Враховуючи всі конфлікти, з якими ви зіткнетеся після встановлення декількох сторонніх модулів, дуже важливо мати цей третій localкод коду, щоб масажувати всі затримки.
Лабораторії Фіаско

11

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

core :Цей кодовий пул належить до основної команди розробників Magento. Тому НЕ слід вносити будь-які зміни в цей кодовий пул.

community :Це належить розробникам спільноти Magento (включаючи будь-якого розробника, який розробляє розширення сторонніх розробників). Якщо ви створюєте будь-які розширення сторонніх розробників, ви можете використовувати для цього кодовий пул.

local :Це може бути використано, якщо ви хочете внести будь-які зміни (додати нові функціональні можливості / зміни розширень / основні зміни функціональності тощо) спеціально для магазину Magento і не хочете ділитися ним із спільнотою. У той же час ви можете перекрити функціональні можливості в базових і кодових пулах спільноти


5

Опишіть Magento Codepools

Основний пул

Перш за все, у цій папці зберігається весь код, який робить Magento настільки потужним, гнучким і чудовим. Головне правило розвитку Magento - ніколи не слід вносити жодних змін у нього. Іншими словами, ця папка належить лише розробникам Magento core, і якщо ви збираєтесь щось редагувати в цьому пулі, їх злий дух може покарати вас навіть через показ.

Громадський басейн

Ця папка повністю належить розробникам спільноти. Це правильне місце для сотень розширень сторонніх розробників, як безкоштовних, так і платних, які можна знайти в MagentoConnect або доступних у магазині розширень розширень. Отже, якщо ви встановили будь-яке розширення, воно повинно бути лише в додатку / коді / спільноті /.

Місцевий басейн

Якщо у вас є власний магазин на базі Magento і ви хочете зробити все самостійно або ви розробник Magento і маєте мету якось змінити логіку, місцевий басейн - це місце, де все слід зробити. Якщо ви хочете змінити розширення, блоки або методи Magento, скопіюйте необхідні папки з пулу Core і робіть все, що ви схильні робити. Застосуйте те саме правило для користувацьких розширень, створених спеціально для веб-сайту - весь код повинен знаходитись у локальному пулі.


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, потім спільнота, тоді core та magento не знайдуть жодних основних файлів, тоді вони шукатимуть у папці lib, яка містить файли Zend-Framework Core


1

Найкраще пояснення, яке я маю, - це те, що якщо ви прагнете розповсюдити свої розширення для широкої аудиторії, наприклад, через Magento Connect, ви можете розмістити їх у спільноті.

Це дозволить іншому розробнику змінити поведінку, помістивши клас у локальну папку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.