{ $viewFile = Yii::getAlias($viewFile); if ($this->theme !== null) { $viewFile = $this->theme->applyTo($viewFile); } if (is_file($viewFile)) { $viewFile = FileHelper::localize($viewFile); } else { throw new ViewNotFoundException("The view file does not exist: $viewFile"); } $oldContext = $this->context; if ($context !== null) { $this->context = $context; } $output = ''; $this->_viewFiles[] = $viewFile;
$datas['user'] = $template->getUserConfig(); //业务逻辑处理 $libs->handle(); //渲染模板 $html = Yii::$app->view->renderFile($pageSrc, $datas); //判断分页 - 排除404 if(!isset($params['identity']) || !in_array($params['identity'], ['404', '500'])){ $template->_ifPage(); }
* @param $type 页面类型 * @param $page 页面名称 * @param $params 参数 * @return 返回页面内容 */ protected function renderTpl($type, $page, $params = []){ return Template::render($type, $page, $params); } }
$tplname = WAY_VISIT == 'pc' ? ('tpl_pc_'.$type) : ('tpl_mob_'.$type); $page = $column[$tplname]; if(empty($page))$page = $this->_getParentPage($column['id'], $tplname); return $this->renderTpl('column', $page, [ 'columnid' => $column['id'] ]); } private function _renderArticle($article, $column){ $tplname = WAY_VISIT == 'pc' ? 'tpl_pc_content' : 'tpl_mob_content'; $page = $column[$tplname]; if(empty($page))$page = $this->_getParentPage($column['id'], $tplname);
if(count($articles) == 1){ //302跳转 return $this->_renderArticle($articles[0], $column); } } return $this->_renderColumn($column); }else if($column['prop'] == 3){ return \Yii::$app->controller->redirect($column['linkurl']); } } //查找单页
'configs' => $configs, 'user' => $user ]); //异常处理 try{ $result = $object->$func($args); }catch(LogicException $e){ return $this->error($e->getErrcode(), $e->getErrmsg(), $e->getData()); }catch(\Exception $e){ throw $e; }
if($paramsCount === 0){ //默认调用. 无参数 return $serv->callServiceClass($controllerId, $actionId, null); }else if($paramsCount === 1){ //单参数调用 return $serv->callServiceClass($controllerId, $actionId, $class); }else if($paramsCount >= 2){ //指定调用 return $serv->callServiceClass($class, $func, $args); } }
public function msg($msg, $type = 'error'){ call_user_func(array('\appcore\service\base\Service', 'msg'), $msg, $type); } //调用业务层 public function service(){ return call_user_func_array(array('\appcore\service\base\Service', 'call'), func_get_args()); } //调用业务层 public function modService(){ return call_user_func_array(array('\appcore\service\base\Service', 'modcall'), func_get_args()); }
*/ public function __call($name, $params) { $this->ensureBehaviors(); foreach ($this->_behaviors as $object) { if ($object->hasMethod($name)) { return call_user_func_array([$object, $name], $params); } } throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()"); } /**
} //栏目列表页 public function actionColumn_list(){ $url = $this->_getUrl(); $result = $this->service($url); return $result; } //栏目封面页 public function actionColumn_cover(){
} //栏目列表页 public function actionColumn_list(){ $url = $this->_getUrl(); $result = $this->service($url); return $result; } //栏目封面页 public function actionColumn_cover(){
$args = $this->controller->bindActionParams($this, $params); Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__); if (Yii::$app->requestedParams === null) { Yii::$app->requestedParams = $args; } return call_user_func_array([$this->controller, $this->actionMethod], $args); } }
} $result = null; if ($runAction && $this->beforeAction($action)) { // run the action $result = $action->runWithParams($params); $result = $this->afterAction($action, $result); // call afterAction on modules foreach ($modules as $module) { /* @var $module Module */
$parts = $this->createController($route); if (is_array($parts)) { /* @var $controller Controller */ list($controller, $actionID) = $parts; $oldController = Yii::$app->controller; Yii::$app->controller = $controller; $result = $controller->runAction($actionID, $params); if ($oldController !== null) { Yii::$app->controller = $oldController; } return $result; }
$params = $this->catchAll; unset($params[0]); } try { Yii::debug("Route requested: '$route'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } $response = $this->getResponse(); if ($result !== null) {
{ try { $this->state = self::STATE_BEFORE_REQUEST; $this->trigger(self::EVENT_BEFORE_REQUEST); $this->state = self::STATE_HANDLING_REQUEST; $response = $this->handleRequest($this->getRequest()); $this->state = self::STATE_AFTER_REQUEST; $this->trigger(self::EVENT_AFTER_REQUEST); $this->state = self::STATE_SENDING_RESPONSE; $response->send();
require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/yiisoft/yii2/Yii.php'; $config = require __DIR__ . '/config/web.php'; (new yii\web\Application($config))->run();