朱金辉 2 лет назад
Родитель
Сommit
5da9e30844

+ 4 - 1
src/Base/Controller.php

@@ -181,8 +181,11 @@ abstract class Controller
      * 设置 response
      * @param $request
      */
-    public function setResponse(Response $response)
+    public function setResponse($response)
     {
+        if (!($response instanceof Response)) {
+            return;
+        }
         return $this->response = $response;
     }
     

+ 7 - 7
src/Base/Dispatcher.php

@@ -1,7 +1,6 @@
 <?php
 namespace Qii\Base;
 
-use Qii\Autoloader\Factory;
 use Qii\Autoloader\Psr4;
 use \Qii\Config\Register;
 use \Qii\Config\Consts;
@@ -137,17 +136,18 @@ class Dispatcher
             $this->actionCls->controller = $this->controllerCls;
             $this->actionCls->actionId = $action;
             $this->actionCls->controllerId = $this->controllerCls->controllerId;
-            //支持多个action对应到同一个文件,如果对应的文件中存在指定的方法就直接调用
-            if (method_exists($this->actionCls, $realAction)) {
-                $this->actionCls->response = call_user_func_array(array($this->actionCls, $realAction), $funcArgs);
-            }
+            //调用初始化方法
             if(method_exists($this->actionCls, 'initialization')) {
                 call_user_func_array(array($this->actionCls, 'initialization'), array($this->actionCls));
             }
+            //支持多个action对应到同一个文件,调用的方法为 ...Action,如果没有...Action就调用run
+            if (method_exists($this->actionCls, $realAction)) {
+                return $this->actionCls->setResponse(call_user_func_array(array($this->actionCls, $realAction), $funcArgs));
+            }
             if (!method_exists($this->actionCls, 'run')) {
                 throw new MethodNotFound(\Qii::i(1101, $this->controllerCls->actions[$action] . '->run'), __LINE__);
             }
-            return call_user_func_array(array($this->actionCls, 'run'), array_slice($funcArgs, 1));
+            return $this->actionCls->setResponse(array($this->actionCls, 'run'), array_slice($funcArgs, 1));
         }
         if(method_exists($this->controllerCls, 'initialization')) {
             call_user_func_array(array($this->controllerCls, 'initialization'), array($this->controllerCls));
@@ -157,6 +157,6 @@ class Dispatcher
         if (!method_exists($this->controllerCls, $realAction) && !method_exists($this->controllerCls, '__call')) {
             throw new MethodNotFound(\Qii::i(1101, $controller . '->' . $realAction), __LINE__);
         }
-        return call_user_func_array(array($this->controllerCls, $realAction), $funcArgs);
+        return $this->controllerCls->setResponse(call_user_func_array(array($this->controllerCls, $realAction), $funcArgs));
     }
 }

+ 1 - 1
src/Base/Request.php

@@ -33,7 +33,7 @@ abstract class Request
 
     protected $forward = false;
     /**
-     * @var Qii_Request_Url url
+     * @var Qii\Request\Url url
      */
     public $url;
 

+ 0 - 2
src/View/Includes.php

@@ -86,5 +86,3 @@ class Includes implements \Qii\View\Intf
 		}
 	}
 }
-
-?>

+ 21 - 19
src/View/Render.php

@@ -1,10 +1,12 @@
 <?php
 namespace Qii\View;
 
