Переписан автолоад

This commit is contained in:
Krivchikov Dmitry 2014-04-03 14:06:37 +04:00
parent 11d488fd78
commit 4faf9477bb
7 changed files with 20 additions and 59 deletions

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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';