Pull to refresh

Comments 22

Интересно посмотреть на реализацию сортировки, напишите, пожалуйста.
Благодарю за ваш интерес. Напишу, когда будет время.
А в php стало так принято один action контроллера раздувать на 50 строчек?
Я в курсе о принципе DRY для контроллеров, но старался показать решение задачи наиболее наглядно. Так то формирование запроса к ES следовало бы вынести в отдельный метод.
А суперглобалы зачем в контроллер пихаете? у вас же есть няшный Request. Вообще «для наглядности» — простая отговорка. С классом-репозиторием было бы даже нагляднее.
Там прямо под кодом автор указал:

для наглядности использую $_GET, но вы используйте Request


Если уж к _GET придираетесь, то почему не написали про отстуствтие проверки что filters — массив, что underscore в перемешку с camesCase это несоответствие стандартам и, наконец, про неправильные отступы?

Статья годная, надо будет писать интернет магазин с таким функционалом — может пригодиться как один из вариантов решения.
Неправильные отступы, камелькейс и нижнее подчеркивание и прочее фиксится при помощи csfixer, да и это мелочи. А вот использование суперглобальных переменных (а можете поверить, подавляющее большинство начинающих разработчиков, а эта статья годна только для них, будут бездумно копировать именно такой вариант) убивает на корню возможность красиво покрыть интеграционными тестами контроллер, да и с таким подходом можно было бы вообще выкинуть Symfony и писать на plain-php.

ИМХО если уж писать туториал для новичков, стоит делать по best practice с разьяснениями что и зачем, тут же я вижу набор из примеров в сети слепленный вместе в кашу на скорую руку.
Благодарю вас за ваш отзыв. В момент написания статьи не посчитал важным эту дырку, однако мнения читателей показывают, что это важно, посему обработчик формы фильтра переписал на симфонивский Request. Переменные внутри него назвал единообразно по camelCase.

И я по своей святой наивности надеюсь, что код отсюда не будет бездумно копироваться. Иначе, кому нужны best practice и объяснения?
Интересно, а есть ли возможность, имея 3 значения 2,68; 2,7; 2,71 аггрегировать их в 2,7 средствами движка?

или

Есть характеристика товаров
Intel core i5-352
Intel core i5-1234
proЦЦessor интел core i5-4321

аггрегировать в одну характеристику core i5?
думаю да, так как они поддерживают скрипты.
А по поводу процессора — там есть анализаторы, которые могут помочь разбить текст.
побрел читать:) может быть заменит мой костыль с regexp :)
ArFeRR чуть чуть не потеме, в чем схему рисовали? приятная картинка.
Кнопка «дизайнер» в phpmyadmin на странице со списком таблиц вашей БД.
«Intel core i5-352» можно написать в разном регистре — «Intel core i5-352», «Intel Core i5-352», «INTEL CORE i5-352»
Как с этим боретесь?
Подключайте анализатор. Или при записи в базу (следовательно индексации) делайте это по какому-то договору.
Обычные анализаторы разбивают текст на слова и индексируют все слова. Тут же надо чтобы строка анализировалась как одно слово, только предварительно приводилось к одному регистру. Но анализатор lowercase тут не подойдет т.к. все фасеты будут в нижнем регистре «intel core i5-352», это не красиво. Какой анализатор тут подойдет?
а что если для фасетов все записывать по одному алгоритму, а индексировать друго поле, куда будет заноситься значение по другому алгоритму?
Да, такая идея приходит в голову, но кажется что это довольно стандартная задача, возможно она как-то решается средствами ES. При реализации через два поля, дополнительно придется еще фасеты в разных регистрах склеивать на сервере.
Несмотря на примечание автора, тип должен быть nested. В примере ArFeRR, ему просто повезло, что у разных свойств были неповторимые значения. У меня были несколько свойств типа да/нет/пусто. Это была катастрофа. По одному «нет» выбирались все объекты, у которых «нет» было хоть в каком-то свойстве.
подробное объяснение на примере.
Спасибо за статью. Для полноты понимания, помог бы итоговый вид класса продукта. Есть возможность прикрепить?
А лучше бы выложить весь рабочий код на GitHub. Чтобы можно было сразу склонировать и потестить.
Подскажите кто нибудь как на этой структуре для каждого значения вывести рядом количество товаров, которые относятся к этому значению, причем относительное (имеется ввиду с "+" к числу товаров по выбранным значениям), к примеру как на этом сайте: hotline.ua/computer/noutbuki-netbuki/26221-858-880?
Буду очень благодарен!
Sign up to leave a comment.

Articles

Change theme settings