
Aleh
04.05.2017
13:44:11
вообще для начинающих мб даж хорошая преза
ща досмотрю всю)
но вообще с сеттерами не ок
а дальше даж сеттеры убирает, ну т.е. вообще с нуля показал)

Google

Sergey
04.05.2017
13:51:15
видео https://www.youtube.com/watch?v=rjtbCyacJas&t=160s

Aleh
04.05.2017
13:51:51
спс

?
04.05.2017
14:47:59
спс

Sergey
04.05.2017
22:56:05
чет я загнался...
есть ли смысл делать генерируемые гидраторы? ну то есть вообще что б по жесткому
что бы на каждый query можно было сгенерить оптимальный гидратор
с инлайнингом всяких мелких функций
типа вместо
$identity = $this->identityHash($row, $alias)
делать
$identity = "{$row['id_3']} {$row['type_4']}";
хотя ладно, сначала "медленный" гидратор напишу а там будет видно

Dinar
05.05.2017
07:29:41
А напомните пожалуйста, какая там проблема с сонатой и симфони 3?

Pavel
05.05.2017
07:31:07

Aleksandr
05.05.2017
07:33:13
а что за проблема с сонатой и фосюзером?
я уже два дня долбаюсь с проблемой слетания авторизационного хэша

Google

Sergey
05.05.2017
07:34:58
кажется sonata-user использует fos версии 1.* и поэтому на версию 3 не поставится. Но обещали как только fos 2 выйдет стабильный, это поправят. Не знаю поправили ли

Dinar
05.05.2017
07:53:41
А если не использую Фос Юзер бандл, то соната норм будет пахать на тройке?

Алексей
05.05.2017
08:23:41
Небольшой опрос есть.
Для констант или свойств классов, где значение - FQCN что используете?
1. SomeClass::class
2. '\Vendor\Namespace\SomeClass'

Dinar
05.05.2017
08:26:04

Алексей
05.05.2017
08:27:48
Просто забавный момент в том, что, если мне память не изменяет, в первом варианте автолоад срабатывает даже если больше нигде обращений к классу не будет.
В Symfony, кстати, много где используются именно строки с именем. Хотя мне кажется, что это не ради избегания автолоада, а ради обратной совместимости с PHP старым.

Dinar
05.05.2017
08:28:47
Ну наверно да :) Я не интересовался. По логике наверно да. Он же должен его неймспейс достать.

Алексей
05.05.2017
08:30:19
Ну вот мне интересно, что будет в Symfony 4. Я не уверен, что они оставят строки, т.к. оверхед не особый должен быть. Да и в продакшене оно всё равно скомпилено будет.

.avolver
05.05.2017
08:32:50
Да, sonata-admin — (хорошо?) работает на 3.

Алексей
05.05.2017
08:33:23
Соната сама по себе да.
В смысле, SonataAdmin.

Dinar
05.05.2017
08:38:35
Ок. Спасибо :)
Какие у вас, кстати вообще впечатления на данный момент о 4 симфони?

Алексей
05.05.2017
08:39:13
Хочу пощупать на выходных, если время будет.
По словам Фабьена - круто. Но надо потрогать.

Dinar
05.05.2017
08:42:03
Теперь все будет по бест практис? :)
Один бандл и в нем домены.
да?

Sergey
05.05.2017
09:03:49
я больше 3.3 жду, ништяков с контейнером

Алексей
05.05.2017
09:15:05
По ссылке что ты прислал - вторая часть того, что ты хочешь сделать - аутентификация (а не авторизация, кстати).
До этого тебе ещё надо клиенту токен выдать.

Google

Dmitry
05.05.2017
09:16:04
О, только проверил - вторая часть отлично работает
Да, сейчас нужно сделать чтобы выдавался токен

Алексей
05.05.2017
09:16:37
Токен, соответственно, надо выдавать там, где не требуется аутентификация :)

Sergey
05.05.2017
09:17:32

Dmitry
05.05.2017
09:17:40
а нету случайно способа, чтобы посылал запрос на /login_check с логином и паролем, а в ответ выдавался токен?

Sergey
05.05.2017
09:17:54
а что до "стабильности" - они умудрились стабильную 3.2.7 сломать

Sergey
05.05.2017
09:17:54

Алексей
05.05.2017
09:18:24

Sergey
05.05.2017
09:18:45
по коду уже именую сервисы по FQCN

Dmitry
05.05.2017
09:18:53
Может добавить листенер на onAuthenticationSuccess типа такого, и возвращать там респонс

Алексей
05.05.2017
09:20:17
А что тебе мешает сделать обычный экшен в пределах своего API, который отдаст токен? Без листенеров?

Dmitry
05.05.2017
09:21:39
абсолютно ничего))) но хотелось бы сделать максимально «правильно»
сейчас попробую по http://symfony.com/doc/current/security/guard_authentication.html - скорее всего получится, спасибо)