+use Qii\Autoloader\Psr4;
+
 class Render
 {
 	protected $_view;
-	public function __construct(&$view, \Qii\View\Resource $resource)
+	public function __construct(&$view, Resource $resource)
 	{
 		$this->_view = $view;
 	}
@@ -13,11 +15,11 @@ class Render
 	 * renderJS
 	 * @param \widget\resource $resource 资源
 	 */
-	public function renderLinkJs(\Qii\View\Resource $resource)
+	public function renderLinkJs(Resource $resource)
 	{
 		$blockJs = array();
-		if (isset(\Qii\View\Dependence::$dependence['blockLinkJs'])) {
-			$resource->addBlockLinkJs(\Qii\View\Dependence::$dependence['blockLinkJs']);
+		if (isset(Dependence::$dependence['blockLinkJs'])) {
+			$resource->addBlockLinkJs(Dependence::$dependence['blockLinkJs']);
 		}
 		if ($resource->blockLinkJs) {
 			if (is_array($resource->blockLinkJs)) {
@@ -36,11 +38,11 @@ class Render
 	 * renderCss
 	 * @param \widget\resource $resource 资源
 	 */
-	public function renderLinkCss(\Qii\View\Resource $resource)
+	public function renderLinkCss(Resource $resource)
 	{
 		$blockCss = array();
-		if (isset(\Qii\View\Dependence::$dependence['blockLinkCss'])) {
-			$resource->addBlockLinkCss(\Qii\View\Dependence::$dependence['blockLinkCss']);
+		if (isset(Dependence::$dependence['blockLinkCss'])) {
+			$resource->addBlockLinkCss(Dependence::$dependence['blockLinkCss']);
 		}
 		if ($resource->blockLinkCss) {
 			if (is_array($resource->blockLinkCss)) {
@@ -59,11 +61,11 @@ class Render
 	 * renderJS
 	 * @param \widget\resource $resource 资源
 	 */
-	public function renderJs(\Qii\View\Resource $resource)
+	public function renderJs(Resource $resource)
 	{
 		$blockJs = '';
-		if (isset(\Qii\View\Dependence::$dependence['blockJs'])) {
-			$resource->addBlockJs(\Qii\View\Dependence::$dependence['blockJs']);
+		if (isset(Dependence::$dependence['blockJs'])) {
+			$resource->addBlockJs(Dependence::$dependence['blockJs']);
 		}
 		if ($resource->blockJs) {
 			if (is_array($resource->blockJs)) {
@@ -75,7 +77,7 @@ class Render
 				$blockJs .= $this->_view->fetch($resource->blockJs);
 			}
 		}
-		$blockJs .= join('\n', \Qii\View\Dependence::$blockJS);
+		$blockJs .= join('\n', Dependence::$blockJS);
 		$this->_view->assign('blockJs', "\n" . $blockJs . "\n");
 	}
 
@@ -83,11 +85,11 @@ class Render
 	 * renderCss
 	 * @param \widget\resource $resource 资源
 	 */
-	public function renderCss(\Qii\View\Resource $resource)
+	public function renderCss(Resource $resource)
 	{
 		$blockCss = '';
-		if (isset(\Qii\View\Dependence::$dependence['blockCss'])) {
-			$resource->addBlockCss(\Qii\View\Dependence::$dependence['blockCss']);
+		if (isset(Dependence::$dependence['blockCss'])) {
+			$resource->addBlockCss(Dependence::$dependence['blockCss']);
 		}
 		if ($resource->blockCss) {
 			if (is_array($resource->blockCss)) {
@@ -99,7 +101,7 @@ class Render
 				$blockCss .= $this->_view->fetch($resource->blockCss);
 			}
 		}
-		$blockCss .= join('\n', \Qii\View\Dependence::$blockCss);
+		$blockCss .= join('\n', Dependence::$blockCss);
 		$this->_view->assign('blockCss', "\n" . $blockCss . "\n");
 	}
 
@@ -108,7 +110,7 @@ class Render
 	 *
 	 * @param string $tpl 模板名
 	 */
-	public function render(\Qii\View\Resource $resource)
+	public function render(Resource $resource)
 	{
 		$this->_view->assign('pageTitle', $resource->title);
 		$this->_view->assign('bodyClass', $resource->bodyClass);
@@ -129,7 +131,7 @@ class Render
 				continue;
 			}
 			$executed[$className . ':' . $method] = true;
-			$class = \Qii\Autoloader\Psr4::loadClass($className);
+			$class = Psr4::loadClass($className);
 			$class->controller = $this;
 			$class->actionId = $this->_action;
 			$class->input = $resource->input;
@@ -147,7 +149,7 @@ class Render
 					$className = array_shift($subRes);
 					$method = array_shift($subRes);
 
-					$class = \Qii\Autoloader\Psr4::loadClass($className);
+					$class = Psr4::loadClass($className);
 					$class->controller = $this;
 					$class->actionId = $this->_action;
 					$class->input = $resource->input;
@@ -163,7 +165,7 @@ class Render
 			}
 		}
 		$html[] = '</div>';
-		$html[] = join('\n', \Qii\View\Dependence::$blockHTML);;
+		$html[] = join('\n', Dependence::$blockHTML);;
 
 		$this->_view->assign('bodyBlock', join("\n", $html));
 	}

+ 1 - 3
src/View/Requires.php

@@ -8,7 +8,7 @@
  */
 namespace Qii\View;
 
-class Requires implements \Qii\View\Intf
+class Requires implements Intf
 {
 	const VERSION = '1.2';
 	public $data;
@@ -86,5 +86,3 @@ class Requires implements \Qii\View\Intf
 		}
 	}
 }
-
-?>

+ 1 - 1
src/View/Smarty.php

@@ -16,7 +16,7 @@ Import::requires(Qii_DIR . DS . DS . 'View' . DS . 'smarty' . DS . 'SmartyBC.cla
 Import::requires(Qii_DIR . DS . DS . 'View' . DS . 'smarty' . DS . 'sysplugins' .DS. 'smartyexception.php');
 Import::requires(Qii_DIR . DS . DS . 'View' . DS . 'smarty' . DS . 'sysplugins' .DS. 'smartycompilerexception.php');
 
-class Smarty extends \SmartyBC implements \Qii\View\Intf
+class Smarty extends \SmartyBC implements Intf
 {
 	const VERSION = '1.2';
 	public $caching = false;//是否缓存