Я не знаю, как реализовать логи c в symfony - PullRequest
1 голос
/ 15 апреля 2020

Я добавил status к своему объекту задачи, и я буду знать, какой может быть лучший способ поставить логи c для установки этого status, прежде чем отправить его на фронт. Должно быть в TaskController. Должны быть на Сервисах? Я так не думаю, но я не уверен. Я поставил образец лога c, который я хочу добавить, чтобы установить статус:

private function loadStatus(Task $task): string
    {
        $object = new \stdClass();

        $object->isDone = $task->isTaskDone();
        $object->isLate = date("Y-m-d") > $task->getDateStart();
        $object->isScheduled = date("Y-m-d") < $task->getDateStart() && !$task->isTaskDone();


        if ($object->isDone) {
                return 'task is done';
        }

        if ($object->isLate) {
            return 'task is late';
        }

        if ($object->isScheduled) {
            return 'task is scheduled'
        }
    }

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 15 апреля 2020

Вы можете поместить логи c в самой сущности в качестве дополнительных методов; в конце концов, это поведение сущности, следуя рекомендациям doctrine .

class Task 
{
    const STATE_DONE = 'done';
    // Other constants ommited

    public function isScheduled()
    {
        return date("Y-m-d") < $this->getDateStart() && !$this->isTaskDone();
    }

    public function getStatus()
    {
        if ($this->isTaskDone()) {
                return self::STATE_DONE;
        }
        // Rest ommited 
    }
}

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

{{ task.status | trans }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...