Переписан автолоад
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
|
||||
|
|
@ -50,21 +41,15 @@ class App
|
|||
self::$config = is_array($config) ? $config : array();
|
||||
self::parseUrl();
|
||||
|
||||
//var_dump(self::$controller, self::$action);die;
|
||||
|
||||
if (self::getConfig('DB'))
|
||||
{
|
||||
try
|
||||
{
|
||||
$confDB = self::getConfig('DB');
|
||||
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)
|
||||
{
|
||||
include_once $filename;
|
||||
}
|
||||
} catch (PDOException $e)
|
||||
{
|
||||
}
|
||||
catch (PDOException $e)
|
||||
{
|
||||
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)
|
||||
{
|
||||
$dirname = dirname(__FILE__) . '/../';
|
||||
$fileName = strpos($className, 'Controller') ? $dirname . 'ground/controllers/' . $className . '.php' : $dirname . 'ground/classes/' . strtolower($className) . '.php';
|
||||
if (file_exists($fileName))
|
||||
include $fileName;
|
||||
else
|
||||
App::error404 ('load class '.$className);
|
||||
$dirs = array('classes','models','controllers');
|
||||
|
||||
$loaded = flase;
|
||||
foreach ($dirs as $dir) {
|
||||
$fileName = dirname(__FILE__) . '/../ground/' . $dir. '/' . $className . '.php';
|
||||
|
||||
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';
|
||||
|
|
|
|||
Loading…
Reference in New Issue