Замена AppModel в Cakephp3

Я хотел бы реализовать функцию autoslug для двух моделей в CakePHP3 и использовать beforeSave-обратный вызов для того, что работает нормально. Однако структура slug немного отличается от Inflector::slug, поэтому я написал небольшую функцию для другой структуры, которая, наконец, приводит к моему вопросу.

В Cake2 я бы поместил эту вспомогательную функцию в AppModel, которой больше не существует. Как лучше всего это сделать сейчас? Поведение (которое кажется немного большим для 2 строк кода) или class AppTable extends Table или ..?


person harpax    schedule 17.10.2014    source источник
comment
Что ж, оба будут делать это, и причины выбора одного над другим в основном связаны с личными предпочтениями и мудростью вуду, поэтому вопрос имеет тенденцию быть немного OT на SO. Лично я, вероятно, пошел бы с поведением.   -  person ndm    schedule 17.10.2014
comment
Как и в любой версии торта до 3.0 :) См. github.com/dereuromark/cakephp-tools/blob/cake3/src/Model/ для версии 3.0.   -  person mark    schedule 18.10.2014
comment
Спасибо всем за ответы. Слизень был просто примером. Я немного скучаю по AppModel, но опять же, поведение имеет больше смысла и, вероятно, более легковесно.   -  person harpax    schedule 18.10.2014
comment
@mark действительно хорошо! :)   -  person harpax    schedule 18.10.2014


Ответы (1)


Сделайте это поведением и используйте его там, где это необходимо, вместо того, чтобы помещать его в класс супермодели. Если вы поместите это в плагин и репозиторий, вы можете просто добавить свой плагин в качестве пакета через композитор для каждого приложения, которому нужен этот плагин.

person floriank    schedule 17.10.2014