К какой модели это относится?

Я часто путаюсь в том, какую модель создавать функции. Позвольте мне попытаться объяснить мою текущую ситуацию на простом вымышленном примере:

у меня есть Log модель, которая содержит все действия в нашем приложении. Я хочу получить активность для конкретного пользователя. Должен ли я создать getActivity($userId) функция в User модель или Log модель?

0

Решение

Почему не оба?

Конечно, главное — избежать дублирования кода, так как это будет трудно поддерживать — и это уродливое решение.

Модель бревна может содержать метод с именем getActivity() который выбирает всю активность (или на основе любых аргументов, необходимых для уровней нумерации страниц и / или журнала). Кроме того, для целей самодокументирования создайте метод с именем getUserActivity($userId) — метод, который, надеюсь, выглядит самоочевидным.

Модель пользователя теперь может содержать метод с именем getActivity() (опять же, с любыми аргументами, необходимыми для нумерации страниц и / или уровней логирования), что в свою очередь вызывает getUserActivity() метод в вашем Журнал модель.

Это самый умный выбор?

Что ж, никогда не существует единого решения для какой-либо проблемы, но что мне нравится в этом решении, так это то, что теперь у вас есть возможность разделить логику для каждой из моделей, но при этом все еще иметь видимую и функциональную связь между ними. Во-вторых, вы знаете, что есть возможность связать объекты User для простого отслеживания активности.

1

Другие решения

Поскольку основной используемой базой данных в вашей функции будет "Log" один, вы должны поместить его в Log Модель.

0

По вопросам рекламы [email protected]