@symfony_php

Страница 279 из 1418
Dinar
23.08.2017
10:24:09
Тут в общем либо там тяжело либо тут. :)

Sergey
23.08.2017
10:24:20
и могу тебе сказать что в 90% люди будут пытаться прикрутить это к уже имеющемуся

Dinar
23.08.2017
10:24:28
Ну она заняла день два у тебя вначале. :)

Sergey
23.08.2017
10:24:50
Ну она заняла день два у тебя вначале. :)
да нет, form login в симфони, сущность credentials которая пилится за час...

Google
Sergey
23.08.2017
10:25:11
выносим это в бандл и реюзаем если хотим)

Dinar
23.08.2017
10:25:25
На самом деле, мне кажется мастерство - это как раз уметь держать баланс и не удаляться в крайности.

Dinar
23.08.2017
10:25:57
А то видел образец кода который пишет hello world со всеми архитектурными решениями.

Чуть ли ни все паттерны использовали. :)

Вообще я с тобой согласен насчет этих фосов.

Я сам их не использую.

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

Ну и я даже не думал использовать родной.

Pavel
23.08.2017
10:27:42
что мешает переопределить контроллер? Либо повесить свою валидацию?

в чем там сложность то? я что то не схватил на лету

Google
Dinar
23.08.2017
10:29:55
Это был показательный пример-прикол. :)

Sergey
23.08.2017
10:30:01
что мешает переопределить контроллер? Либо повесить свою валидацию?
то что это будет неявно и логика будет размазана по всюду?

если хочешь "быстро запилить регистрацию и авторизацию" - почему бы не заюзать какой-нибудь auth0

даже подобное решение будет кастомизироваться лучше чем fos user

Это был показательный пример-прикол. :)
любая идея которую неправильно поняли будет хреновой)

я видел и разработчиков которые вместо того что бы код в зависимость вынести устраняли дублирование "наследованием", видел разработчиков которые "для тестируемости" вводили миллион зависимостей (что иронично ибо это затрудняет тестируемость)

но хуже чем fos user bundle я еще ничего не юзал

оно было прикольно в 12-том году, когда в симфони было неудобно делать тот же form login

с тех пор многое изменилось

Pavel
23.08.2017
10:37:28
Сергей, мне кажется, но разговор зашел в навязывание вашей точки зрения. Возможно у вас уже есть кучка готовых решений которые вы используете, но у других их нет и им действительно быстрее взять то, где много информации и что часто используется, и не тратить 6 лет на написание своих велосипедов :)

Мои кейсы полностью закрывают на текущий момент данные инструменты, как только они перестанут закрывать мои потребности я начну внедрять/искать/писать что то еще, но на текущий момент это экономит много времени мне и в том числе проще вводить людей в проект, потому что данный стек известен многим и информации много... так что я считаю что это все же плюс... а задел на будущее в большинстве случаев минус, потому что проект нужен вчера и будущего может и не быть

Виктор
23.08.2017
10:40:17
Можете что-то готовое посоветовать вместо FOSUserBundle?

Dinar
23.08.2017
10:41:00
Sergey
23.08.2017
10:41:20
Фос рест бандл может? :))
с fos rest еще хоть как-то работать можнго

но в целом штука бесполезная

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

Можете что-то готовое посоветовать вместо FOSUserBundle?
тебе какие задачи оно должно решать?

Виктор
23.08.2017
10:46:17
На текущий момент надо: авторизация (без регистрации) - лучше просто на уровне АПИ - форму логина сами приделаем на angular, далее выполнение запросов с access_token в хедера запроса. Нужны группы пользователей, в группах указание ролей, доступных группам, в коде проверка наличия роли у текущего юзера на выполнение той или иной операции. И еще бы прикрутить авторизацию приложений по какому-то постоянному токену (типа как авторизация сделана в сервисах вроде Я.Директ), которые будут использовать АПИ постоянно.

Google
Виктор
23.08.2017
10:48:32
lexic уже видел - а он позволяет сделать то, что я последнее написал?

не просто токен по логин-паролю получить

