Apxat
типо UserCollection->add
Михаил
Да
Можно вкшный пхп юзать, вроде я там видел дженерики))
Apxat
да ничего не должно, просто хочу чтобы шторм понимал что получает
Apxat
без phpdocs
Apxat
я просто думал есть общепринятый способ это делать
The Ant
Общепринятый способ это пхпстан/псалм в комментариях. Или просто писать @return Foo[]
Михаил
while($userCollection->isAvailable()) {
$user = $userCollection->pull();
}
🌚🌚🌚
Apxat
типо того, просто все по разному это городят
Apxat
я подумал есть общепринятый способ это делать
Михаил
Apxat
да вроде их и не хотят делать в рнр
Вадим
Вадим
Михаил
да вроде их и не хотят делать в рнр
вцелом если ты в восторге от функций высшего порядка - то сделать в коллекции методы iterate(fn (User $user) -> ...); и радоваться жизни
Михаил
или настроить шторм так чтоб он скрывал натационные комментарии - код будет визуально чище
Михаил
Съел странную печеньку и меня прёт
Вадим
Apxat
да просто не нравится еще немного такая типизация, когда кучу массивов туда сюда ходит, даже с объектами внутри
Вадим
а потом тексты с телеграмма пропадают
Михаил
ОНИ ОБОССАЛИ МОЙ КОВЁР))
Михаил
Apxat
ни с какого
Apxat
первый язык был с++ в универе
Юра
Будет такая же как phpdoc подсказка для иде просто
Юра
Дженкрики в основном имеют смысл в компилируемых языках чтобы сгенерировать эффективный код
Михаил
Симфони компилируемая🌚🌚🌚
Юра
Хотя в пхп есть же уже джит и он мог бы использовать информацию о дженериках чтобы сгенерировать код
Юра
Например массив интов сделать нормальным массивом интов
Юра
Но у нас уже есть джава
Михаил
Михаил
А ещё чтоб это работало как типизированные параметры
То есть это контракт о том, что в массив или коллекцию не попадёт то, что не нужно для данной коллекции
Михаил
Типизированные параметры по такой логике тоже не нужны были, но это контракт. И это хорошо *запил на гитаре*
Юра
Только упадет этот контракт где-то походу работы программы
Юра
Не у всех есть иде которая сможет это все сразу подсветить
Юра
Да и это очень накладно делать
Юра
Я где-то читал у джетбрейнс что у них ограниченная поддержка генерик аннотаций из-за больших накладных расходов
Юра
Хотя тайпскрипт вроде как-то работает
Юра
Но они наверное дёргают сам тайпскрипт компилятор
#lest
Нормально использовать брокер сообщений в монолите, раньше не юзал а в мануале приводят пример для микросервиса. Я хочу применить его для одноразовых запросов к стороннему api внутри php, я могу конечно это все внутри одного сервиса делать, но подумал может вынести и через брокер брать по очереди
Юра
Нормально
Юра
В монолитах брокеры используются так же как не в монолитах
Вадим
привет!
у меня есть несколько сервисов которые работают с изображениями. Режут, ресайзят по-всякому. Используют Imagick. Imagick достаётся из контейнера. И вот у меня вопрос. Насколько плохо если я вместо того чтобы получать Imagick из контейнера буду создавать его через new?
The Ant
The Ant
Тем более на пхп
Вадим
The Ant
Сервисы, для изображений, которые ресайзят, режут по всякому
Вадим
Вадим
или как это гуглить
Вадим
но вопрос остаётся вопросом
Vlad
https://github.com/h2non/imaginary
Vlad
https://hub.docker.com/r/darthsim/imgproxy/
Вадим
The Ant
но вопрос остаётся вопросом
https://go.libhunt.com/imaginary-alternatives
Имгпрокси самый популярный.
Что касается вопроса, то не надо в контейнер ложить, через Нью только. Класс имедж хранит в себе состояние, поэтому не надо. Ну или создавать на каждый запрос из контейнера.
Михаил
Да, кстати, хотел сегодня написать.
Вчера докерхаб разблокировали
Вадим
Вадим
Михаил
Однако паранойик внутри меня всё ещё ссытся, не будут ли они как то по другому «соблюдать законы»
#lest
У меня стороння апишка, я обращаюсь к ней из php по HttpClient.
Вопрос:
Некоторые методы этой апишки принимают 50+ полей глубокой вдоженности, а в ответе мне нужны только 2 поля из 30 в конкретном сервисе.
Мне сделать один класс и принимать все возможные параметры для этого метода апишки (будет очень много DTO с вложенностями) и валидировать все возможные ошибки, или делать отдельно изолированные запросы в каждом сервисе
#lest
Этот метод отвечает за поиск, я могу передать и одно поле и несколько, то остальные можно не передавать и мне делать условие если есть значение в поле данного дто то добавить в тело запроса учитывая ещё вложенность запроса
Вадим
#lest
Я могу скинуть документацию
Вадим
я делал классы - экшоны, на каждый запрос в апишку свой экшон
#lest
Может подскажите как лучше)
Вадим
Вадим
ты лучше проблему свою описывай понятнее, с запятыми и остальными знаками препинания
Вадим
а, понял. Всё равно я бы сделал простые экшоны каждый под задачу твоего бизнеса, а не класс под чью-то апишку.
#lest
А если некоторые запросы могут встречаться в других сервисах в слегка изменённом виде или в таком же, то все равно делать изолированно?
Вадим
#lest
Понял, спасибо за помощь
Вадим
Юра
Там нет swagger или какой-то схемы? А то можно было бы сгенерировать клиент
Юра
Иногда быстрее написать свой генератор чем вручную делать
Юра
Но если вам не нужны поля те все то можно их же не передавать просто и все
Павел