Location: PHPKode > projects > Energine > energine-2.2/core2a/framework/FrontController.class.php
<?php

/**
 * Класс FrontController.
 *
 * @package energine
 * @subpackage core
 * @author 1m.dm
 * @copyright ColoCall 2006
 * @version $Id: FrontController.class.php,v 1.5 2007/12/17 14:16:03 pavka Exp $
 */

//require_once('core/framework/DBWorker.class.php');
//require_once('core/framework/SystemException.class.php');
//require_once('core/framework/DocumentController.class.php');
//require_once('core/framework/UserSession.class.php');
/**
 * Front Controller - единая точка входа для запуска работы системы.
 *
 * @package energine
 * @subpackage core
 * @final
 */
final class FrontController extends DBWorker {

    /**
     * Конструктор класса.
     *
     * @access public
     * @return void
     */
    public function __construct() {
        try {
            UserSession::getInstance()->start();
            parent::__construct();
            $this->initAccessRightsConstants();
        }
        catch (SystemException $systemException) {
            $systemException->handle();
        }
        catch (Exception $generalException) {
            $systemException = new SystemException(
                $generalException->getMessage(),
                $generalException->getCode()
            );
            $systemException->handle();
        }
    }

    /**
     * Создаёт объект DocumentController и передаёт ему управление.
     *
     * @access public
     * @return void
     */
    public function run() {
        try {
            $documentConroller = new DocumentController;
            $documentConroller->run();
        }
        catch (SystemException $systemException) {
            $systemException->handle();
        }
        catch (Exception $generalException) {
            $systemException = new SystemException(
                $generalException->getMessage(),
                $generalException->getCode()
            );
            $systemException->handle();
        }
    }

    /**
     * Инициализирует константы прав доступа.
     *
     * @access private
     * @return void
     */
    private function initAccessRightsConstants() {
        $result = $this->dbh->select('user_group_rights', true);
        if (!is_array($result)) {
            throw new SystemException('ERR_DEV_NO_GROUP', SystemException::ERR_DEVELOPER);
        }
        define('ACCESS_NONE', 0);
        foreach ($result as $row) {
        	define($row['right_const'], intval($row['right_id']));
        }
    }
}
Return current item: Energine