а именно как-то сгенерировать токен для приложения и чтобы потом постоянно по нему работало

Pavel
23.08.2017
10:51:12
в яндекс сервисах используется oAuth

так что ищите поддержку его

Sergey
23.08.2017
10:52:24
jwt как раз для этого

генерация токенов

в яндекс сервисах используется oAuth
oauth это весело но может быть оверхэдом

если задача простая аутентификация.

Виктор
23.08.2017
10:54:01
я знаю что такое jwt - делал свои задачи на нем без всяких сф. Oauth мне не нужен точно. В lexic просто когда смотрел не увидел этой возможности - только дернуть сервис авторизации и получить аксесс токен

возможно просто не докурил до всех его возможностей

Sergey
23.08.2017
10:57:34
а что тебе еще надо?

Виктор
23.08.2017
11:00:32
ну из серии - зашел в систему админ - зашел в список приложений. Добавил новое приложение - в настройки записал ему какой-нить client_id типа и сгенерировался токен. Токен и client_id прописали в этом приложении дальше и система по АПИ его пускает и дает выполнять операции

логин и пароль тут как бы вроде не нужен

у яндекса это конечно реализовано сложнее - там токен получаешь под учеткой яндекса - мне это не надо, мне внутри компании надо организовать такой сервис - но желательно чтобы это АПИ больше никто не видел, кроме 3-4 приложений, которым надо с этим апи работать

Dmitry
23.08.2017
11:34:58
Я вот помню, почему попробовал jms вместо стандартных средств. Пробовал выдавать сущности напрямую, при этом id - VO, а в сериализации нужно выдать просто как строку (uuid). В jms это делается просто в yml конфиге. Правда потому все-равно большинство сущностей пересало выдаваться напрямую, а через DTO, но несколько простеньких справочников осталось и из сущности

Виктор
23.08.2017
11:57:18
с fos rest еще хоть как-то работать можнго
а нет какой-нить маленькой статьи, где был бы описан пример простого сервиса - как его сделать от начала и до конца, чтобы на входе один объект json передавали, на выходе получали другой? Мне надо для чайника - я тока вторую неделю сф смотрю...

желательно чтобы это был не просто обхект - а то что быстро превращается в Entity и записывается в БД и обратно.

Google
Антон
23.08.2017
19:53:32
Делаю spa приложение на реакте. Есть ли смысл полностью отделить от симфони? Или это нормально с помощью view отрисовать wellcome страницу и там цеплять реакт?

Sergey
23.08.2017
19:54:09
норм

можно вообще отделить бекенд от фронта

и держать какую-нибудь ноду с пре рендерингом

Антон
23.08.2017
19:54:28
Знаю что можно.

Sergey
23.08.2017
19:54:39
а симфа тебе чисто апиху будет отдавать

Антон
23.08.2017
19:55:48
Сейчас просто сделал через Encore подключение реакта и сборку, и апи имеет относительные пути типа /api/v1/products

Кажется что так неверно интуитивно.

Admin
ERROR: S client not available

Sergey
23.08.2017
19:56:45
я вообще encore не заценил особо..

Антон
23.08.2017
19:57:25
Если честно это хрень

Обёртка над вебпаком

Sergey
23.08.2017
19:57:45
я хз зачем это надо было делать

Антон
23.08.2017
19:59:24
Выкинуть думаю. Когда я запускаю его с ключом watch то на каждую сборку он почему то делает новый файл с новым хешем

Виктор
23.08.2017
22:22:42
кто нить на маке ставил под phpstorm x-debug?

именно для sf - чтоб работало на http://127.0.0.1:8000

