artem
пздц как туплю. насколько помню тестам можно очередность ставить?
artem
только что создавал сущность, потом удалял и редактировал)))
Null
Часто пишут, что если тесты имеют очередность - это плохие тесты.
artem
ну обычный же круд на интеграцию
Null
Очередность в рамках одного файла?
artem
конечно) я же не совсем)
Null
https://stackoverflow.com/questions/31781132/using-value-from-previous-test-case-in-phpunit
Dmitry
только что создавал сущность, потом удалял и редактировал)))
Создавать одну сущность, редактировать вторую из фикстуры, удалять третью из фикстуры. Тогда зааисимостей и очерёдности не нужно будет.
artem
Уже поздно) они и так из фикстуры были) просто очередность выполнения непонятная. Выяснил, вылечил)
artem
Ох и надоем я всем здесь когда буду вспоминать что такое моки))
Aleksander
всем привет! переопределяю PostgreSQLPlatform, getAlterTableSQL и тд (нужно для добавления sql для кастомного типа). там параметром прилетает только tableDiff, то есть текущая таблиц/сущность. а мне надо получить доступ к мета-инфе от другой сущности по классу(узнать её PK) подскажите, как тут получить доступ к этой инфе? подозревал что через em, но даже как его достать - не пойму
Aleksander
выше есть вот это, меня бы устроило, но как это поиметь конкретно в getAlterTableSQL?
Aleksander
ну и, в общем, я вроде догадываюсь что сама платформа не должа зависеть от em и тд, но как быть, если "надо"?
Павел
Приветствую. Хэлпаните плиз советом. В новом проекте стокнулся с такими скриптам в композере: "if test -d vendor/symfony/requirements-checker; then ./vendor/bin/requirements-checker; fi", "if test -d vendor/bamarni/composer-bin-plugin; then composer bin all update; fi", Ну понятно, что плагины чекают зависимости. Но на сколько это корректный флоу? Может кто юзает? Основная проблема - хотел добавить новую либу, а у меня понеслось обновление всех пакетов. Итого решил не рисковать, —no-script —no-plugins И в итоге какой резон, если я буду так делать постоянно, а когда нужно будет обновить пакеты - я целенаправленнно их обновлю. Ну или я неверно мыслю, и что-то упускаю?
Konstantin
такое ощущение, что главу про composer.lock упустили
Павел
такое ощущение, что главу про composer.lock упустили
Причем тут лок? Он есть. Эти скрипты запускают обновление
Павел
Я делаю рекваир одного пакета - а у меня после запускается обновление всего вендора
Konstantin
это бред какой-то, такого быть, разумеется, не должно. обычно такое бывает, когда не коммитят лок-файл и каждый composer install действительно ставит свежайшие (вместо прибитых) версии
Павел
Короче как я понимаю, это скорее какая то "шляпа"
Konstantin
а, блин, и правда, я жопой читаю
Konstantin
composer bin all update - вот это явно похоже на "обновить всё"
Павел
composer bin all update - вот это явно похоже на "обновить всё"
Ну вот да, но это ставили целенаправлено в проект
Konstantin
я бы убрал эту строчку и задал бы пару наводящих вопросов долбоёбу, это придумавшему
Павел
Вот вопрос, мб кто-то так делает еще)
Konstantin
не, никто так не делает, это всё от небольшого опыта/ума
Павел
Ок спасибо, попробую спросить у него, какая цель) это не в 1 проекте так
Konstantin
https://github.com/bamarni/composer-bin-plugin
Konstantin
плагин чуть про другое, всё же, он зачем-то изолирует бинарники друг от друга
Alex
Привет, может кто то делал иерархию от энтитис? Кратко опишу что мне нужно Есть базовый энтити Page (id, name, status) От него хочу сделать предков Article (publication_date, expiration_date, url, author) и News (publication_date, expiration_date) Для Page указываю #[ORM\Entity(repositoryClass: PageRepository::class)] #[ORM\InheritanceType('JOINED')] #[ORM\DiscriminatorColumn(name:'page_id', type:'integer')] #[ORM\DiscriminatorMap([Article::class, News::class])] class Page у классов Article, News есть #[ORM\OneToOne(targetEntity: Page::class, cascade: ['persist', 'remove'])] #[ORM\JoinColumn(nullable: false)] private $page; в бд для таблиц Article, News есть поля page_id При создании Article ругается на null value in column "page_id" of relation "article" violates not-null constraint Должно ли происходить автоматическое создание Page при Article в связке?
Alex
Смотрел этот раздел https://www.doctrine-project.org/projects/doctrine-orm/en/2.11/reference/inheritance-mapping.html
Alex
Получается страница суперкласс а ее предки новость и статья
Konstantin
вам надо чтобы все лежало в одной таблице или нет?
Konstantin
если ответ "да" - то почему?
Alex
Нет)
Alex
http://joxi.ru/Drl4YwbiKqP8Pr
Alex
http://joxi.ru/vAWa7kLf35Wovm
Konstantin
тогда вся эта муть про InheritanceType, дискриминаторы и проч не нужны, достаточно сделать #[ORM\MappedSuperclass] abstract class Page { .... fields goes here } #[ORM\Entity] class Article extends Page {...}
Иван
не надо пытаться задраить всё
Alex
Ок попробую ORM\MappedSuperclass
Konstantin
не надо пытаться задраить всё
согласен полностью, на мой взгляд это тоже лишняя зависимость. обязательно придете к тому, что придется из какого-то наследника скрыть поле Status (или типа того) - и вся красота развалится
Иван
я для себя решил, что предок должен иметь ценность сам по себе задавать сценарий или интерфейс предок просто с полями не нужен
Alex
Появились дубли полей в талицах article и news (name status) от page Но проблема при создании статьи возникает null value in column "page_id" of relation "article" violates not-null constraint Разве не должен Родитель создаваться автоматически?
Konstantin
ну типа того, если прям кровь из носу нужно поля продублировать - трейт
Иван
ну типа того, если прям кровь из носу нужно поля продублировать - трейт
а потом окажется, что к полю нужна другая аннотация и трейт придётся затаскивать в файл
Юра
Народ тупой вопрос
Юра
Как заинджектить в контроллер сервис которого может не быть?
Юра
$this->get(...) депрекейтэд
Vlad
https://github.com/symfony/symfony/blob/6.1/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_access.php#L23
Андрей
Как заинджектить в контроллер сервис которого может не быть?
Может через аргумент, в котором указать значение null по умолчанию? Не пробовал.
Konstantin
я пару недель воевал с этим, выходом оказалось пустую фабрику, которая особо ничего не делала
Юра
Правда непонятно как тайпхинтить
Юра
Если бандл не стоит то и класса нет
Юра
Т.е. как я напишу например ?SomeService $service = null
Юра
Если SomeService класса нет
Юра
Наверное надо через фактори какую-то инжектить
Юра
Короче чет я туплю и не врубаюсь
Vlad
в чем проблема то
Юра
Вывалится ошибка что такой класс не найден
Vlad
странно, как тогда в sf компонентах работает ето?)
Юра
Хм
Юра
ошибка не вываливается
Юра
Чет я думал нельзя тайпхинтить классом которого нет
Юра
Опробовал на деле realtime обновления. Крутая тема. На фронте приметно так выглядит (vue) const { orders } = storeToRefs(ordersStore) const { syncCollection } = useMercure() syncCollection('/api/v1/orders/{id}', orders) все, в итоге заказы обновляются, ui обновляется. Просто шик
Юра
рекоммендую )
Юра
what?
Юра
симфонийский mercure
Nikolay
what?
Есть такая штука для реалтайма
Юра
Не, я тот который офф симфа рекоммендует
Юра
https://symfony.com/doc/current/mercure.html
Юра
Правда что-то не соображу как фильтровать сообщения. Т.е. как сделать так чтобы клиенту приходили только сообщения касающиеся его заказов
Null
Меня, вероятно, многие осудят сейчас. Но имхо центрифуга получше Меркурия будет. Меркурий перемудренный. Центрифуга простая максимально. И система их неймспеймов и приватных комнат - топ.