Сергей
Какую?
<argument type="service" id="logger" on-invalid="null"/>
Сергей
https://symfony.com/doc/current/service_container/optional_dependencies.html#setting-missing-dependencies-to-null
artem
Сейчас мозг сварится) кто-то делал авторизацию через разные сущности с lexik jwt? Например один вход для юзверя, другой для админа
Maxim Kainov
Вадим
Maxim Kainov
Maxim Kainov
Упрощение
Maxim Kainov
Айдишник уникальный должен быть
Anonymous
Говно, классы можно наследовать от одного абстрактного "пользователь", но администратор и клиент (юзер) должны быть отдельными сущностями
Вадим
Anonymous
Ну, общие какие-то переменные могут быть
Anonymous
Можно и не наследовать, бога ради
Вадим
Maxim Kainov
Anonymous
Maxim Kainov
Как ты это реализуешь
Anonymous
Anonymous
Но это другой вопрос
Вадим
Хорошо, проперти
И пропертей видно быть не должно. Только методы, а как там внутри все устроено, вот вообще не должно волновать клиентский код.
Вадим
Anonymous
Anonymous
Или ты про видимость уже перескочить успел
Anonymous
Ну тогда да, ты прав, видны только методы
Maxim Kainov
Вадим
artem
Вообще не в ту степь ушли) сейчас бы реализацию по jwt найти, или хотя бы схему понять. Я все ещё думаю что можно разрулить на ролях
Вадим
Вадим
Maxim Kainov
Зачем тогда тебе сущность и orm?
Сущность у тебя может быть структурой, с которой работают другие объекты. Но геттеры сеттеры лучше наверное все таки сделать на всякий случай )
Вадим
Maxim Kainov
Dmitry
Просто красавчик! Думал сутки хоть что-то похожее буду искать
только в статье для обычных форм авторизации
с jwt тебе это в принципе нафиг не нужно
создай свой Authenticator
в getUser
$data = $this->jwtEncoder->decode($credentials);
if($data['role'] === 'admin') {
$user = $this->em->getRepository(Admin::class)
->find($id);
} else {
$user = $this->em->getRepository(User::class)
->find($id);
}
return $user;
соответственно при логине в токен надо добавить соответствующий role
Юра
Можно сделать несколько юзер провайдеров
Юра
Один к примеру memory другой entity
Юра
Через chain provider
Юра
Или вопрос не о том?
Сергей
вопрос не ясен)
Daria
можно добавить геттеры и обозначить их аннотацией internal (https://docs.phpdoc.org/latest/references/phpdoc/tags/internal.html), если найду первоисточник то скину
Dmitry
а на итоговую коллекцию тоже нет геттера?
Dmitry
(в качестве мозгового штурма) а если через рефлексию сделать проперти пабликами?
Вадим
Если есть такой метод, значит и есть метод который эти данные использует.
Вадим
Ну т.е. я предполагаю, что есть метод который по некоему значению выдает цену исходя из диапазонов. Вот его и нужно вызывать в тесте
Вадим
Тоесть на эти диапазоны никакой логики нет?
Вадим
Да при чем тут чтение, эти диапазоны которые сохранены где-то используются кроме как для отображения?
Вадим
Вадим
Вадим
Вадим
Но кмк это фигня
Dmitry
Запрос в базу тогда ;)
как вариант. не юнит, а функциональный тест
сфлушить результат, прочитать из бд, сравнить с эталоном
Dmitry
но вместо бубнов проще сделать геттер)))
Кирилл
Вообще в phpunit-е где-то есть методы тестирования закрытых свойств, но их в версии 9 кажется уже выпилили.
artem
Привет. А кто-то работал с knp translation behavior? Вроде бандл настроил, все работает. Вот пока хз как отдавать сущности с текущей локалью. Мб не нашёл ещё доки
Юра
artem
Юра
Ну я так понял оно по дефолту и так отдает в текущей локали
Юра
https://github.com/KnpLabs/DoctrineBehaviors/blob/master/src/Provider/LocaleProvider.php
Юра
Как установить текущую локаль в симфе читай доку симфы
artem
"id": 53,
"title": "Miss",
"translations": [
{
"id": 56,
"title": "ru тайтл",
"locale": "ru"
},
{
"id": 55,
"title": "укр тайтл",
"locale": "ua"
}
],
"new_translations": null,
"current_locale": "ua",
"default_locale": "ua"
что то не верится
insystema
Добрый день. Установил Sf4.4+sonata_admin3.65 locale 'ru'. В Admin классе в методе configureListFields настроил поле даты как editable. Окно календаря работает, но отображается на англ.яз. Как установить для окна календаря:
1) отображение надписей на русском языке;
2) заданную (не текущую) дату.
Подробности: https://groups.google.com/d/msg/sonata-users/lqaNcqXjPA8/YuAo0FrRAgAJ
Спасибо
insystema
insystema
Состав пакета sonata admin-bundle
insystema
Из примеров editable поля в List View в инете нашел очень далекое https://gitmemory.com/issue/sonata-project/SonataAdminBundle/5767/559738217
по образу которого с помощью
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
{% block field_span_attributes %}
{{ parent() }}
data-clear="Х очистить"
{% endblock %}
в окне календаря изменил надпись с "X clear" на "Х очистить"
artem
сегодня день локализации)) добрался до переводов ассертов и тоже трабла. когда в translation.default_locale меняю языки то ошибки переводятся, добавил листенер чтобы задавать локацию
$event->getRequest()->setLocale($locale); с доков
все равно отдает с default_language. мб ктосталкивался?
Сергей
у меня такой код в сабскрайбере
public function setLocale(RequestEvent $event): void
{
$request = $event->getRequest();
$locale = $request->getPreferredLanguage();
if ($locale !== null) {
$request->setLocale($locale);
}
}
работает нормально
artem
да, нашел.видимо старую доку читал, заменил листенер на субскрайбер и завелось
insystema
спс, попробую
artem
https://symfony.com/doc/current/session/locale_sticky_session.html
для 5.1 точно работает
Maxim Kainov