
vlad
02.12.2017
08:22:54
спасибо :)
Один раз

Arky
02.12.2017
14:38:09
SF4 без доктрины поставляется что-ли? (

Alan
02.12.2017
14:38:37
без всего ага

Google

Alan
02.12.2017
14:38:41
ну она норм встает там

Sergey
02.12.2017
14:58:14

Arky
02.12.2017
15:10:18

Алексей
02.12.2017
15:11:22
Чтобы если не нужен ORM - не использовать его.

Sergey
02.12.2017
15:14:57
как правило люди просто используют то, что есть из коробки не включая мозги

Sergey
02.12.2017
15:15:34
збс конечно что команды сделали как lazy

Sergey
02.12.2017
15:15:58
например заюзал до doctrine orm и юзаешь оттуда то что тебе и DBAL дает

Sergey
02.12.2017
15:16:04
еще контроллеры поправить и все сервисы будут приватными наконец
https://github.com/symfony/symfony-docs/issues/8678

Boris
02.12.2017
15:30:44
Ребят, по хорошему в сущности не должно быть сеттеров, верно?

Sergey
02.12.2017
15:31:07
у тебя почти всегда будут там сеттеры, не парься

Алексей
02.12.2017
15:31:19
Генератор доктрины не может врать.

Google

Sergey
02.12.2017
15:31:21
но если есть возможность их не делать - не делай
но возводить это в абсолют не стоит

Boris
02.12.2017
15:31:41
Ну, я на 4ку хочу пет перевести и по людски сделать
т.е. create, update через именованный контроллер (вроде так)

Алексей
02.12.2017
15:32:35
Ну старайся юзать конструкторы и не допускать такого чтобы публичное API сущности позволяло ее сломать в рантайме.

Sergey
02.12.2017
15:32:36
$transaction->isCompleted() должно быть вместо $transaction->getStatus() === Transaction::COMPLETED
$user->updatePassword() вместо $user->setPassword() и тд
тут никто без сеттеров не живет)

Boris
02.12.2017
15:33:19
::create($name, $age, $etc...)
{
$this->name = $name
etc...
Забыл как эта штука называется и где должна находится

Алексей
02.12.2017
15:33:59

Sergey
02.12.2017
15:34:14

Алексей
02.12.2017
15:34:19

Boris
02.12.2017
15:35:21

Алексей
02.12.2017
15:35:29
Посмотри доклад "Marco Pivetta - Doctrine best practices". Там об этом сказано.

Sergey
02.12.2017
15:37:54
но в целом вообще стоит избегать использования кейворда new в коде

Sergey
02.12.2017
15:38:31
ой та ладно

Sergey
02.12.2017
15:38:46

Boris
02.12.2017
15:38:53

Sergey
02.12.2017
15:38:53

Google

Sergey
02.12.2017
15:39:39
Почему?
избегать != запретить. Это вопервых, что бы разьяснить позицию.
во вторых - что бы код стал более выразительным. В третьих - что бы избавиться от конкретных типов где можно)

Sergey
02.12.2017
15:42:20
к дата классам это не особо относится

Sergey
02.12.2017
15:43:13

Sergey
02.12.2017
15:43:27
ну ты ж уточняй сразу))

Sergey
02.12.2017
15:43:37
сущности, объекты значения - тут уже как бы есть варианты
это структуры данных
и это не только к доктрине относится
p.s. внутри доктрины увы все ровно наоборот)

Boris
02.12.2017
15:47:27
Короче, все сложно :)

Boris
02.12.2017
15:47:48
Думаю что-бы освоить symfony сеттеры не помешают если что :)

Sergey
02.12.2017
15:49:45
ну или вообще болт забить

Boris
02.12.2017
15:50:32
И что использовать? AR? :D

Sergey
02.12.2017
15:51:06

Boris
02.12.2017
15:52:45
А как по другому работать с БД?

Sergey
02.12.2017
15:52:46
большинству от доктрины нужны:
- строитель запросов
- все прям тащатся от возможности схему базы генерить и миграции (но это заслуга DBAL чего многие не знают)

Google

Sergey
02.12.2017
15:53:09
для миграций вообще всякие flyway есть

Sergey
02.12.2017
15:53:30

Boris
02.12.2017
15:53:46

Dmitry
02.12.2017
15:53:49
еще VO нуна ;)

Sergey
02.12.2017
15:54:52
PDO?
доктрина и элоквенты тоже юзают PDO.

Boris
02.12.2017
15:54:57
А стоп, Doctrine !== ORM же

Sergey
02.12.2017
15:55:07
Doctrine = оргагнизация на гитхабе)

Константин
02.12.2017
15:55:31
= || == ?

Sergey
02.12.2017
15:55:53

Admin
ERROR: S client not available

Алексей
02.12.2017
15:56:09

Константин
02.12.2017
15:56:20

Dmitry
02.12.2017
15:56:27
ORM ∈ Doctrine

Sergey
02.12.2017
15:57:00
А стоп, Doctrine !== ORM же
ну короч вся проблема в том что люди не особо понимают зачем им инструменты и как ими пользоваться. Например можно спокойно эксплуатировать паттерн Table Gateway.
идет из коробки - и норм. Зачем еще думать?

Sergey
02.12.2017
15:57:51
эх наслушался я сегодня на митапе как люди amphp/reactphp активно юзают в проде только потому что кроме пхп больше ниче не умеют

Boris
02.12.2017
15:57:51

Sergey
02.12.2017
15:58:07

Google

Boris
02.12.2017
15:58:31
Надо думать что подключать

Sergey
02.12.2017
15:58:56
ну то есть вот есть у тебя проект. Что тебе надо от симфони и зачем тебе там доктрина?)
p.s. я не призываю отказаться тебе от доктрины - юзай на здоровье, я предлагаю попробовать подумать "как можно жить без ORM и при этом не болеть"

Boris
02.12.2017
16:00:11

Sergey
02.12.2017
16:00:19
ORM не всегда нужна, а когда ты только ими пользоваться умеешь, намного сложнее моневрировать по жизни будет)
и запихнуть запросы куда-нибудь за интерфейс что бы сокрытие откуда данные берутся было? Ну мол что бы удобнее потом этот sql править. В одном месте.

Boris
02.12.2017
16:03:01
Да

Sergey
02.12.2017
16:03:57
ты используешь unit of work?

Arky
02.12.2017
16:06:22
@fes0r как авторизоваться в симфони без формы?)

Sergey
02.12.2017
16:06:40
так же как и с формой)
https://symfony.com/doc/3.3/security/guard_authentication.html вот пример по токенам

Arky
02.12.2017
16:07:36

Dmitry
02.12.2017
16:08:24

Sergey
02.12.2017
16:08:50
AR это когда ты мэпишь ряды на объекты и эти объекты умеют операции над рядом который оно представляет

Boris
02.12.2017
16:09:28
Петом проект неправильно называть конечно, на KNP качаюсь, но там 3.3-, а я хочу четверку пробовать

Sergey
02.12.2017
16:09:42

Boris
02.12.2017
16:09:45

Sergey
02.12.2017
16:09:53
тебе пока нет смысла гнаться за фичами из 3.4/4

Dmitry
02.12.2017
16:09:58

Sergey
02.12.2017
16:10:02
ну я представляю, там получает RowGateway
нет, row gateway это как AR, но только если в AR у тебя объект имеет еще и логику обработки данных, то в Row Gateway у тебя полное разделение ответственности. Есть модель объектная (User) и моделька данных, которая и есть объектное представления ряда в базе которое умеет только персистенс