Соглашение об именовании: единственное и множественное число для классов, описывающих сущности в PHP


Я думаю, что стандартная практика именования таблиц в MySQL заключается в использовании множественных имен.

Классы, ссылающиеся на эти таблицы, также должны быть множественными?

Например, представьте, что у вас есть таблица под названием Пользователи, которая используется для целей аутентификации.

Эта таблица была бы описана в классе сущностей более или менее так, используя доктрину ORM:

namespace Company\BlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="Users")
 */
class Users
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", name="user_id")
     * @ORM\GeneratedValue(strategy="AUTO")
     * 
     * @var integer $userId
     */
    protected $userId;

    /**
     * @ORM\Column(type="string", length="255", name="first_name")
     * 
     * @var string $userName
     */
    protected $userName;
    ...
}

Правильно ли это?

Или класс "Пользователи" должен быть назван в единственном числе ("Пользователь")?

Author: rfc1484, 2011-06-05

4 answers

Класс, представляющий одну строку базы данных (сущность), должен иметь единственное имя. Доктрина 2 поведение по умолчанию заключается в том, чтобы называть таблицы базы данных одинаково. Вы можете перенастроить его в каждой аннотации @Table, если хотите, но я предлагаю вам придерживаться соглашений об именовании доктрины - единственное имя для таблицы базы данных также приемлемо.

 3
Author: Ondřej Mirtes, 2011-06-05 19:41:14

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

 4
Author: Nev Stokes, 2011-06-05 17:46:07

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

 3
Author: Bob Baddeley, 2011-06-05 17:46:49

Я также подписываюсь на использование имен таблиц с единственным именем, потому что строка представляет один элемент таблицы так же, как объект представляет один экземпляр класса. Единственными исключениями могут быть случаи, когда каждая строка таблицы содержит, например, сериализованные (или эквивалентные) элементы, т. Е. "соседи" местоположения.

 0
Author: Jorj, 2011-06-06 07:16:41