
Aleksey [R10]
30.05.2017
10:42:57

Daniel
30.05.2017
10:43:03
Это ненужное говно
В сф это одной командой делается, но все равно сейчас уже тоже стараюсь только API писать для фронта и других клиентов

Aleksey [R10]
30.05.2017
10:44:47
И про вывод форм виджетами

Google

Aleksey [R10]
30.05.2017
10:44:47
Удобно для админки. Геморроя для верстки дизайнов

Daniel
30.05.2017
10:44:53
А про сонату - это просто boostrap CRUD с возможностью фильтра, сортировки и экспорта + определения своих действий + возможностью ролирования
В Yii виджеты могут по сути подключать в основной лаяут еще и стили с JS?

Aleksey [R10]
30.05.2017
10:46:33
Верстка {{ form_widget(form) }} куда гибче
А переопределить свои стили и шаблоны форм ещё на этапе освояния

Daniel
30.05.2017
10:47:12
Ну да, SPA модно же
Да и ваще так и надо делать
Ну если оно надо, то добавить тему для форм не такая уж и проблема, хотя бы потому что для бутстрапов и других CSS фреймворков темы из коробки поддерживаются
Недавно надо было добавить в форму SELECT для цвета, где в OPTION еще и картинка с цветом типа вставлена, так оказалось уже такое есть... >.<

Дмитрий
30.05.2017
11:59:08
ребята как правильно писать запросы:
вариант 1:
return $this->getEntityManager()
->createQuery(
'SELECT p FROM AccidentBundle:Accident p WHERE
p.year=:year
AND p.week=:week
ORDER BY p.timeReg ASC'
)
->setParameters(array(
'year' => $year,
'week' => $week
))
->getResult();
вариант 2:
писать обычный запрос а потом
$connection = $this->getEntityManager()->getConnection();
$statement = $connection->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$connection->close();
т.е. как по лучшим практикам

Dmitry
30.05.2017
12:06:39
вариант 3:
делать запросы в репозиториях при помощи QueryBuilder

Google

Sergey
30.05.2017
12:09:08
не обязательно в репозиториях, это уже как кто хочет. Но точно не в контроллерах и они должны быть изолированы
у меня к примеру на каждую выборку свой объект, а репозиторий может просто этим объектам давать то что нужно

Oleg
30.05.2017
12:10:14

Sergey
30.05.2017
12:11:20
$repo->find(CompleteOrdersQuery::create()->withinRange($range));
как-то так
а find просто создает query builder и пихает его в Query
можно еще позагоняться на тему спецификаций
у меня же идея проще - если мне нужна новая выборка - я не хочу ничего менять.

Oleg
30.05.2017
12:28:13

Дмитрий
30.05.2017
12:51:32
FOSUser проверяет дубликаты по полю email
можно это как то отключить?
у юзеров может быть одинаковая почта

Mikhail
30.05.2017
12:53:06
можно в твоём классе User сделать AttributeOverrides, в котором переопределить поле emailCanonical
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="emailCanonical",
* column=@ORM\Column(
* type="string",
* name="email_canonical",
* length=255,
* unique=false,
* nullable=true
* )
* ),
типа такого

Алексей
30.05.2017
12:55:24
Но возникает вопрос: нужен ли тут FOSUser вообще :)

Oleg
30.05.2017
12:58:54

Daniel
30.05.2017
13:51:14
Зачем вот он вообще?
Каждый раз блин приходится держать app/Resources/FosUserBundle в проекте с этим бандлом
Редиректы непонятные после регистрации делает
Не везде нужны страницы, которые он предоставляет

Google

Daniel
30.05.2017
13:54:59
А отправку пароля или ссылки с подтверждением регистрации лучше делать через очередь - снова свой Mailer пихать
А если они кастомные, например, при требовании заказчика прикрутить смс подтверждение для реги или восстановления пароля, то придется еще и контроллеры переопределять

Dima
30.05.2017
14:01:09
Господа, прошу пролить свет на мой вопрос: чтобы такое сделать с RequestBodyParamConverter'ом от FOSRest, чтобы он сеттил не новую cущность, а сущность взятую из бд?

Sergey
30.05.2017
14:20:07
написать свой argument resolver
и вообще "обновление" за сче десериализации так себе идея
а fos rest - рак
решения от FOS были актуальны года 4 назад

Daniel
30.05.2017
14:22:53
Все решения?

Dima
30.05.2017
14:23:05
@fes0r ну а как бы ты PATCH реализовал?

