Size: a a a

2019 November 13

ИЛ

Иван Лещёв in Drupal RU
Мирослав Ли
а мне именно он нужен
а зачем именно?
источник

МЛ

Мирослав Ли in Drupal RU
Иван Лещёв
а зачем именно?
Мне нужно один метод дополнить
источник

AP

Andrey Postnikov in Drupal RU
Мирослав Ли
Я создал access_checker сервис, но у него есть метод, который принимает в себя аргумент RouteMatch. Этот класс мне нужно расширить своими методами. Подскажите, как мне переопределить класс из ядра, чтобы создавался объект моего класса, который экстендил яренный?
Я пока нагуглил только как это сделать с сервисом из ядра, но это не то.
Чекеры - это сервисы, и перекрывать их можно любым вариантом, но метод access() должен оставаться таким, какой он есть
источник

МЛ

Мирослав Ли in Drupal RU
Andrey Postnikov
Чекеры - это сервисы, и перекрывать их можно любым вариантом, но метод access() должен оставаться таким, какой он есть
хорошо. Вот мне нужен RouteMatch дополнить один метод. Не буду же я писать патч для ядра. Наверняка есть какой-то более правильный способ для этого?
Или я ошибаюсь?
источник

AP

Andrey Postnikov in Drupal RU
Мирослав Ли
хорошо. Вот мне нужен RouteMatch дополнить один метод. Не буду же я писать патч для ядра. Наверняка есть какой-то более правильный способ для этого?
Или я ошибаюсь?
Зачем его перекрывать? Какая задача? И посмотри во скольких местах он используется
источник

МЛ

Мирослав Ли in Drupal RU
В методе getParameter приходят как объекты сущностей, так и просто айдишники. Мне нужно сделать так, чтобы всегда приходили сущности. Для этого сделать там проверку и конвертнуть в сущность если нужно.
с current_route_match я так сделал, ибо это сервис, а с этим возникли проблемы.
источник

AP

Andrey Postnikov in Drupal RU
Мирослав Ли
В методе getParameter приходят как объекты сущностей, так и просто айдишники. Мне нужно сделать так, чтобы всегда приходили сущности. Для этого сделать там проверку и конвертнуть в сущность если нужно.
с current_route_match я так сделал, ибо это сервис, а с этим возникли проблемы.
Для этого делаются param converter
источник

ИЛ

Иван Лещёв in Drupal RU
argument_resolver.route_match:
   class: Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
   public: false
источник

ИЛ

Иван Лещёв in Drupal RU
вот этот сервиз надо заменить тогда
источник

ИЛ

Иван Лещёв in Drupal RU
чтоб он отдавал подонка
источник

ИЛ

Иван Лещёв in Drupal RU
public function resolve(Request $request, ArgumentMetadata $argument) {
   yield RouteMatch::createFromRequest($request);
 }
источник

ИЛ

Иван Лещёв in Drupal RU
только смотри не сломай ничего
источник

МЛ

Мирослав Ли in Drupal RU
Andrey Postnikov
Для этого делаются param converter
а это будет для всех роутов работать, не только для кастомных?
источник

AP

Andrey Postnikov in Drupal RU
Иван Лещёв
вот этот сервиз надо заменить тогда
Категорически нет, если параметр не конвертируется в сущность - либо бага в роутинге, либо ошибка в имени параметра
Иначе entity param converter (ядерный) сделал бы всё
источник

ИЛ

Иван Лещёв in Drupal RU
если параметр не конвертируется, то у него тип не стоит
источник

ИЛ

Иван Лещёв in Drupal RU
хотя может и имя не бьётся
источник

AP

Andrey Postnikov in Drupal RU
Мирослав Ли
а это будет для всех роутов работать, не только для кастомных?
Именно так роутинг расширяет и конвертирует параметры
И не нужно костылить
источник

AP

Andrey Postnikov in Drupal RU
Иван Лещёв
если параметр не конвертируется, то у него тип не стоит
Это самый частый баг
источник

МЛ

Мирослав Ли in Drupal RU
Andrey Postnikov
Именно так роутинг расширяет и конвертирует параметры
И не нужно костылить
Так мне получается нужно отлавливать и прописывать там каждый роут параметер, который мне нужно конвертнуть?
источник

ИЛ

Иван Лещёв in Drupal RU
Мирослав Ли
Так мне получается нужно отлавливать и прописывать там каждый роут параметер, который мне нужно конвертнуть?
ух
источник