CodeIgniter: Предотвращение опечаток row_array () и row ()? - PullRequest
1 голос
/ 29 сентября 2011

Дважды я по ошибке использовал row () вместо row_array () при получении результата из одной строки. Обычно он проходит без каких-либо предупреждений. 15-30 минут спустя я наконец замечаю проблему; дох дох!

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

Я случайно использовал:

if ($query->num_rows() > 0) {
    return $query->row();
}

Что вместо этого должно быть:

if ($query->num_rows() > 0) {
    return $query->row_array();
}

Я думал о переопределении метода базы данных row () и добавлении в оператор log_message (), который, по крайней мере, дал бы мне знать (на уровне отладки), что я использую объектный формат вместо гораздо более типичного (для мой код) формат.

1 Ответ

0 голосов
/ 29 сентября 2011

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

Вы можете заметить, что если вы собираетесь вернуть несколько записей, используйте row_array(), для единичной записи используйте функцию row().

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

Переопределение исходной функции является плохой практикой, использование функции row() полезно при извлечении отдельной записи, поэтому не делайте этого.

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