Jakie domyślne moduły mogę wyłączyć?

25

Z tego pytania i odpowiedzi Sander Mangel:

Wyłączanie modułów - poprawa wydajności?

Przede wszystkim mniej modułów oznacza mniej kodu do (potencjalnie) ładowania i przetwarzania. Oprócz tego wiele modułów, na przykład moduł Mage_Rss, uruchamia dużo kodu w tle, na przykład wymuszając ponowne indeksowanie niektórych zdarzeń.

Ponieważ powyższe pytanie nie miało bezpośrednio na celu udostępnienia listy modułów, myślę, że dobrym pomysłem jest zebranie tutaj informacji.

Inne przydatne zasoby:

Wszelkie inne sugestie dotyczące modułu?
Który moduł ma większy wpływ na wydajność?

AKTUALIZACJA

Lista aktualizacji z sugestiami @Marius

  1. Mage_WishList - wygląda na to, że łamie dane klienta
  2. Mag_Rss
  3. Mage_PayPalUk
  4. Mag_tag (gdy nie jest używany w projekcie)
  5. Mage_Poll (bo i tak kto korzysta z ankiet)
  6. Phoenix_Moneybookers
  7. Mag_Sendfriend
  8. Ocena magów (jeśli nie jest wymagana przez klienta)
  9. Mage_Bundle (jeśli nie jest wymagany przez klienta)
  10. Mage_Downloadable (jeśli nie jest wymagany przez klienta)
  11. Mage_GiftMessage - wygląda na to, że potrzebujesz go w 1.8, lub szczegóły produktu się zepsują
  12. Mage_XmlConnect - jeśli nie masz / nie potrzebujesz aplikacji mobilnej.
  13. Mage_Authorizenet
  14. Mage_Paypal (jeśli nie jest używany jako metoda płatności)
  15. Mage_Paygate (tylko jeśli wyłączysz Mage_Paypal, Mage_PaypalUk i Mage_Authorizenet)
  16. Mage_Weee (tylko jeśli wyłączysz również Mage_XmlConnect)
  17. Mag_Usa - tylko w ce-1.8.1.0. (patrz poniżej dlaczego)
  18. Mage_GoogleCheckout - można wyłączyć tylko w ce-1.8.1.0 i tylko jeśli wyłączysz Mage_Usa. Nie działa z poprzednimi wersjami z powodu tego http://www.magentocommerce.com/bug-tracking/issue/?issue=14359
  19. Mage_Oauth - jeśli nie potrzebujesz interfejsu API REST
  20. Mag_Api
  21. Mage_Api2 - tylko jeśli wyłączysz również Mage_Oauth.
Fra
źródło
Właśnie odkryłem coś trudnego. Nie możesz wyłączyć Mage_Wishlist. Jeśli to zrobisz, nie będziesz mógł zobaczyć żadnych danych klienta w wewnętrznej bazie danych.
Marius
1
Uważaj przy wyłączaniu Mage_Weee. To spowodowało, że mój sklep dwukrotnie obliczył podatki (Magento 1.9.2.1).
Simon,

Odpowiedzi:

12

Mogę dodać do tego:

  • Mage_GiftMessage - szwy nie można wyłączyć w 1.8
  • Mage_XmlConnect - jeśli nie masz / potrzebujesz aplikacji mobilnej.
  • Mage_Authorizenet
  • Mage_Paypal (jeśli nie jest używany jako metoda płatności)
  • Mage_Paygate (Tylko jeśli wyłączysz Mage_Paypal, Mage_PaypalUk i Mage_Authorizenet)
  • Mage_Weee (tylko jeśli wyłączysz również Mage_XmlConnect)
  • Mage_Usa- tylko w . (patrz poniżej dlaczego)
  • Mage_GoogleCheckout- można wyłączyć tylko w i tylko jeśli wyłączysz Mage_Usa. Nie działa z poprzednimi wersjami z powodu tego http://www.magentocommerce.com/bug-tracking/issue/?issue=14359
  • Mage_Oauth - jeśli nie potrzebujesz interfejsu API REST
  • Mage_Api
  • Mage_Api2- tylko jeśli wyłączysz Mage_Oauthrównież.

