Я подумываю использовать PDO во всех своих будущих Webapp. В настоящее время (используя то, что я узнал из SO до сих пор), то, что у меня есть на моем сайте для обработки соединения с базой данных, является класс Singleton следующим образом:
class DB {
private static $instance = NULL;
private static $dsn = "mysql:host=localhost;dbname=mydatabase;";
private static $db_user = 'root';
private static $db_pass = '0O0ooIl1';
private function __construct()
{
}
private function __clone()
{
}
public static function getInstance() {
if (!self::$instance)
{
self::$instance = new PDO(self::$dsn, self::$db_user, self::$db_pass);
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
}
и еще один файл (functions.php) с функциями, специфичными для контента, которые выглядят точно так же:
function get_recent_activities ()
{
try
{
$db = DB::getInstance();
// --prepare and execute query here, fetch the result--
return $my_list_of_recent_activities;
}
catch (PDOException $e)
{
return "some fail-messages";
}
}
...
означает, что я должен повторить часть try .. catch
во всех функциях.
Мои вопросы:
- Как я могу сделать это более эффективным? (например, не нужно повторять
try..catch
во всех функциях и все же все еще способно возвращать разные "сообщения об ошибке" на каждом из них) - Это уже хорошая практика? Я все еще новичок в PDO и OOP (еще многое предстоит узнать), поэтому (на данный момент) я не вижу никаких недостатков или вещей, которые можно улучшить там.
Извините, если это кажется неясным или слишком длинным. Спасибо заранее.