У меня есть концептуальная проблема, связанная с классами PHP и обработкой ошибок. Ниже приведен базовый класс, демонстрирующий мою проблему.
Существует функция для создания записи базы данных с именем "domain_create".Эта функция вызывает вторичную функцию, чтобы убедиться, что создаваемый домен еще не существует в таблице базы данных.
В прошлом я всегда использовал true или false, чтобы отразить, если функция нашла запись, но это создает недостаток в моей логике. Записи вставляются, когда функция domain_lu возвращает false, однако это следует делатьесли обнаружена ошибка, например, ошибка выбора?Возврат false приведет к тому, что функция create поверит, что ничего не найдено, и продолжит процесс создания ..
Мой вопрос: как должно отражаться несколько состояний в этом сценарии?Есть ли «лучшая практика» для этого сценария?
<?php
require_once('auth.base.class.php');
require_once('mysql.class.php');
class auth extends base
{
public function __construct()
{
parent::__construct();
}
/*
* User
*/
public function domain_create($args='')
{
if ( domain_lu($args['dname']) === FALSE )
{
return $error['Domain already in use'];
}
}
/*
* Domain
*/
private function domain_lu($dname)
{
$sql = "SELECT name FROM domain WHERE name = '$dname'";
$this->_mysql->SQLQuery($sql);
if ($this->_mysql->numRow() > 0) return true;
else return false;
}
}
?>