Dmitry
05.05.2017
09:40:45
Будет ли корректно, если я репозиторий сделаю в виде сервиса (реализует UserProviderInterface)
api.user.repository:
class: AppBundle\Repository\UserRepository
factory: ['@doctrine', getRepository]
arguments: ['AppBundle\Entity\User']
и в security.yml добавлю провайдер по id'шнику?
providers:
api_user_provider:
id: api.user.repository

Алексей
05.05.2017
09:45:10
Ну не то чтобы шибко хорошо, конечно. Всё же UserProvider по-хорошему ничего, кроме своей узкой задачи уметь не должен.

Dmitry
05.05.2017
09:50:26
Да вот и думаю: по умолчанию репозиторий для User реализует UserLoaderInterface, а провайдер должен реализовать UserProviderInterface
Чтобы не дублировать код, можно репозиторий реализовать с интерфейсом UserProviderInterface и далее его юзать
Но то, что провайдер имеет доктриновский слой - не очень хорошо в какой-то степени..
Но опять же, при создании аутентификации - удобно искать пользователя по токену используя провайдер
Да, пусть будет так...
Просто интересно:
providers:
api_user_provider:
id: api.user.repository
можно ли так?

Алексей
05.05.2017
09:52:07
Что мешает реализовать простой провайдер и дать ему репозиторий как зависимость?
Кстати, возвращаясь к теме выше про ClassName::class и автолоадер, я был неправ:
https://3v4l.org/s5U7V

Dmitry
05.05.2017
09:53:39
Может так и лучше.. Спасибо за совет!

Алексей
05.05.2017
09:55:32

Dinar
05.05.2017
09:57:06
Ну это тогда просто замечательно :)

Google

Dmitry
05.05.2017
09:57:10
да, к примеру я всегда юзаю getRepository(User::class) вместо getRepository('AppBundle:User')

Dinar
05.05.2017
09:57:23
Я вдруг понял. А реально неймспейс же уже на месте есть :)
Я тоже.
Если есть вариант делать стандартно или как-то отдельно в стиле фрейма, я выбираю стандартный.

Sergey
05.05.2017
09:59:55
еще удобненько container->get(UserService::class) делать

Dinar
05.05.2017
10:01:45
А так можно кстати?

Admin
ERROR: S client not available

Dinar
05.05.2017
10:01:51
Он все сделает?

Sergey
05.05.2017
10:02:06
в 3.3 версии сервисы по FQCN регать нужно

Dinar
05.05.2017
10:02:11
Или конфиг в аннотациях должен быть

Sergey
05.05.2017
10:02:19
поэтому имя класса такое же как и айдиха
вот и умеет)

Dmitry
05.05.2017
10:02:29
м... я думаю не стоит так делать, лучше по алиасу и только в контроллерах
в других местах - внедрение зависимости

Dinar
05.05.2017
10:02:30
Но в yml все равно имя будет по старому?

Алексей
05.05.2017
10:02:47

Dinar
05.05.2017
10:02:53

Sergey
05.05.2017
10:03:19
если уж про внедрение зависимостей то ->getRepository тоже лучше не делать

Dmitry
05.05.2017
10:03:28
@Gaaarfild класс сервиса может менятся

Sergey
05.05.2017
10:03:29

Dinar
05.05.2017
10:03:47
А ну я понял.

Google

Sergey
05.05.2017
10:03:52

Dinar
05.05.2017
10:03:57
Но я имею ввиду в 3.3 уже нельзя будет как алиас писать?

Sergey
05.05.2017
10:04:02
можно

Dinar
05.05.2017
10:04:11

Dmitry
05.05.2017
10:04:12
это и есть же алиас App\UserService

Dinar
05.05.2017
10:04:20
Я думал ты про AppBundle:User

Dmitry
05.05.2017
10:04:36
не))
ктстати, написал отдельно провайдер, никакого дубляжа, все довольно таки лаконично
https://pastebin.com/E97eUvhL

Алексей
05.05.2017
10:05:57

Sergey
05.05.2017
10:06:35

Алексей
05.05.2017
10:07:03
Ну, то есть, алгоритм получается такой:
Если сервис в единственном экземпляре - юзаем FQCN. Если нет - алиас.

Sergey
05.05.2017
10:07:44
угу. но вообще у меня таких сервисов можно на пальцах пересчитать

Ivan
05.05.2017
10:07:52
чуваки, а кто из вас с помощью capistrano деплоит симфони приложухи?
или все деплоером пользуются?

Алексей
05.05.2017
10:08:35

Dmitry
05.05.2017
10:08:36
phing, capistrano..

Алексей
05.05.2017
10:09:12

Dinar
05.05.2017
10:09:41