Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Каким образом писать лог всех действий пользователей? » 17.04.2017 22:04:11

constb пишет:

если все изменения выполняются через модель, достаточно перехватить её события, некоторые из них выполняются до применения изменений и на них доступны как исходный так и обновлённый набор значений – можно получить какие именно меняются – Model::getDirty() – и записать в лог

А с точки зрения архитектуры? Где лучше производить само логирование, не в контроллере же логику писать. К примеру - создать провайдер "ProjectActivityProvider", в нем вести перехват created, updated и т.д., и там-же производить запись лога?

#2 Re: Laravel 5.x » Каким образом писать лог всех действий пользователей? » 15.04.2017 18:16:52

constb пишет:

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

потом – что делать с логированием изменений не связанных с проектами? что делать с логированием изменений затрагивающих несколько проектов (групповые действия)? мне кажется тут можно придумать что-то более универсальное

Мне нужно лишь реализовать "Активность в проекте". Записывать требуется лишь CRUD операции. Т.е. это будет являться лишь информационной сводкой для владельца/участников конкретного проекта. Групповых действий нет, и по задумке быть не может, также действий по расписанию писать не нужно, лишь действия пользователей. Вот единственное, что следует выделять - какое изменение сделано (прим. Василий изменил поле "название" с "один" на "два" и т.д.). Вот только выдумать, как это лучше сделать - не могу... Возможно есть какие-то готовые решения, приближенные к моей задумке?

#3 Laravel 5.x » Каким образом писать лог всех действий пользователей? » 14.04.2017 18:06:27

StasStas
Ответов: 5

Мне требуется добавить функционал журнала активности - список всех изменений проекта ( такой-то пользователь сделал то-то и так, по всем действиям всех юзеров данного проекта). Все записи хранятся в БД в виде id|project_id|description.

Я пока думаю сделать примерно такой ивент:

        'App\Events\ProjectPropertyChanged' => [
            'App\Listeners\CreatedThingOne',
            'App\Listeners\DeletedThingOne',
            'App\Listeners\UpdatedThingOne',
            'App\Listeners\CreatedThingTwo'
            //и т.д.
        ],

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

Подвал раздела