Symfony 3 - организация хранилища классов и функций - PullRequest
0 голосов
/ 05 апреля 2019

В моем проекте Symfony 3 у меня есть несколько сущностей и репозиторий.К сожалению, в файл репозитория я могу добавить только функции get или getAll.Я хочу добавить, например, функцию checkBlocked (), чтобы проверить, заблокирован ли пользователь.Где я должен добавить эту функцию?В файл репозитория или куда-то еще?

1 Ответ

1 голос
/ 05 апреля 2019

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

Файл Entity в основном является объектом данных базы данных, также называемым абстракцией. Это сделано для того, чтобы независимо от того, какой тип базы данных мы используем, у нас есть способ хранить ее единообразно, чтобы она не зависела от базы данных, поэтому идеальный пример того, что я бы там поместил, был следующим:

Предположим, у нас есть сущность, которая имеет поле имени и фамилии:

    /**
     * @return mixed
     */
    public function getFirstName()
    {
        return $this->firstName;
    }

    /**
     * @param mixed $firstName
     */
    public function setFirstName($firstName): void
    {
        $this->firstName = $firstName;
    }

    /**
     * @return mixed
     */
    public function getLastName()
    {
        return $this->lastName;
    }

    /**
     * @param mixed $lasttName
     */
    public function setLastName($lastName): void
    {
        $this->lastName = $lastName;
    }

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

$user->getFirstName() . ' ' . $user->getLastName();

так почему бы просто не добавить метод, чтобы сделать это для нас?

public function getFullName()
{
    return $this->first_name . ' ' . $this->last_name;
}

Другими словами, похоже, что метод checkBlocked, о котором вы говорите, является своего рода системой банов. Я думаю, у вас есть столбец базы данных, который называется заблокирован, который является крошечным int. Если это действительно так, я бы сказал, что он принадлежит сущности.

public function getIsUserBlocked()
{
    // return your column here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...