Я использую DbSimple, но есть некоторый код, который я мог бы записать в другой модуль. Вот его код:
<code><?php
require_once 'config.php';
require_once 'DbSimple/Generic.php';
class MysqlWorker
{
private static $instance = NULL;
public function getInstance()
{
if( self::$instance == NULL )
{
self::$instance = new MysqlWorker();
}
return self::$instance;
}
private function __construct()
{
self::$instance = DbSimple_Generic::connect( 'mysql://'.MYSQL_USER.':'.MYSQL_PASS.'@'.MYSQL_HOST.'/'.MYSQL_DB.'' );
self::$instance->setErrorHandler( 'mysqlErrorHandler' );
self::$instance->query( "SET NAMES 'utf8'" );
}
private function mysqlErrorHandler( $message, $info )
{
if ( !error_reporting()) return;
echo "Database error: $message<br><pre>";
print_r($info);
echo "
";
выход();
}
приватная функция __clone () {}
}
?>
Когда я добавил код в конструктор класса:
var_dump( self::$instance );
Я получил:
объект (DbSimple_Mysql) # 2 (17) {...}
Итак, там все ясно.
Но когда я использую код в другом месте:
require_once 'modules/mysql_worker.php';
var_dump( MysqlWorker::getInstance() );
Результат:
объект (MysqlWorker) # 1 (0) {}
Почему MysqlWorker :: getInstance объект пуст?