«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
getNthOrEqualIdFromThisOnTheRightByStatusChannelbotIdAndMessageSource Аноним 2019/01/22 13:05:06  №1332576 1
Screenshot43.png (25, 788x409)
409x788
Кажется у меня проблема.
Я не знаю как коротко называть методы.
Это уже совсем пиздец какой-то блять.
Что делать? Как бы вы назвали этот метод?

Просто убрать ByStatusChannelbotIdAndMessageSource нельзя, ибо там и по другим критериям методы есть.
Аноним 2019/01/22 13:16:46  №1332589 2
>>1332576
Впринципе тебе было бы удобнее билдер критериев иметь, чем городить эти обертки с детальным описанием в названии.
С билдером мог бы сделать например
$builder->nthOrEqualFrom(...params)->right()->byStatus(status)->byMessageSource(source)->get();
и это более переиспользуемый и гибкий вариант. Правда я понятия не имею насколько это реально у тебя по коду реализовать.
Ответы: >>1332594 >>1332683
Аноним 2019/01/22 14:51:30  №1332683 3
>>1332589

Выше дали совет про билдер.

А если неохота делать билдер, можно сделать передачу массива:

findNthId(['source' => ...., 'botId' => ...]);

или сделать объект-фильтр (отличие от билдера: билдер создает объект, фильтр ничего не создает):

$filter = new TgFilter;
$filter->bySource(...);
findNthId($filter);

или

findNthId(byTgFilter()->withSource(...)->withBotId(....));
findNthId(TgFilter::create()->withSource(...)->withBotId(....));

Как тебе? Без сверхсложных билдеров, объект фильтра типизируемый, документируемый и проверяемый.

Для примера, поиск элементов в клиенте Селениум от фейсбука: https://github.com/facebook/php-webdriver

$element = $driver->findElement(WebDriverBy::id('element id'));

Ответы: >>1332688
Аноним 2019/01/22 14:58:48  №1332688 4
>>1332683
Впринципе то, что я ему предложил больше похоже на фильтр как раз. Запомню это название, а то хуйню одну другой назвал.