Dlaczego funkcja porównywania jest powiązana z identyfikatorem (dziennika) użytkownika?

16

Pierwszą rzeczą, którą robię, rozpoczynając projekt, jest zapytanie klienta, czy potrzebuje dzienników użytkownika na swojej stronie internetowej. Pod względem technicznym Mage_Logmoduł. We wszystkich dotychczasowych przypadkach otrzymałem odpowiedź:

Nie. Będziemy używać Google Analytics.

Kolejne pytanie brzmi: „Czy chcesz porównać produkty?”. Zadaję te pytania, ponieważ tabele dziennika stają się z czasem duże, a strona internetowa działa wolno. Chcę więc uniknąć problemów z prędkością.

Drugie pytanie, które zadaję, dotyczy tego, że sekcja porównywania produktów zależy od dzienników klientów-gości. Zobacz to w addActionkontrolerze porównania produktów:

 if ($productId
        && (Mage::getSingleton('log/visitor')->getId() || Mage::getSingleton('customer/session')->isLoggedIn())
    )

Więc jeśli klient chce porównać produkty, nie mogę wyłączyć rejestrowania.
Mam na myśli, że mogę wyszukać rozszerzenie lub je zbudować, ale prawdziwe pytanie brzmi: dlaczego funkcja porównywania jest powiązana z identyfikatorem użytkownika? Jakikolwiek dobry wynik tego ?. Cytaty gości działają ładnie, odwołując się do identyfikatora cytatu w sesji. Dlaczego nie to samo w przypadku porównywania produktów?

Marius
źródło
Prawdopodobnie dlatego, że nikt nie wyłączył żadnej części Magento, projekt zawsze wykorzystuje każdą część poprawnie;)
David Manners
Tak długo, jak ktoś zaimplementował możliwość wyłączenia modułu podstawowego, nie sądzę, że to jest powód ... ale dostaję żart :).
Marius
Zgadzam się, chociaż widziałem inne części, które nie grają ładnie po wyłączeniu niektórych rozszerzeń. Krótko mówiąc, dlatego tak naprawdę nie rozumiem, dlaczego ludzie kochają kompozytora i Magento, ponieważ wydaje mi się to dziwne, ponieważ nie można wiarygodnie podzielić podstawowych modułów.
David Manners
@DavidManners. Mam nadzieję, że będzie to do pewnego stopnia możliwe w wersji 2.0.
Marius
wracając do pytania, co by się stało, gdybyś wyłączył moduł, a następnie skonfigurował własny moduł z konfiguracją, log/visitorktóra działała z informacjami o sesji? Nigdy sam tego nie próbowałem
David Manners,

Odpowiedzi:

7

Na obecnym etapie powiedziałbym, że to pytanie jest w pewnym stopniu nie do odpowiedzi - powodem, dla którego używa tabel dzienników, jest to, że tak. Naprawdę nie sądzę, aby istniało wiele innych powodów niż stwierdzenie, że Mage_Log jest obecny od 0.6B i że wczesne wysiłki mogły być uzależnione od początkowej funkcjonalności; po pewnym czasie ograniczenia prawdopodobnie wyszły na jaw i przestały rozwijać ten pomysł.

Naprawdę na to pytanie może odpowiedzieć tylko ktoś taki jak Boris, ale jestem całkiem pewien, że odpowiedź na pytanie „dlaczego to zrobiłeś w ten sposób” będzie brzmiała „dlatego, że zrobiliśmy to w ten sposób”.

philwinkle
źródło
1
Odpowiedź „ponieważ zrobiliśmy to w ten sposób” jest lepsza niż odpowiedź „ponieważ ef ty”. Wydaje mi się, że masz rację, to nie da się odpowiedzieć. Miałem nadzieję na odpowiedź głównego programisty. Przyjmę tę odpowiedź głównie dlatego, że ktoś zdał sobie sprawę, że to źle i postanowił ją zmienić w Magento2. github.com/magento/magento2/issues/536
Marius
Masz rację. Pierwotny brak doświadczenia z konsekwencjami modułowości na wczesnych etapach rozwoju, a co ważniejsze brak czasu na ponowne
sprawdzenie