Почему функция сравнения связана с (лог) идентификатором посетителя?

16

Первое, что я делаю при запуске проекта, это спрашиваю клиента, нужны ли ему пользовательские журналы на его веб-сайте. В техническом плане Mage_Logмодуль. На все случаи пока я получил ответ:

Нет. Мы будем использовать Google Analytics.

И следующий вопрос: «Хотите сравнить товары?». Я задаю эти вопросы, потому что журнальные таблицы, как правило, со временем становятся большими, а веб-сайт работает медленно. Поэтому я хочу избежать проблем со скоростью.

Второй вопрос, который я задаю, состоит в том, что раздел сравнения продуктов зависит от журналов для гостевых клиентов. Смотрите это в addActionконтроллере сравнения продуктов:

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

Поэтому, если клиент хочет сравнить продукты, я не могу отключить ведение журнала.
Я имею в виду, что мог бы найти расширение или создать его, но реальный вопрос: почему функция сравнения связана с идентификатором посетителя? Любой хороший результат этого? Гостевые кавычки прекрасно работают, ссылаясь на идентификатор цитаты в сеансе. Почему не то же самое для сравнения продуктов?

Мариус
источник
Возможно, потому что никто не отключил бы какую-либо часть Magento, когда-либо проект использует каждую правильную часть;)
Дэвид Мэннерс
Пока кто-то реализовал возможность отключить модуль ядра, я не думаю, что это является причиной ... но я получаю шутку :).
Мариус
Согласен, хотя я видел и другие части, которые не работают хорошо после отключения некоторых расширений. Короче говоря, именно поэтому я не совсем понимаю, почему люди любят композитора и Magento, потому что мне кажется странным, что вы не можете надежно разделить основные модули.
Дэвид Мэннерс
@DavidManners. Надеюсь, это будет возможно в некоторой степени на 2.0.
Мариус
Итак, вернемся к вопросу, что произойдет, если вы отключите модуль, но затем настроите свой собственный модуль с конфигурацией для работы log/visitorс информацией о сеансе? Никогда не пробовал сам
Дэвид Мэннерс

Ответы:

7

В его нынешнем виде я бы сказал, что этот вопрос несколько неразрешим, поскольку он использует таблицы журналов . Я действительно не думаю, что было много других причин, кроме как сказать, что Mage_Log присутствует с 0.6B и что ранние попытки могли заключаться в том, чтобы подключить к нему начальную функциональность; через некоторое время, вероятно, появились ограничения, и они перестали развивать эту идею.

На этот вопрос действительно может ответить только кто-то вроде Бориса, но я вполне уверен, что ответ на вопрос «почему ты так поступил» будет «потому что мы так поступили».

philwinkle
источник
1
Ответ «потому что мы так сделали» лучше ответа «потому что если вы». Я полагаю, вы правы, это неопровержимо. Я надеялся на ответ основного разработчика. Я приму этот ответ главным образом потому, что кто-то понял, что это неправильно, и решил изменить его в Magento2. github.com/magento/magento2/issues/536
Мариус
Ты прав. Первоначальный недостаток опыта с последствиями модульности на ранних стадиях разработки и, что еще более важно, нехватка времени, чтобы пересмотреть и переписать существующий код, который уже «работает»
Unirgy