Exemplo n.º 1
0
function ext_view_init(UnPHP $app, UnPHP_Dispatcher $dispatcher)
{
    $conf = $app->getConfig();
    if (isset($conf['view'])) {
        $c = $conf['view'];
        if (isset($c['themespath']) && isset($c['cachemode'])) {
            $themesPath = $c['themespath'];
            $cachemodeList = explode(",", $c['cachemode']);
            foreach ($cachemodeList as $mode) {
                if (isset($c[$mode])) {
                    $modeConf = $c[$mode];
                    if (isset($modeConf['tempPath'])) {
                        $newSmarty = "Ext_View_" . ucfirst($mode) . "Smarty";
                        $view = new $newSmarty();
                        if ($view->init($modeConf)) {
                            $view->setScriptPath($themesPath);
                            $dispatcher->setView($view);
                            break;
                        }
                    }
                }
            }
        }
    }
}
Exemplo n.º 2
0
function ext_databases_init(UnPHP $app, UnPHP_Dispatcher $dispatcher)
{
    $conf = $app->getConfig();
    if (isset($conf['databases'])) {
        $c = $conf['databases'];
        $bothDB = array();
        $otherDB = array();
        foreach ($c as $d) {
            if (isset($d['dsn']) && isset($d['user']) && isset($d['password']) && isset($d['tables']) && isset($d['action'])) {
                switch ($d['action']) {
                    case 'both':
                        $bothDB[] = $d;
                        break;
                    case 'read':
                        $otherDB[] = $d;
                        break;
                    case 'write':
                        $otherDB[] = $d;
                        break;
                }
            }
        }
        foreach ($bothDB as $d) {
            $tables = explode(",", $d['tables']);
            $dsn = $d['dsn'];
            $user = $d['user'];
            $password = $d['password'];
            foreach ($tables as $table) {
                Ext_Databases_Model::regionPool($table, $dsn, $user, $password, Ext_Databases_Model::ACTION_BOTH);
            }
        }
        foreach ($otherDB as $d) {
            $action = $d['action'] == "read" ? Ext_Databases_Model::ACTION_READ : Ext_Databases_Model::ACTION_WRITE;
            $tables = explode(",", $d['tables']);
            $dsn = $d['dsn'];
            $user = $d['user'];
            $password = $d['password'];
            foreach ($tables as $table) {
                Ext_Databases_Model::regionPool($table, $dsn, $user, $password, $action);
            }
        }
    }
}
Exemplo n.º 3
0
<?php

/**
 * 应用入口文件
 * @system UNPHP 
 * @version UNPHP 1.0
 * @author Xiao Tangren  <*****@*****.**>
 * @data 2014-03-05
 * */
define('APPLICATION_PATH', __DIR__);
// 载入框架入口文件
require APPLICATION_PATH . '/../UnPHP/UnPHP.php';
// 设置公共库路径
UnPHP::setLibrary(APPLICATION_PATH . '/library');
// 创建(框架)应用
$UnPHP = new UnPHP(APPLICATION_PATH . '/conf/www.ini');
// 初始化应用,并执行应用
$UnPHP->bootstrap()->run();
Exemplo n.º 4
0
 /**
  * 初始化框架
  * @author Xiao Tangren  <*****@*****.**>
  * @data 2014-03-05
  */
 private function init($confFile)
 {
     error_reporting(0);
     $this->iniLoadFile();
     $this->_dispatcher = UnPHP_Dispatcher::getInstance();
     try {
         $ReadConf = new Unphp_ReadConf($confFile);
         $this->_config = $ReadConf->get();
         switch ($this->_config['app']['debug']) {
             case 1:
                 error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR);
                 break;
             case 2:
                 error_reporting(E_ALL);
             default:
                 error_reporting(0);
         }
         $this->_modules = isset($this->_config['app']['modules']) ? explode(",", $this->_config['app']['modules']) : array();
         self::$_app = $this;
         // 注册“自动加载”接管函数
         $this->registerAutoLoad();
         $request = new UnPHP_Request_Http();
         // 设置默认模块/控制器/方法
         isset($this->_config['app']['default_module']) ? $request->setDefaultModule($this->_config['app']['default_module']) : $request->setDefaultModule('index');
         isset($this->_config['app']['default_controller']) ? $request->setDefaultController($this->_config['app']['default_controller']) : $request->setDefaultController('index');
         isset($this->_config['app']['default_action']) ? $request->setDefaultAction($this->_config['app']['default_action']) : $request->setDefaultModule('index');
         $this->_dispatcher->setRequest($request);
         // 设置框架404异常页面
         $this->_dispatcher->setErrorController(new UnPHP_Error($request));
         $this->extInit();
     } catch (Exception $exc) {
         $exc->getMsg($this->_config['app']['debug'], $this->_dispatcher->getErrorController());
     }
 }
Exemplo n.º 5
0
 /**
  * 默认路由: /m/c/a/params1/1/params2/2/...
  * @author Xiao Tangren  <*****@*****.**>
  * @data 2014-03-05
  * @param type $request
  * @return boolean
  */
 public function route(UnPHP_Request_Abstract $request)
 {
     $rs = FALSE;
     $match = array();
     $base_url = $request->getServer('REQUEST_URI');
     $selfPramas = stripos($base_url, '?');
     $base_url = $selfPramas ? substr($base_url, 0, $selfPramas) : $base_url;
     $match = explode("/", trim($base_url, '/\\'));
     $n = count($match);
     switch ($n) {
         case 0:
             $request->setModuleName($request->getDefaultModule());
             $request->setControllerName($request->getDefaultController());
             $request->setActionName($request->getDefaultAction());
             $rs = TRUE;
             break;
         case 1:
             if (in_array($match[0], UnPHP::app()->getModules())) {
                 $request->setModuleName($match[0]);
                 $request->setControllerName($request->getDefaultController());
                 $request->setActionName($request->getDefaultAction());
             } else {
                 $request->setModuleName($request->getDefaultModule());
                 $request->setControllerName($match[0]);
                 $request->setActionName($request->getDefaultAction());
             }
             $rs = TRUE;
             break;
         case 2:
             if (in_array($match[0], UnPHP::app()->getModules())) {
                 $request->setModuleName($match[0]);
                 $request->setControllerName($match[1]);
                 $request->setActionName($request->getDefaultAction());
                 $rs = TRUE;
                 break;
             } else {
                 $request->setModuleName($request->getDefaultModule());
                 $request->setControllerName($match[0]);
                 $request->setActionName($match[1]);
                 $rs = TRUE;
                 break;
             }
         default:
             if (in_array($match[0], UnPHP::app()->getModules())) {
                 $request->setModuleName($match[0]);
                 $request->setControllerName($match[1]);
                 $request->setActionName($match[2]);
                 for ($i = 4; $i < $n; $i += 2) {
                     $request->setParam($match[$i - 1], $match[$i]);
                 }
             } else {
                 $request->setModuleName($request->getDefaultModule());
                 $request->setControllerName($match[0]);
                 $request->setActionName($match[1]);
                 for ($i = 3; $i < $n; $i += 2) {
                     $request->setParam($match[$i - 1], $match[$i]);
                 }
             }
             $rs = TRUE;
             break;
     }
     return $rs;
 }