Zasadniczo możesz wyłączyć (prawie) dowolny moduł, ale musisz sprawdzić, app/etc/modules/*.xmlczy istnieją inne moduły w zależności od modułu, który chcesz wyłączyć. Jeśli nie ma, możesz to zrobić. Jeśli tak, musisz je również wyłączyć.

Jako wyjątek od ogólnej zasady, niektóre moduły mogą złamać administratora, jeśli je wyłączyłeś ze względu na sposób budowania Magento 1.x. Mage_Adminhtmlmoduł zawiera odniesienia do innych modułów (jak klienta, sprzedaży, ...). Wygląda na to, że w Magento 2.0 to się zmieni.

Marius
źródło
co z modułem API / API2 ... jeśli go nie potrzebuję?
Fra
1
@Francesco. Tak. Masz rację. Zapomniałem o nich. Zaktualizowałem odpowiedź.
Marius
co jeśli nie potrzebuję żadnego modułu wyprawy?
Fra
1
@Francesco. Zobacz moją ostatnią aktualizację zaczynając od „Zasadniczo”
Marius
1
hmm ... wygląda na to, że jest to jeden z „wyjątków” reguły
Marius
3

Chciałbym dodać link do modułu Magento Mock firmy SchumacherFM . Jeśli masz problemy (czytaj wyjątki) podczas wyłączania niektórych modułów, może być rozwiązaniem dla Ciebie użycie próbnego modułu. Chociaż nie znam żadnych testów wydajności dotyczących tego modułu. Byłoby ciekawie wiedzieć, czy są jakieś problemy z wydajnością.

Szymon, Szymek
źródło
wygląda bardzo interesująco dzięki za udostępnienie
Fra
3

Nadal nie mogę komentować, ponieważ potrzebuję powtórzenia 50 ... więc:

Dzięki Simon za wzmiankę :-)

Podczas opracowywania fałszywego modułu natknąłem się na wiele dziwnych wystąpień różnych modułów w różnych miejscach.

Moim celem było również całkowite usunięcie plików zamiast prostego <active>false</active>.

Nie można po prostu wyłączyć np. Mage_Adminnotifications, Mage_WishList, Mage_Tag, Mage_GoogleCheckout lub Mage_GiftMessage, ponieważ niektóre stałe i metody statyczne są używane w Mage_Adminhtml lub w niektórych modułach interfejsu użytkownika.

Np. Jeśli wyłączysz Mage_WishList lub Mage_GiftMessage, sekcja edycji klienta adminhtml nie będzie się już ładować.

Możliwe jest nawet wyłączenie Mage_Shipping. Nadal nie mogę znaleźć przypadku użycia, do czego jest dobry ;-)

Jeśli próbowałem również stworzyć próbę wyłączonego i usuniętego modułu Mage_Payment, ale to zdecydowanie nie jest możliwe. Po 8-19 godzinach poddałem się.

Za pomocą modułu Mock możesz stworzyć własną wersję https://github.com/colinmollenhour/magento-lite

Cyryl
źródło
Mage_Shippingmożna wyłączyć, jeśli sprzedajesz wyłącznie usługi lub produkty do pobrania
Fra
Mage_GoogleCheckout można wyłączyć w wersji 1.8, ale myślę, że musisz również usunąć atrybut produktu (dostępny_dla_googlecheckout lub coś w tym rodzaju).
Marius
Myślę, że Mock to świetny i sprytny pomysł! Czy widzisz jakiś problem z licencją przy użyciu Magento jako pewnego rodzaju frameworku ... jakie są ograniczenia licencji według ciebie?
Fra
3

Chciałbym zwrócić uwagę na coś, co odkryłem dzisiaj, w odniesieniu do wyłączania modułów magów i ACL. Jeśli używasz roli z uprawnieniami ustawionymi na „Wszystkie” i dezaktywujesz moduł Core Mage, istnieje prawdopodobieństwo, że kod modułu nadal będzie działał i coś popsuł.

Nie potrzebujemy Mage_Newsletter, ponieważ używamy niestandardowego rozwiązania, więc dezaktywowałem Mage_Newsletter w Mage_All.xml. Spowodowało to jednak uszkodzenie panelu administracyjnego klienta, ponieważ administrator nadal próbował uruchomić kod w Mage_Newslettermodule.

Problem polega na tym, jak ACL sprawdza uprawnienia. W moim przypadku wewnątrz Tabs.phpklasy bloku klientów kod generujący kartę biuletynu jest zamknięty w ramach kontroli uprawnień ACL. Ponieważ Mage_Newslettermoduł jest wyłączony, te opcje ACL nie pojawiają się już w menu uprawnień roli systemowej.

Jeśli jednak twoja rola jest ustawiona na „wszystko”, Magento nie podaje latającego szczura za tym, czy moduł jest aktywny, czy nie. Zwróci wartość true (zezwolenie dozwolone), pozwalając na uruchomienie dowolnej bramkowanej logiki, nawet jeśli jej celem jest pominięcie.

Jeśli chcesz wyłączyć moduły podstawowe, nie możesz użyć „wszystkich” dla uprawnień ACL roli. Musisz użyć opcji „niestandardowej”, a następnie ręcznie nadać roli wszystkie niezbędne uprawnienia. To jedyny sposób (który znalazłem), aby upewnić się, że Magento poprawnie sprawdza uprawnienia względem dezaktywowanych modułów.

Jonathan Eltgroth
źródło
1
Niezła obserwacja. +1 za ustalenia związane z ACL i za „latającym szczurem za”
Marius