
Like
02.07.2018
17:51:44
Хули сложного
$search->addFilter(new SomeFilter(), new SomeFilter2());
$search->addFilter(new SomeFilter3());
1ое - если отработает SomeFilter или SomeFilter2, то SomeFilter3 не будет выполнен
2ое - если SomeFilter вернет результат (возвращаешь что угодно), это результат полетит в SomeFilter2 (привет цепочка вызовов Promise js).
Если SomeFilter2 ничего не возвращает, то тебе вернется ответ из SomeFilter и аналогично обратное: если SomeFilter ничего не вернул, но вернул SomeFilte2, то вернется его результат
3ое - если SomeFilter и SomeFilter2 не вернули ничего, то пойдет выполняться SomeFilter3
Изи же

Ad.x ??
02.07.2018
17:55:22
я представлял себе другое исходя из кода

Like
02.07.2018
17:55:36
Там будет выполняться цепочка до первого отработанного фильтра

Google

Like
02.07.2018
17:55:52
Я просто не показал, что можно добавлять на выполнение N фильтров
И не сказал, что не все будут выполнены

Ad.x ??
02.07.2018
17:56:21
какой-то неочевидный поиск

Like
02.07.2018
17:56:49
Я просто юзаю фильтры
Хули ты
Все там нормально с ним
Он ищет по заданным параметрам

Ad.x ??
02.07.2018
17:57:05
ну фильтров если 4, то они могут работать же одновременно

Like
02.07.2018
17:58:07

Ad.x ??
02.07.2018
17:58:51
ну может адд фильтр сбивает с толку хз. но это вот ваще не очевидно что там по очереди будут использоваться фильтры

Like
02.07.2018
17:59:21
Дык а как я тебе это объясню названием метода?
Если есть варианты - накидывай

Ad.x ??
02.07.2018
17:59:44
причем первый вернувший результат станет последним
да и вообще не понятно для чего именно такая схема работы

Google

Like
02.07.2018
18:00:20
Я ваще для себя писал, я просто предлагал кому-нибудь оформить (естесена отрефакторив малеха)

Ad.x ??
02.07.2018
18:00:27
очень спецефично как-то

Like
02.07.2018
18:00:30

Ad.x ??
02.07.2018
18:00:39
не очевидно
вот щас стало очевидно чтобы хоть что-то вернуло

Like
02.07.2018
18:01:58
Я пишу тестовое и мне ваще поебать, я мог бы остановить нарушение OCP

Ad.x ??
02.07.2018
18:03:10
тут сама концепция какая-то хитровыебаная, без бутылки не разобраца )

Like
02.07.2018
18:03:45
Бож
Шо тебе еще не понятно

Ad.x ??
02.07.2018
18:04:43
все не понятно. вот смори. допустим ты собрался серч сервис делать так да? логично чтобы он сам себе форму строил исходя из добавленых фильтров?

Like
02.07.2018
18:04:48
Там в исходниках 100 строчек кода, хуль разбираться

Ad.x ??
02.07.2018
18:05:05
я не видел те исходники, кусками тока

Like
02.07.2018
18:05:06
Ты ваще их не видел
У фильтра есть метод execute который возвращает что-то
Это что-то будет переданно в дальнейшие фильтры (если они существуют)
И в конце концов, вернется результат

Ad.x ??
02.07.2018
18:05:45

Like
02.07.2018
18:06:00

Google

Like
02.07.2018
18:06:07
2 сразу можно, а еще 2 должны только по одному

Максим
02.07.2018
18:06:39

Like
02.07.2018
18:06:41
4 фильтра - 2 из них одновременно могут, остальные 2 - только по одному
2 || 1 || 1
Это даже не поиск ?
Это просто удобная штучка для склеивания запросов в зависимости от гет параметров
Я изначально это видел по другому, поэтому названия остались старые в некоторых местах

Максим
02.07.2018
18:08:16

Like
02.07.2018
18:08:25
Причем тут ваще это
Я могу те ща карринг наебашить и в композицию попробовать, но а чо какой смысл

Ad.x ??
02.07.2018
18:08:50

Like
02.07.2018
18:08:55
Правда, пыха вряд ли осилит композицию

Максим
02.07.2018
18:09:01

Like
02.07.2018
18:09:12

Максим
02.07.2018
18:09:20
Давай ещё под каждое значение параметра создадим класс) и будем в конструктор совать

Like
02.07.2018
18:09:21
Оно тебя никак не ограничивает

Максим
02.07.2018
18:09:42

Like
02.07.2018
18:09:47

Google

Ad.x ??
02.07.2018
18:09:58

Максим
02.07.2018
18:10:05
На каждый пук свой модуль с тремя интерфейсами и прочей мишурой

Ad.x ??
02.07.2018
18:11:25
ну удобно добавить метод и не лезть в шаблон потом добавляя поле, анпример
для ввода

Like
02.07.2018
18:13:20
Как я люблю говорить

Ad.x ??
02.07.2018
18:13:30

Like
02.07.2018
18:13:33
Вот вам лямбда и карринг
Все, я фпшник, отвалите

Admin
ERROR: S client not available

Like
02.07.2018
18:13:37
Дайте я уже напишу эти тесты
Изменишь свое мнение

Ad.x ??
02.07.2018
18:14:39
пока не удалил

Like
02.07.2018
18:14:48
Это были не внутренности

Ad.x ??
02.07.2018
18:14:55
а шо это было?

Like
02.07.2018
18:14:58
Это был старый код, который я поменял
На фильтры выше

Ad.x ??
02.07.2018
18:15:12
аа

Google

Like
02.07.2018
18:15:17
Фильтры выше - аналог той дичи, что ты видел

Ad.x ??
02.07.2018
18:15:31
там в фильтрах пресеты для формы как я понял да?

Like
02.07.2018
18:16:04
Что такое
> пресеты
?
Изначально там у тебя builder который ты передаешь, я не контроллирую этот процесс
И из фильтра ты можешь вернуть абсолютно что угодно
Ты пишешь фильтры и знаешь, что каждый из них вернет, они выполняются в порядке в котором ты их добавил
Никакой магии
const firstFilter = builder => 2;
const secondFilter = builder => builder + 3; // builder = 2

Ad.x ??
02.07.2018
18:18:15

Like
02.07.2018
18:18:40

Ad.x ??
02.07.2018
18:18:49
нет конечно )

Like
02.07.2018
18:19:05
То, что ты передаешь - с того он и начнет
Ему похуй что ты туда суешь
Он это кормит фильтрам, которые ты пишешь

Ad.x ??
02.07.2018
18:19:42
ты передаешь некий объект, в нем что?

Like
02.07.2018
18:19:44
Хоть null ему засунь

Ad.x ??
02.07.2018
18:19:58
нах ему нулл )

Like
02.07.2018
18:20:14
Блять

Ad.x ??
02.07.2018
18:20:22

Like
02.07.2018
18:20:31
Нет, ты ему пихаешь, ЧТО ТЫ ЗАХОЧЕШЬ
Фильтры пишешь ты