@symfony_php

Страница 434 из 1418
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
Чтоб элоквент какой нить поставить?)
подавляющей массе людей не нужна доктрина. Им и ORM в большинстве случаев не особо и нужен

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

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
::create($name, $age, $etc...) { $this->name = $name etc...
А нативный конструктор чем не угодил?

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
ой та ладно
ты о чем?)

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

во вторых - что бы код стал более выразительным. В третьих - что бы избавиться от конкретных типов где можно)

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

Sergey
02.12.2017
15:43:13
к дата классам это не особо относится
к дата классам не относится, и к DTO в большинстве случаев тоже

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

Sergey
02.12.2017
15:43:37
сущности, объекты значения - тут уже как бы есть варианты

ну ты ж уточняй сразу))
ну я дата классы вообще за объекты не считаю, как и dto

это структуры данных

Ну старайся юзать конструкторы и не допускать такого чтобы публичное API сущности позволяло ее сломать в рантайме.
перефразирую. Делать контракты объектов так, что бы ими было удобно пользоваться, в том плане что они либо вообще либо почти не допускают некорректного использования

и это не только к доктрине относится

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
И что использовать? AR? :D
то есть кроме доктрины и AR ничего не существует? Зачем тебе вообще мэпить данные на объекты?

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
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 активно юзают в проде только потому что кроме пхп больше ниче не умеют

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?)

и запихнуть запросы куда-нибудь за интерфейс что бы сокрытие откуда данные берутся было? Ну мол что бы удобнее потом этот 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 вот пример по токенам

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

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

Boris
02.12.2017
16:09:45
ты используешь unit of work?
Не совсем знаю чо эт)

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

Sergey
02.12.2017
16:10:02
Не совсем знаю чо эт)
ну значит тебе вообще не нужна доктрина

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

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