Quellcode durchsuchen

更新渲染引擎

Zhu Jinhui vor 6 Jahren
Ursprung
Commit
ccb4bc58da
4 geänderte Dateien mit 67 neuen und 51 gelöschten Zeilen
  1. 56 2
      src/Application.php
  2. 6 48
      src/Base/Controller.php
  3. 2 0
      src/Language/i18n/CN/error.php
  4. 3 1
      src/Language/i18n/EN/error.php

+ 56 - 2
src/Application.php

@@ -275,7 +275,62 @@ class Application
         );
         return $this;
     }
+    /**
+     * 设置缓存
+     *
+     * @param string $engine 缓存方法
+     * @param array $policy 缓存策略
+     */
+    public function setCache($engine = '', $policy = array())
+    {
+        $engine = $engine == '' ? \Qii::appConfigure('cache') : $engine;
+        $basicPolicy = array(
+            'servers' => $this->getCachePolicy($engine),
+        );
+        if ($basicPolicy['servers']) {
+            $policy = array_merge($basicPolicy, $policy);
+        }
+        $loader = new \Qii\Cache\Loader($engine);
+        return $loader->initialization($policy);
+    }
 
+    /**
+     * 获取缓存的策略
+     * @param String $cache 缓存的内容
+     * @return multitype:multitype:Ambigous <>
+     */
+    public function getCachePolicy($cache) {
+        $data = array();
+        if (!$cache) return $data;
+        $cacheInfo = Register::getAppConfigure(Register::get(Consts::APP_INI_FILE), $cache);
+        if (!$cacheInfo) return $data;
+
+        $servers = explode(";", $cacheInfo['servers']);
+        $ports = explode(";", $cacheInfo['ports']);
+        for ($i = 0; $i < count($servers); $i++) {
+            $data[] = array('host' => $servers[$i], 'port' => $ports[$i]);
+        }
+        return $data;
+    }
+    /**
+     * 设置view
+     *
+     * @param string $engine
+     * @param array $policy
+     * @return mixed
+     */
+    public function setView($engine = 'smarty', $policy = array()) {
+        $viewConfigure = \Qii::appConfigure('view');
+        //如果之前实例化过相同的就不再实例化
+        if (!$engine) $engine = $viewConfigure['engine'];
+        $policy = (array)$policy;
+        if (!$policy) {
+            $policy = array_merge($policy, $viewConfigure[$engine]);
+        }
+        $viewEngine = Psr4::getInstance()->loadClass('\Qii\View\Loader');
+        $viewEngine->setView($engine, $policy);
+        return $viewEngine;
+    }
     /**
      * 设置数据库使用的文件
      *
@@ -309,8 +364,7 @@ class Application
         $this->setDBIniFile($ini);
         if (!Register::setAppConfigure(
             Psr4::getInstance()->getFileByPrefix($ini),
-            $env
-        )
+            $env)
         ) {
             throw new \Qii\Exceptions\FileNotFound(\Qii::i(1405, $ini), 404);
         }

+ 6 - 48
src/Base/Controller.php

@@ -98,9 +98,7 @@ abstract class Controller
     /**
      * 启用view后调用初始化View方法
      */
-    protected function initView()
-    {
-    }
+    protected function initView(){}
     
     /**
      * 设置view
@@ -111,23 +109,11 @@ abstract class Controller
      */
     public function setView($engine = 'smarty', $policy = array())
     {
-        $viewConfigure = \Qii::appConfigure('view');
-        //如果之前实例化过相同的就不再实例化
-        if (!$engine) $engine = $viewConfigure['engine'];
-        $policy = (array)$policy;
-        if (!$policy) {
-            $policy = array_merge($policy, $viewConfigure[$engine]);
-        }
-        $viewEngine = Psr4::getInstance()->loadClass('\Qii\View\Loader');
-        $viewEngine->setView($engine, $policy);
-        $this->view = $viewEngine->getView();
-        if (method_exists($this, 'initView')) {
-            $this->initView();
-        }
+        $this->view = \Qii::getInstance()->setView($engine, $policy)->getView();
+        $this->initView();
         $this->response->setRender($this->view);
         return $this->view;
     }
-    
     /**
      * 设置缓存
      *
@@ -136,35 +122,7 @@ abstract class Controller
      */
     public function setCache($engine = '', $policy = array())
     {
-        $engine = $engine == '' ? \Qii::appConfigure('cache') : $engine;
-        $basicPolicy = array(
-            'servers' => $this->getCachePolicy($engine),
-        );
-        if ($basicPolicy['servers']) {
-            $policy = array_merge($basicPolicy, $policy);
-        }
-        $loader = new \Qii\Cache\Loader($engine);
-        return $this->cache->$engine = $loader->initialization($policy);
-    }
-    
-    /**
-     * 获取缓存的策略
-     * @param String $cache 缓存的内容
-     * @return multitype:multitype:Ambigous <>
-     */
-    final public function getCachePolicy($cache)
-    {
-        $data = array();
-        if (!$cache) return $data;
-        $cacheInfo = Register::getAppConfigure(Register::get(Consts::APP_INI_FILE), $cache);
-        if (!$cacheInfo) return $data;
-        
-        $servers = explode(";", $cacheInfo['servers']);
-        $ports = explode(";", $cacheInfo['ports']);
-        for ($i = 0; $i < count($servers); $i++) {
-            $data[] = array('host' => $servers[$i], 'port' => $ports[$i]);
-        }
-        return $data;
+        return $this->cache->$engine = \Qii::getInstance()->setCache($engine, $policy);
     }
     
     /**
@@ -194,7 +152,7 @@ abstract class Controller
     public function assign($key, $val = null)
     {
         if(!$this->view && !($this->view instanceof \Qii\View\Intf)) {
-            throw new \Exception('未定义渲染引擎');
+            throw new \Exception(_i(6001), __LINE__);
         }
 
         if(is_array($key)) {
@@ -212,7 +170,7 @@ abstract class Controller
     public function render($tpl, $arr = [])
     {
         if(!$this->view && !($this->view instanceof \Qii\View\Intf)) {
-            throw new \Exception('未定义渲染引擎');
+            throw new \Exception(_i(6001), __LINE__);
         }
 
         $this->view->assign($arr);

+ 2 - 0
src/Language/i18n/CN/error.php

@@ -98,4 +98,6 @@ return array(
     5004 => '%s格式不正确',
     5005 => '%s验证规则不存在',
 
+    6001 => '未定义渲染引擎',
+
 );

+ 3 - 1
src/Language/i18n/EN/error.php

@@ -95,5 +95,7 @@ return array(
 	5002 => '%s not allowed',
 	5003 => '%s is null',
 	5004 => '%s is invalid',
-	5005 => '%s regular does not exist'
+	5005 => '%s regular does not exist',
+
+    6001 => 'Undefined render engine',
 );