Отключение модулей - улучшение производительности?

27

Этот вопрос состоит из 2 частей:

  1. Улучшает ли отключение основных модулей общую производительность магазина и, если да, нужно ли их отключать в админке (т.е. отключать вывод внешнего интерфейса) или отключать через config.xml, чтобы это улучшение производительности было видно.

  2. Если есть улучшение производительности, какие модули на складе, сборка CE 1.7.0.2 может быть безопасно отключена с помощью метода, описанного в части 1.

Марти Уоллес
источник

Ответы:

27
  1. Да, это так. Прежде всего, меньше модулей означает меньше кода для (потенциально) загрузки и обработки. Кроме того, многие модули, такие как, например, модуль Mage_Rss, выполняют много кода в фоновом режиме, например, для принудительного переиндексации определенных событий.

    О методе, который лучше всего использовать: отключение модуля с помощью System > Configuration > Advancedтолько подавляет вывод модуля, но в то же время включает код этого модуля в магазине. Это удобно, когда вам не нужны функциональные возможности модулей, но вам нужны их модели или блоки, например, потому что от этого зависят другие (сторонние) расширения. Отключение его с помощью app/etc/modules/*.xmlполностью удалит его из установки, поэтому с точки зрения производительности это лучший вариант.

  2. Я обычно отключаю следующее расширение через XMl

    • Mage_Rss
    • Mage_PayPalUk
    • Mage_Tag (когда не используется в проекте)
    • Mage_Poll (причина, кто использует опросы в любом случае)
    • Phoenix_Moneybookers
    • Mage_Sendfriend
    • Mage_Rating (когда не используется в проекте)
    • Mage_Bundle (опять же, если не требуется клиентом)
    • Mage_Downloadable (см. Выше)

    и через который подавляет раздражающие всплывающие окна в интерфейсе.System > Congiguration > AdvancedMage_Adminnotification

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

Сандер Мангель
источник
1
Есть ли способ отключить их без изменения основных XML-файлов?
Марти Уоллес
1
Если у него еще нет собственного XML-файла, вы можете создать его, просто создайте, app/etc/module/Mage_Rss.xmlнапример, и убедитесь, что вы добавили тег codePool (core) и active (false)
Sander Mangel
Я, может быть, путать вещи только тогда :). Я хочу сказать, что я могу отключить Mage_Centinel, например, без внесения изменений в Mage_Centinel.xml, т.е. использовать свой собственный XML-файл, чтобы отключить его. Таким образом, я бы не стал менять основной код
Марти Уоллес
Аааа ладно, я не понял. Что ж, вы, вероятно, можете отключить его, поскольку все XML-файлы объединены в один, поэтому, если вы добавите его в свой тег config.xml расширений, он должен получить ответ, но, по моему мнению, это «чище» сделать из app/etc/modulesкаталога. Но это только я :)
Сандер Мангель
2
Перед отключением опросов не забудьте удалить пример опроса «Выбор цветов»; Я нашел сторонние модули, которые могут показывать содержимое опроса, даже если модуль отключен.
lrkwz
14

Несмотря на опоздание с ответом, я хотел бы ответить на вопрос

  1. Вы получаете еще большую производительность, если физически удаляете файлы.
  2. Просто все они, кроме Mage_Core;-)

Но чтобы отключить узкие пары модулей, вам нужно установить другой модуль, который позаботится о том, чтобы ничего не сломалось. Поэтому я разработал: https://github.com/Zookal/magento-mock

Zookal Mock: прозрачное автоматическое обнаружение отключенных основных модулей и расширений и предоставление имитирующих объектов, чтобы не сломать Magento. Нечего настраивать. Нет класс переписывает. Только один наблюдатель. Работает из коробки. Вы даже можете физически удалить файлы!

Например, когда вы отключаете Mage_Wishlistили Mage_Newsletterваш Backend -> Customer -> Customer edit будет выдавать странные ошибки. Поэтому используйте расширение Mock!

Вы даже можете удалить старые платежные модули, которые имеют записи в sales_flat_order_paymentтаблице и обычно ломают ваш Backend -> Sales -> Order View, но у расширения Mock есть прозрачный обходной путь для вас.

Одна вещь, чтобы рассмотреть: это не работает в командной строке.

Cyrill
источник
10

См. Ответ Мариуса о простом и быстром способе XML отключения модулей. Создайте один файл zzz_Disabled_Modules.xmlс содержимым

<?xml version="1.0"?> 
<config>
    <modules>
        <Mage_Rss>
            <active>false</active>
        </Mage_Rss>
        <Mage_PaypalUk>
           <active>false</active>
        </Mage_PaypalUk>
        <Phoenix_Moneybookers>
            <active>false</active>
        </Phoenix_Moneybookers>
        <!-- all other modules here -->
    </modules>
</config>

Представить! .Gitignore для модулей Magento!

При этом вы можете легко увидеть, какие модули вы включили / отключили с первого взгляда.

Цви
источник
2

Как говорит @ Сандер Мангель, вызывающее отключение модулей может привести к значительному увеличению производительности, хотя то, что вы отключаете, в действительности зависит от магазина. Там обычно много чего вам не нужно, хотя. Если вы не пользуетесь отключением из-под списка желаний, то это Mage_Wishlistимеет значение

Еще одно преимущество - отключение Mage_Log. Это может быть лучше сделано через local.xml.

user3412
источник