Symfony Модели (встроить логику)

scorpion-ds

Новичок
Есть несколько моделей "товары", "страницы" и "посты (блога)", для их работы нужен ярлык (фрагмент для URL), который должен работать по шаблону "[0-9a-zA-Z_\-]", он или задается вручную или формируется автоматически на основании заголовка.

Где правильно разместить "транслит" заголовка:
- в самой модели, но тогда его надо во всех трех вставлять один и тот же код (сейчас сделано именно так);
- делать все эти действия в контроллере;
- другой вариант ...
 

scorpion-ds

Новичок
Спасибо, сейчас гляну, я до этого "главу" с событиями пропустил ...
 

scorpion-ds

Новичок
В Sonata нашел предусмотренное событие "sonata.admin.event.persistence.pre_update", событие будет срабатывать для любого сохраняемой сущности, я так понимаю придется ставить условие, что бы определить какой передается параметр (с каким объектом сущности), ну или копать в сторону расширение админского класса CRUD, отвечающего только за нужную сущность и там уже самому делать вызов события.

Наверно так и не правильно делать, но нельзя ил из подписчика обращаться к контейнеру?

Если код разрабатывается свой, то я так понимаю "отправку события" нужно размещать в контроллере?
 

scorpion-ds

Новичок
Это интересно, книгу банды 4-х я действительно не читал, читал пару лет назад "шаблоны проектирование в PHP", про observer вообще не знал ..., вот еще нашел:
http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html - думаю это ближе к доктрине

Сегодня я занят другим проектом, завтра вернусь к изучению.
 

keltanas

marty cats
scorpion-ds, не, ну ты даешь... я тебе дал ссылку на готовый рабочий код. А ты какие-то события сонаты смотришь...
 

scorpion-ds

Новичок
keltanas, мне же его надо еще как-то прикрутить к Sonata, а в сторону событий решил пойти потому, как давно хотел разобраться с ними.
 

keltanas

marty cats
Тебе надо не к сонате прикручивать, а к сущности. При чем здесь вообще соната?
Единственные события, которые тебе нужны, это эти http://odiszapc.ru/doctrine/events/
Но, в том примере уже все реализовано. Разберись, блин, как он работает.
Кроме нормальной транслитерации. Но, это уже сам.
 

scorpion-ds

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

У меня есть репозиторий (Doctrine) для сущности, в нем метод который возвращает список согласно фильтрации и сортировки, фрагмент кода для фильтрации и сортировки одинаковый для всех подобных методов (где нужно получить список в табличном виде), сейчас он используется только в двух репозиториях, но это только пока.

Можно ли его каким-то образом отделить от конкретного репозитория и сделать, что-то вроде сервиса который можно вызывать в разных репозиториях?
 
Сверху