redhat2
سه شنبه 17 بهمن 1391, 12:02 عصر
سلام من این mvc را نوشتم : ولی نیدونم چرا تویه صفحه ی index وقتی میخوام به کلاس Database دسترسی پیدا کنم میگه که کلاس شما وجود ندارد . کد را پیوست کردم .
index.php
require_once 'libs/config.php';
require_once 'libs/autoloader.php';
$name = Database::getInstnace();
config.php :
class Config {
public function __construct() {
return array(
'path' => array(
'path_home' => 'http://localhost/mvc',
'path_controller' => 'controllers',
'path_model' => 'model',
'path_view' => 'views',
'path_libs' => 'libs',
'path_directory' => DIRECTORY_SEPARATOR
),
'db' => array(
'db_local' => 'localhost',
'db_user' => 'root',
'db_pass' => '',
'db_name' => 'mvc'
)
);
}
}
database :
<?php
class Database {
protected $_config;
public static $_connect;
public static $_getInstance;
function __construct() {
$this->_config = new Config();
}
function _connect() {
self::$_connect = new PDO('mysql:local=' . $this->_config['db']['db_local'] . ';dbname=' . $this->_config['db']['db_name'] . '',
$this->_config['db']['db_user'],
$this->_config['db']['db_pass']);
return self::$_connect;
}
public static function getInstance() {
if (!isset(self::$_getInstance) || self::$_getInstance instanceof Database) {
self::$_getInstance = new Database();
}
return self::$_getInstance;
}
}
?>
autoloader.php :
<?php
class Autoloader {
private $_config = array();
public function __construct() {
$this->_config = new Config();
}
public static function autoload($class)
{
$home = $this->_config['path']['path_home'];
$ds = $this->_config['path']['path_directory'];
if(file_exists($home . $ds . $this->_config['path']['path_libs'] . $ds . $class . '.php'))
{
require_once $home . $ds . $this->_config['path']['path_libs'] . $ds . $class . '.php';
}
}
}
spl_autoload_register(array('Autoloader','autoload '));
?>
تصویر ارور را هم پیوست کردم .
index.php
require_once 'libs/config.php';
require_once 'libs/autoloader.php';
$name = Database::getInstnace();
config.php :
class Config {
public function __construct() {
return array(
'path' => array(
'path_home' => 'http://localhost/mvc',
'path_controller' => 'controllers',
'path_model' => 'model',
'path_view' => 'views',
'path_libs' => 'libs',
'path_directory' => DIRECTORY_SEPARATOR
),
'db' => array(
'db_local' => 'localhost',
'db_user' => 'root',
'db_pass' => '',
'db_name' => 'mvc'
)
);
}
}
database :
<?php
class Database {
protected $_config;
public static $_connect;
public static $_getInstance;
function __construct() {
$this->_config = new Config();
}
function _connect() {
self::$_connect = new PDO('mysql:local=' . $this->_config['db']['db_local'] . ';dbname=' . $this->_config['db']['db_name'] . '',
$this->_config['db']['db_user'],
$this->_config['db']['db_pass']);
return self::$_connect;
}
public static function getInstance() {
if (!isset(self::$_getInstance) || self::$_getInstance instanceof Database) {
self::$_getInstance = new Database();
}
return self::$_getInstance;
}
}
?>
autoloader.php :
<?php
class Autoloader {
private $_config = array();
public function __construct() {
$this->_config = new Config();
}
public static function autoload($class)
{
$home = $this->_config['path']['path_home'];
$ds = $this->_config['path']['path_directory'];
if(file_exists($home . $ds . $this->_config['path']['path_libs'] . $ds . $class . '.php'))
{
require_once $home . $ds . $this->_config['path']['path_libs'] . $ds . $class . '.php';
}
}
}
spl_autoload_register(array('Autoloader','autoload '));
?>
تصویر ارور را هم پیوست کردم .