Работа с базами данных в PHP


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

Пристально глядя на эту функцию я писал (имел в виду, чтобы дать мне быстрый взгляд поверх дБ убедиться, что ничего не подписано, что должно быть подписано):

$db = Database::instance();
$tables = array();
$result = $db->query('SHOW TABLES');
foreach($result as $table)
{
        $create = $db->query("SHOW CREATE TABLE `".current($table)."`");
        $tables[current($create->current())] = end($create->current());
}
echo var_dump($tables);

Я вижу, кое - $столы и $таблица подобные вещи, но $столы - это не каждый $таблицы, так что это может быть сложно.

Я склонен называть все результаты запроса $результат только если есть риск конфликта имен.

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

Я слишком придирчивые? Этот код выглядит, как она была написана любительский/плохой программист?



523
6
задан 11 мая 2011 в 11:05 Источник Поделиться
Комментарии
2 ответа

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

Например ...

/*
* Look quickly over the database to make sure nothing else is signed that ought to be unsigned.
* TODO: Explain why unsigned is better than signed…
*/

$db = Database::instance();
$all_tables = array();
$result = $db->query('SHOW TABLES');
foreach($result as $unique_table)
{
$show_created_table = $db->query("SHOW CREATE TABLE `".current($unique_table)."`");
$all_tables[current($show_created_table->current())] = end($show_created_table->current());
}
echo var_dump($all_tables);

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

7
ответ дан 12 мая 2011 в 07:05 Источник Поделиться

Лично я считаю, что запрос к БД возвращает объект запроса, который должен затем выставили результата() и число_строк() и другие методы. Имо не нравится видеть такие вещи, как $создать->ток(); - что на самом деле я не уверен, что понимаю... что именно вам достичь с текущим методом? Почему метод запрос к БД возвращаю то, что выглядит как массив, при первом использовании, но потом объект при использовании в цикле?

0
ответ дан 26 мая 2011 в 12:05 Источник Поделиться