Я немного не уверен, правильно ли задавать такой вопрос здесь, поскольку это может быть скорее стандартом кодирования, чем проблемой.
Я работаю в команде и поспорил с другим членом о том, какизвлекать столбцы в запросах доктрины.Он сказал, что мы должны выбирать все столбцы по их именам при извлечении записи, в то время как я поддерживаю выборку только полной строки и только необходимых столбцов.
Я покажу примеры наших версий кода:
Моя версия:
public function getRecord($fromDate, $toDate)
{
$query = $this->createQueryBuilder('table')
->andwhere('table.sendFrom <=:sendFrom')
->andwhere('table.sendTo >=:sendTo')
->setParameter('sendFrom', $fromDate)
->setParameter('sendTo', $toDate)
->getQuery();
return $query->getResult();
}
Их версия:
public function getRecord($fromDate, $toDate)
{
// Sorry had to hide column names
$query = $this->createQueryBuilder('table')
->select('table.id,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.sendFrom,table.sendTo,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,'
. 'table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.column_1,table.sendTo,'
. 'table.sendFrom')
->andwhere('table.sendFrom <=:sendFrom')
->andwhere('table.sendTo >=:sendTo')
->setParameter('sendFrom', $fromDate)
->setParameter('sendTo', $toDate)
->getQuery();
return $query->getResult();
}
Пока я считаю свою версию более перспективной,если мы добавим новый столбец в таблицу, нам не нужно будет добавлять имя нового столбца во все запросы, их аргумент в том, что их версия более безопасна и быстра.Когда я попросил их предоставить доказательства, они отказались.
Я ищу ваши мнения по поводу:
- Прав ли я или нет в своем аргументе.
- Если я прав, то какое доказательство / аргумент я могу представить команде