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
- Mage_WishList - wygląda na to, że łamie dane klienta
- Mag_Rss
- Mage_PayPalUk
- Mag_tag (gdy nie jest używany w projekcie)
- Mage_Poll (bo i tak kto korzysta z ankiet)
- Phoenix_Moneybookers
- Mag_Sendfriend
- Ocena magów (jeśli nie jest wymagana przez klienta)
- Mage_Bundle (jeśli nie jest wymagany przez klienta)
- Mage_Downloadable (jeśli nie jest wymagany przez klienta)
- Mage_GiftMessage - wygląda na to, że potrzebujesz go w 1.8, lub szczegóły produktu się zepsują
- Mage_XmlConnect - jeśli nie masz / nie 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)
- Mag_Usa - tylko w ce-1.8.1.0. (patrz poniżej dlaczego)
- 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
- Mage_Oauth - jeśli nie potrzebujesz interfejsu API REST
- Mag_Api
- Mage_Api2 - tylko jeśli wyłączysz również Mage_Oauth.
module
performance
Fra
źródło
źródło
Mage_Wishlist
. Jeśli to zrobisz, nie będziesz mógł zobaczyć żadnych danych klienta w wewnętrznej bazie danych.Odpowiedzi:
Mogę dodać do tego:
Mage_GiftMessage
- szwy nie można wyłączyć w 1.8Mage_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 ce-1.8.1.0 . (patrz poniżej dlaczego)Mage_GoogleCheckout
- można wyłączyć tylko w ce-1.8.1.0 i tylko jeśli wyłączyszMage_Usa
. Nie działa z poprzednimi wersjami z powodu tego http://www.magentocommerce.com/bug-tracking/issue/?issue=14359Mage_Oauth
- jeśli nie potrzebujesz interfejsu API RESTMage_Api
Mage_Api2
- tylko jeśli wyłączyszMage_Oauth
również.Zasadniczo możesz wyłączyć (prawie) dowolny moduł, ale musisz sprawdzić,
app/etc/modules/*.xml
czy 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_Adminhtml
moduł zawiera odniesienia do innych modułów (jak klienta, sprzedaży, ...). Wygląda na to, że w Magento 2.0 to się zmieni.źródło
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ą.
źródło
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
źródło
Mage_Shipping
można wyłączyć, jeśli sprzedajesz wyłącznie usługi lub produkty do pobraniaChciał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 wMage_Newsletter
module.Problem polega na tym, jak ACL sprawdza uprawnienia. W moim przypadku wewnątrz
Tabs.php
klasy bloku klientów kod generujący kartę biuletynu jest zamknięty w ramach kontroli uprawnień ACL. PonieważMage_Newsletter
moduł 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.
źródło