artem
пздц как туплю. насколько помню тестам можно очередность ставить?
artem
только что создавал сущность, потом удалял и редактировал)))
Null
Часто пишут, что если тесты имеют очередность - это плохие тесты.
artem
ну обычный же круд на интеграцию
Null
Очередность в рамках одного файла?
artem
конечно) я же не совсем)
Null
https://stackoverflow.com/questions/31781132/using-value-from-previous-test-case-in-phpunit
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 упустили
Павел
Я делаю рекваир одного пакета - а у меня после запускается обновление всего вендора
Konstantin
это бред какой-то, такого быть, разумеется, не должно. обычно такое бывает, когда не коммитят лок-файл и каждый composer install действительно ставит свежайшие (вместо прибитых) версии
Павел
Павел
Короче как я понимаю, это скорее какая то "шляпа"
Konstantin
а, блин, и правда, я жопой читаю
Konstantin
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 в связке?
Konstantin
Привет, может кто то делал иерархию от энтитис?
Кратко опишу что мне нужно
Есть базовый энтити 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 в связке?
а речь точно не про mapped superclass?
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
Иван
Привет, может кто то делал иерархию от энтитис?
Кратко опишу что мне нужно
Есть базовый энтити 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 в связке?
наследование сущностей - это не то, что тебе нужно
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
ну типа того, если прям кровь из носу нужно поля продублировать - трейт
Nikolay
Иван
Юра
Народ тупой вопрос
Юра
Как заинджектить в контроллер сервис которого может не быть?
Юра
$this->get(...) депрекейтэд
Vlad
https://github.com/symfony/symfony/blob/6.1/src/Symfony/Bundle/FrameworkBundle/Resources/config/property_access.php#L23
Konstantin
я пару недель воевал с этим, выходом оказалось пустую фабрику, которая особо ничего не делала
Юра
Юра
Правда непонятно как тайпхинтить
Юра
Если бандл не стоит то и класса нет
Юра
Т.е. как я напишу например
?SomeService $service = null
Юра
Если SomeService класса нет
Юра
Наверное надо через фактори какую-то инжектить
Юра
Короче чет я туплю и не врубаюсь
Vlad
Vlad
в чем проблема то
Юра
Вывалится ошибка что такой класс не найден
Vlad
странно, как тогда в sf компонентах работает ето?)
Юра
Хм
Юра
ошибка не вываливается
Юра
Чет я думал нельзя тайпхинтить классом которого нет
Юра
Опробовал на деле realtime обновления. Крутая тема. На фронте приметно так выглядит (vue)
const { orders } = storeToRefs(ordersStore)
const { syncCollection } = useMercure()
syncCollection('/api/v1/orders/{id}', orders)
все, в итоге заказы обновляются, ui обновляется. Просто шик
Юра
рекоммендую )
Nikolay
Юра
what?
Юра
симфонийский mercure
Nikolay
what?
Есть такая штука для реалтайма
Юра
Не, я тот который офф симфа рекоммендует
Юра
https://symfony.com/doc/current/mercure.html
Юра
Правда что-то не соображу как фильтровать сообщения. Т.е. как сделать так чтобы клиенту приходили только сообщения касающиеся его заказов
Null
Меня, вероятно, многие осудят сейчас. Но имхо центрифуга получше Меркурия будет.
Меркурий перемудренный. Центрифуга простая максимально. И система их неймспеймов и приватных комнат - топ.