Daniel
30.05.2017
14:24:23
Там же вроде FOS Elastica Bundle для быстрой пакетной доставки сущностей в поисковой сервер + Query Filter Builder

Daniel
30.05.2017
14:25:49
Ну типа он норм
Удобная хрень

Oleg
30.05.2017
15:53:38
Или только руками?

Sergey
30.05.2017
16:20:38
Или только руками?
зависит от того что ты делаешь. Если у тебя бэк на уровне "пришла json - десериализнул и сохранил" - есть мнение что тут вообще бэкэнд не нужен

Oleg
30.05.2017
16:21:11

Sergey
30.05.2017
16:21:28
а если что-то поинтереснее - ну тут опять же зависит от того что у тебя там

Google

Sergey
30.05.2017
16:21:53
в целом ты можешь заменить все от fos rest на тупо symfony serializer + argument resolver-ы
это будет намного более гибкий подход
в том плане что у тебя все те же плюшки - ты можешь реализовать ресолверы для update методов и делать все автоматом
но при этом у тебя остается тотальный контроль над тем как именно происходит мэппинг

Oleg
30.05.2017
16:24:48

Ivan
30.05.2017
16:31:36

Sergey
30.05.2017
16:32:43
это еще почему?)
потому что rest может быть только для умных клиентов, которые понимают семантику происходящего. Мобилки/фронтэнд эту семантику не понимают, им ее "хардкодят" люди.
короч нет гипертекста, нет элементов гипермедиа, нет понимание семантики без человека - нет rest
rest = web и только web. Это обоснование архитектуры web-а. Все остальное - тупо http api

Admin
ERROR: S client not available

Sergey
30.05.2017
16:33:35
и в этом нет ничегошеньки плохого

Marat
30.05.2017
17:08:18
Datamapper vs AR, про Doctrine отдельно
LTS релизы vs Говносообщество
Немного за Symfony Flex vs Yii-basic, Yii-advanced и Yii.. ой, больше ниче нету
Показал как аннотации работают, насколько это ускоряет разработку
Показал как за секунды поднимаю FosRest, Admin Bundle, ApiDoc
Показал как работаю с базой данных: структурой, не залезая в SQL Editor-ы, как связки быстро генерятся по сущности в базе данных связки и сама структура, по доктрине там очень многа рассказал
наверное, еще стоит упомянуть твиг
в уи часто пихают логику в шаблоны

Sergey
30.05.2017
17:12:26

Dmitriy
30.05.2017
17:25:18
в ии вроде есть твиг
в ии "принято" пихать логику в модель

Andrew
30.05.2017
17:26:48
все, что нужно знать о ларке - https://gist.github.com/taylorotwell/ee2f782aec59aa53863fd09c8e47f304#file-gistfile1-php-L29

Marat
30.05.2017
17:34:35
можно ему написать "перелогиньтесь DHH" )

?
30.05.2017
17:39:27
можно пару примеров?

Daniel
30.05.2017
17:45:54

Google

?
30.05.2017
17:47:22

Daniel
30.05.2017
17:47:57

?
30.05.2017
17:48:15
я просто встречал фанатиков, для которых циклы в шаблонах - логика
потому спрашиввю

Vania
30.05.2017
18:21:24
Есть где в Киеве место где норм поднатаскаюь по симфонии? Курсы какие-то толковые может, подскажите

Daniel
30.05.2017
18:43:20
Я про супер глобальный "DI" в шаблоне, а не циклы

Vania
30.05.2017
18:48:24
Где то здесь? По симфонии 3?
Я по втором нашёл, но надо по 3 и желательно рус

Marat
30.05.2017
20:15:56

Sergey
30.05.2017
20:18:02
инлайн кэши отработают
просто это чушь)
А Тэйлор... ну такое. Его идеи не сказать что полный бред, проблема больше в подаче. Насквозь пропитано маркетингом и желтизной.
что бы больше пипла хавало

Артур Евгеньевич
30.05.2017
20:24:28
так тейлор то и не считает что интерфейсы и не нужны, это он троллит другого чувака(забыл как звать) который на ларакасте серьезно доказывал что тайпхинты и интерфейсы это мусор коорый мешает читать код

Nick
30.05.2017
22:11:26
джефри вей
хайпанул
там под тем видосом столько комментов весёлых)

Max
31.05.2017
07:16:24
Позвольте продолжить тему. Что тогда такое "умный клиент"? Почему во фронтенде нету семантики? Или я не так понял посыл?
А на чем сейчас модно крутые апи делать? Именно рест
это еще почему?)