Матерюсь(

Pavel
23.08.2017
22:27:35
удалённый xdebug? docker/vagrant?

Evgenii
24.08.2017
04:57:19
кто нить на маке ставил под phpstorm x-debug?
в чем проблема? у меня стоит

Mr.Akhrorkhon
24.08.2017
05:02:31
Всем привет ребять у кого есть HTML & CSS и Javascript & jQuery группы

Google
Mr.Akhrorkhon
24.08.2017
05:02:36
если есть у ковото дайте ссылку

Sergey
24.08.2017
06:23:49
Делаю spa приложение на реакте. Есть ли смысл полностью отделить от симфони? Или это нормально с помощью view отрисовать wellcome страницу и там цеплять реакт?
Зачем рисовать бэкендом пусть и пустую страницу? Это же время на инициализацию приложения, достаточно отдавать nginx'ом html в котором подключается js бандл, а уже походы в /api посылать на бэкенд

Sergey
24.08.2017
06:26:47
пререндеринг же

как ни крути, но на бекенде нарисовать страницу быстрее

ну только если у клиента в кеше не лежит html/js)

Sergey
24.08.2017
07:04:11
пререндеринг же
Если нужен пререндеринг, то лично у меня не получилось адекватно подружить php и react))

Sergey
24.08.2017
07:04:39
для этого и нужна прослойка с нодой)

Антон
24.08.2017
07:34:34
пока о таких вещах не думаю. вообще делаю тестовый проект. развернул в докере

просто если разделю, то придется 2 phpStorm запускать?

или думаю в папке web создать index.html и в nginx настроить

как лучше?

Sergey
24.08.2017
07:38:34
я делал так, в вебпаке есть плагин который генерит html страницу, а для команды типа npm build настроено копирование этого файла в папку web, а в nginx'е все запросы которые не /api идут на index.html остальные на app.php

но это было год назад, мне кажется мир js за это время сильно изменился))) может чего нового уже там напридумывали

Michael
24.08.2017
09:36:11
есть вопрос по доктрине: у меня есть например 5 сущностей (например новости, блоги и т.д.) . все они связаны через смежные таблицы с таблицей комментарии. Можно ли как-то простым способом получить все комментарии, которые относятся к новостям/блогам/т.д., т.е. грубо говоря метод в репозитории такого вида getCommentsByEntity($entityName) , или надо писать прям запрос через query builder, в котором вручную прописывать джоины?

Denis
24.08.2017
09:42:18
Можно. Посмотри аннотации

На доки

Sergey
24.08.2017
09:49:52
$entity->getComments() :D

Michael
24.08.2017
09:52:45
не, немножко по другому, возможно неправильно обьяснил маленько. Так как комментарии - это дочерняя сущность, то у неё есть родитель (новость, блог и т.д.). и соответственно нужно её получить методом вида $comment->getParentEntityClass()

Roman
24.08.2017
10:06:54
Ребята, помогите :) Есть вот такой код: <?php require_once __DIR__ . '/../vendor/autoload.php'; use Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter; use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Serializer; class Person { /** @var Education[] */ protected $educations = []; /** * @return Education[] */ public function getEducations() { return $this->educations; } /** * @param Education[] $educations */ public function setEducations(array $educations) { $this->educations = $educations; } } class Education { protected $id; public function __construct($id = null) { $this->id = $id; } public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } } $objectNormalizer = new ObjectNormalizer(null, new CamelCaseToSnakeCaseNameConverter(), null, new ReflectionExtractor()); $serializer = new Serializer([ new ArrayDenormalizer(), $objectNormalizer, ], [ new JsonEncoder(), ]); $person = new Person(); $person->setEducations([ new Education(1), new Education(2), ]); $normalized = $serializer->normalize($person); var_dump($normalized); $data = $serializer->denormalize($normalized, 'Person'); var_dump($data); Результат работы кода: array(1) { 'educations' => array(2) { [0] => array(1) { 'id' => int(1) } [1] => array(1) { 'id' => int(2) } } } /Users/roman/Projects/33slona/mortgage/mortgage_backend/bin/test.php:76: class Person#19 (1) { protected $educations => array(2) { [0] => array(1) { 'id' => int(1) } [1] => array(1) { 'id' => int(2) } } } Как десериализовать массив в коллецию Education[] внутри свойства объекта? Кто-то решал такие проблемы? Подскажите как?

Константин
24.08.2017
10:11:22
Написать кастомный денормалайзер?

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