@symfony_php

Страница 863 из 1418
Who
16.04.2018
22:59:11
привет всем! а почему вдруг может быть, что в файле сущности у меня прописано поле, а после vendor\bin\doctrine orm:schema-tool:update --force я его не обнаруживаю в базе всё равно... о_0

Vladislav
16.04.2018
23:01:14
ты не повесил на него маппинг

у тебя аннотации или ямл?

Who
16.04.2018
23:06:08
у тебя аннотации или ямл?
аннотации... да как не повесил: /** * @var string * * @Column(name="user_message", type="string", options={"default"=null}, nullable=true) */ protected $userMessage;

Google
Vladislav
16.04.2018
23:07:15
тогда хз. кеш почисть или проверь все еще раз

багов не замечено за доктриной

тупишь где-то ты)

Who
16.04.2018
23:08:52
о, блин, забыл совсем

у доктрины тоже ж кеш чистится

?

а еще не могу понять, почему в репозитории у меня класс не находит

public function findWhoWithMessages(){ $em = $this->getEntityManager(); $query = $em->createQuery( 'SELECT u FROM TgUser u WHERE u.userMessage IS NOT NULL ORDER BY u.Log.created' ); return $query->getResult(); }

Doctrine\ORM\Query\QueryException: [Semantical Error] line 0, col 30 near 'User u ': Error: Class 'User' is not defined.

я репозиторий указал в $paths

Vladislav
16.04.2018
23:12:56
Who
16.04.2018
23:14:03
я репозиторий указал в $paths
$paths = array("app/Entity", "app/Repository"); $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);

да я с другого бандла взял сущность, но там именно сифони, а в жтом проекте нет. там работает, а код просто отличается указанием бандла. у меня его нет. public function findWhoWithMessages(){ $em = $this->getEntityManager(); $query = $em->createQuery( 'SELECT u FROM AppFrontBundle:User u WHERE u.userMessage IS NOT NULL ORDER BY u.Log.created' ); return $query->getResult(); }

Google
Who
16.04.2018
23:17:07
мне нужно пространство имён указать в этом проекте, без симфони который, для сущностей, получается, не просто Entity?

Vladislav
16.04.2018
23:18:22
я вообще не понял

у тебя 2 проекта вместе или что?

Who
16.04.2018
23:18:54
да, 2 проекта. используют одинаковые энтити

Vladislav
16.04.2018
23:19:18
так что значит в одном симфони а вдругом нет

ты ж доктрину юзаешь

Who
16.04.2018
23:19:36
только 1 проект сделан на симфони, а второй сборный, на композере, я только доктрину туда затянул

Vladislav
16.04.2018
23:20:03
и какой из них не работает?

Who
16.04.2018
23:20:04
ну и еще пару библиотек

тот который с доктриной, без симфони

Vladislav
16.04.2018
23:21:32
ты энтити скопировал или просто притащил из другого проекта?

Who
16.04.2018
23:21:49
скопировал и неймспейсы подредактировал

Vladislav
16.04.2018
23:21:56
а точно правильно ?

ану запусти d:s:v

Who
16.04.2018
23:24:19
ану запусти d:s:v
это orm:validate-schema?

Vladislav
16.04.2018
23:24:33
lf

da

Who
16.04.2018
23:24:59
PS D:\xampp\htdocs\admin> vendor\bin\doctrine orm:validate-schema [Mapping] OK - The mapping files are correct. [Database] OK - The database schema is in sync with the mapping files.

заменил запрос на 'SELECT u FROM '.User::class.' u WHERE u.userMessage IS NOT NULL'

заработало

Google
Who
16.04.2018
23:27:59
а вот вообще так вернее всегда будет указывать, да?

через ClassName::class

Vladislav
16.04.2018
23:31:47
да

так норм

Who
17.04.2018
01:11:01
блин, столкнулся еще с проблемой, что при изменении сущности, в проекте на симфони, я не вижу этих изменений во втором проекте. хотя выборку правильно делаю

точнее, в выборку попадает объект, но как будто старый

там изменённое поле == NULL почему то

Timur
17.04.2018
01:13:19
там изменённое поле == NULL почему то
Не понял, в каком ещё втором проекте?

Who
17.04.2018
01:16:45
второй проект, в котором доктрина только, выборка делается в цикле React\EventLoop



а var_dump в данный момент выдаёт: array(1) { [0] => class Entity\User#151 (19) { protected $id => int(3) protected $messageDelay => int(0) protected $userMessage => NULL ... }

Who
17.04.2018
01:38:52
нужно было выполнять $entityManager->clear();

теперь всё работает как нужно

Artem
17.04.2018
07:06:21
Кто-нибудь использует DAO интерфейсы для DAO классов наподобии того как это делают в Spring/JavaEE?

типа интерфейсы для репозиториев

если да, то зачем? я ограничиваюсь просто репозиторием (не наследую от EntityRepository, а делаю обычным сервисом) и если надо, то мокаю его

Sergey
17.04.2018
07:09:36
и это не для того чтобы подменять реализации

Artem
17.04.2018
07:10:19
давно писал?

Google
Sergey
17.04.2018
07:10:53
https://t.me/symfony_php/83668

Admin
ERROR: S client not available

Artem
17.04.2018
07:11:41
вродеб нашел

Антон
17.04.2018
07:11:41
сорян, все думал где применить картинку =) шутка

Sergey
17.04.2018
07:11:49
ну и да если у тебя Spring Data, то вполне вероятно что будут просто интерфейсы, без реализаций

Artem
17.04.2018
07:12:00
еще вопрос: кто как заворачивает логику в транзакцию?

я встречал странные кейсы, когда flush делают отложенным (по респонсу), но это имхо дичь

юзерспейс ограничен контроллером - там желательно все сделать от и до

мне нравится транзакционная аннотация в спринге для сервисов..

делаю примерно также, но естественно без аннотаций, но страдает ясность кода

есть сервис типа Transaction с __invoke, который принимает callback

и получается код в сервисе с локикой вроде ($this->transaction)(function () { // logic here })

кто как делает?

сформулирую яснее: кто как заворачивает бизнес логику в транзакцию? на каком уровне?

Sergey
17.04.2018
07:21:44
$this->em->transactional(function(){ //do the stuff });

Artem
17.04.2018
07:22:44
хотя, лан)

Sergey
17.04.2018
07:23:19
только там где нужно писать в базу

Google
Sergey
17.04.2018
07:23:24
ну можешь сделать доп интерфейс)

Artem
17.04.2018
07:23:27
ок

Sergey
17.04.2018
07:24:05
вот немного упоротости из реального кода $orderItem = $this->em->transactional( function () use ($data, $order, $user) { $orderItem = $this->createOrderItemFromData($data, $order, $user); $this->userOrderService->saveOrder($order); return $orderItem; } );

Artem
17.04.2018
07:25:33
а $data - это DTO какой-нить?

Sergey
17.04.2018
07:25:51
не помню уже, да вроде

Artem
17.04.2018
07:26:03
норм код

Антон
17.04.2018
07:28:09
а что не так? мне тоже нравится

Damir
17.04.2018
08:42:36
Коллеги, кто юзал HWIOAuthBundle?

Artem
17.04.2018
08:43:46
Коллеги, кто юзал HWIOAuthBundle?
даже немного контрибьютил

Dinar
17.04.2018
08:43:54
Я для гугла

Страница 863 из 1418