Vite4eg
Можно извернуться и их протестить. Но вот переопределить не выйдет
Dmitry
Типо создаётся наследник класса?
Да, у которого все методы заглушены
Сергей
если это не final )
Юра
А понял, публичный метод же будет переопределен и он не дернет приватный метод
Dmitry
если это не final )
С dg/bypass-finals пофиг
Юра
В джаве имеет смысл разделить интерфейс чтобы к примеру реализацию подсунуть отдельным джарником
Юра
в пыхе это не нужно
Vite4eg
С dg/bypass-finals пофиг
Ооо, крутяк ) Спасибо )
Сергей
жестка) также как и z-engine
Vlad
если ты этот пакет используешь,ты явно что то делаешь не так
Иван
А как переопределить приватные методы
а зачем разбираться с приватными? у внедрённого сервиса невозможно вызвать приватные методы, поэтому в моке только публичные
Anton
С dg/bypass-finals пофиг
Черная магия)))
Павел
если вдруг появляется вторая реализация, можно быстро поменять FooService в зависимостях на FooInterface
Тут конечно на вкус и цвет, но наверное даже на Interface менять не надо. Сделать BarFooService,OtherFooService. И без суффиксов, и сама зависимость в других коласах неменяется - меньше проблем. Типа был OrderRepository класс, он стал интерфейсом но без суффикса Interface, и сделать MysqlOrderRepository и InMemoryOrderRepository. Минимум изменений в коде.
Konstantin
ну не суть, да, я чисто про то, что как только мы выделили сервис в интерфейс, менять в общем-то не особо много нужно будет
Павел
Всё-таки принято дописывать интерфейс для интерфейса
Ну как бы по разном все говорят) С Суфиксом проще искать, это да. Но не раз слышал читал, что суфиксы наоборот нафиг не нужны
Юра
У джавы наоборот. Там интерфейс без префикса, ибо везде интерфейсы, а имплементации с суффиксом Impl
Konstantin
импл мне тоже не нравится, потому что имплов много будет, запаришься их придумывать
Юра
ARepository )
Konstantin
дада
Павел
сильнее бесит это IFoo шарповое
А мне вроде норм) Не юзаю особо, но импонирует. Типо "Я могу что-то".
Павел
ISerializingAble
Konstantin
спать хочу, мужчины, отпустите))
Юра
MyRepositoryImpl implements Repository
Konstantin
а потом май репозитори какой-то еще
Konstantin
который импл
Konstantin
дочь с роддома сегодня привез, похоже надо спать, пока дают)
Юра
Да лучше поспать
Юра
Это очень ценным ресурсом станет
Null
И чистить entity manager
А еще для таких крупногабаритных задач можно выкинуть orm на мороз и сделать по-человечески.
Сергей
Коллеги, есть паттерн "команда", знает кто-нибудь, можно заставить phpstorm конкретизировать возвращаемый тип данных на основе принимаемого методом типа входящего параметра?
Konstantin
женерик описать?
Сергей
Спасиба!
Dmitriy
https://phpstan.org/blog/generics-in-php-using-phpdocs
Сергей
Всем Спасибо ! @qantus Помогло. Dmitriy не смог разобраться как в psalm сделать именно так.
Юра
Дожили конечно с этим пхп. Хорошо что не исходный код идее надо патчить )
Сергей
Они кстати в одном из постов на их ресурсе обещали завезти это в док-комент, но похоже что не завезли, ну или я не нашел как это можно сделать.
Даня 🇺🇦
Привет всем! Могу ли я тут помощь попросить ?
Konstantin
материальную?
Anton
моральную или даже психологическую)
Andrei
Коллеги, никто не сталкивался с кавычкованием имен колонок. Везде работает норм кроме JoinColumn падла(
Andrei
#[JoinColumn(name: "`flightId`", referencedColumnName: "id")]
Andrei
[Doctrine\DBAL\Exception\InvalidFieldNameException] An exception occurred while executing a query: SQLSTATE[42703]: Undefined column: 7 ERROR: column t0.flightid does not exist
Сергей
flight_id
Andrei
flight_id
низя переименовать в базе
Сергей
так в базе filghtId чтоли?
Andrei
главное, везде норм, в кавычки оборачивает, кроме жойнов. доктрина мать ее
Andrei
может есть какой хитрый ход? Абидна если джва дня эти аннотации писал зря, и все равно репу на sql-е делать
Andrei
хмм... а у них в документашке так и написано
Konstantin
господи, какая чушь
Konstantin
в смысле со стороны доктрины, конечно
Konstantin
я удивляюсь, как "лидер рынка", 10 лет может оставаться таким говном
Konstantin
да не из чего, кто там еще не актив-рекорд? cycle/orm?
The Ant
да не из чего, кто там еще не актив-рекорд? cycle/orm?
эктив рекорд лучший паттерн, друг программиста
Сергей
cycle может и так и так вроде бы)
Anton
Vlad
в чем хак?
Anton
Я такой AR на Doctrine тоже могу сделать)
Anton
Ну, из того что я смотрел, это тупо сахар
Anton
https://github.com/cycle/docs/blob/2.x/docs/en/advanced/active-record.md
Vlad
шо то хуйня шо эта хуйня
The Ant
шо то хуйня шо эта хуйня
а шо не хуйня? запросики вручную конкатенировать? 😄
Vlad
лучше ничего не придумали
The Ant
да чистый sql збс
и как ты на чистом скуле собираешься делать фильтр с 20-ю джойнами в запросе?
Vlad
а зачем мне 20 джойнов?)
The Ant
чтобы не делать 20 запросов в апи, очевидно же )
Null
эктив рекорд лучший паттерн, друг программиста
https://dev.to/verystrongfingers/part-3-100-eloquent-sucks-1k45 Вместо элоквента можешь любую AR подставить)
The Ant
https://dev.to/verystrongfingers/part-3-100-eloquent-sucks-1k45 Вместо элоквента можешь любую AR подставить)
я думал там бенчмарк против датамапера, а там какая-то дичь