
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

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

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

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