Переписан автолоад
This commit is contained in:
parent
11d488fd78
commit
4faf9477bb
|
|
@ -31,15 +31,6 @@ class App
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Загружает класс контроллера.
|
|
||||||
* @param string $controllerName
|
|
||||||
*/
|
|
||||||
private static function loadController($controllerName)
|
|
||||||
{
|
|
||||||
include_once 'controllers/' . strtolower($controllerName) . '.php';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Основной метод для запуска приложения.
|
* Основной метод для запуска приложения.
|
||||||
* @param array $config
|
* @param array $config
|
||||||
|
|
@ -50,21 +41,15 @@ class App
|
||||||
self::$config = is_array($config) ? $config : array();
|
self::$config = is_array($config) ? $config : array();
|
||||||
self::parseUrl();
|
self::parseUrl();
|
||||||
|
|
||||||
//var_dump(self::$controller, self::$action);die;
|
|
||||||
|
|
||||||
if (self::getConfig('DB'))
|
if (self::getConfig('DB'))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$confDB = self::getConfig('DB');
|
$confDB = self::getConfig('DB');
|
||||||
self::$DB = new PDO('mysql:host=' . $confDB['host'] . ';dbname=' . $confDB['dbname'].';charset=utf8;', $confDB['user'], $confDB['password']);
|
self::$DB = new PDO('mysql:host=' . $confDB['host'] . ';dbname=' . $confDB['dbname'].';charset=utf8;', $confDB['user'], $confDB['password']);
|
||||||
|
}
|
||||||
foreach (glob(App::getBasedir() . "models/*.php") as $filename)
|
catch (PDOException $e)
|
||||||
{
|
{
|
||||||
include_once $filename;
|
|
||||||
}
|
|
||||||
} catch (PDOException $e)
|
|
||||||
{
|
|
||||||
echo $e->getMessage();
|
echo $e->getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
// Базовый синглтон
|
|
||||||
|
|
||||||
abstract class Singleton
|
|
||||||
{
|
|
||||||
|
|
||||||
protected static $_instance;
|
|
||||||
|
|
||||||
private function __construct(){
|
|
||||||
/**
|
|
||||||
* При этом в функцию можно вписать
|
|
||||||
* свой код инициализации. Также можно
|
|
||||||
* использовать деструктор класса.
|
|
||||||
* Эти функции работают по прежднему,
|
|
||||||
* только не доступны вне класса
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private function __clone(){
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Статическая функция, которая возвращает
|
|
||||||
* экземпляр класса или создает новый при
|
|
||||||
* необходимости
|
|
||||||
*
|
|
||||||
* @return SingletonTest
|
|
||||||
*/
|
|
||||||
public static function getInstance() {
|
|
||||||
if (null === self::$_instance) {
|
|
||||||
self::$_instance = new self();
|
|
||||||
}
|
|
||||||
return self::$_instance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -4,12 +4,23 @@
|
||||||
|
|
||||||
function __autoload($className)
|
function __autoload($className)
|
||||||
{
|
{
|
||||||
$dirname = dirname(__FILE__) . '/../';
|
$dirs = array('classes','models','controllers');
|
||||||
$fileName = strpos($className, 'Controller') ? $dirname . 'ground/controllers/' . $className . '.php' : $dirname . 'ground/classes/' . strtolower($className) . '.php';
|
|
||||||
if (file_exists($fileName))
|
$loaded = flase;
|
||||||
include $fileName;
|
foreach ($dirs as $dir) {
|
||||||
else
|
$fileName = dirname(__FILE__) . '/../ground/' . $dir. '/' . $className . '.php';
|
||||||
App::error404 ('load class '.$className);
|
|
||||||
|
if (file_exists($fileName)){
|
||||||
|
$loaded = (bool) include $fileName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$loaded){
|
||||||
|
App::error404 ('load class '.$className);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
include_once dirname(__FILE__) . '/../ground/app.php';
|
include_once dirname(__FILE__) . '/../ground/app.php';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue