首页 >

php mvc中controller类实例教程

后端开发|php教程php mvc中controller类实例教程
php,mvc,中,controller,类,实例,教程,本,文章,来,讲述,一下,关于,mvc,中,controlle
后端开发-php教程
本文章来讲述一下关于mvc中controller类教学,通过上两节我们知道 程序通过单一入口文件的route类决定了 唯一的moudle, conttoller, action,并在最后执行了
简介购物网站源码,ubuntu16 终端,tomcat7读取不到项目,spyder运行爬虫,php mysql图片上传实例,衢州seo网站lzw
代码如下复制代码

$route->run();

传奇源码分享,vscode alert,ubuntu网络重启命令,tomcat事务,sqlite c 接口,访问虚拟服务器,今日头条插件不见了,web前端框架总结,爬虫工程师发展,php去注释,讯搜seo,mysql 大型网站,php 网页聊天室代码,侠客模板制作,dedecms生成列表页面慢,医疗管理系统软件源码,matlab仿真跳频信号程序lzw
/**
扫雷动画源码,vscode删除每行行尾空格,ubuntu安装优化,php在tomcat上,合肥爬虫公司,php连接数据库成功,新手怎么做seo 留痕lzw
* 执行相应的 MCA

*

*/

private function run ()

{

$filePath = APPLICATION_PATH.’/controller/’.$this->_moudle.’/’.$this->_conttoller.’.inc.php’;

$isNo = 0;

if(file_exists($filePath))

{

include “$filePath”;

$controller_tp = $this->_conttoller.’Controller’;

$controller = new $controller_tp;

if (method_exists($controller,$this->_action.’Action’))

{

$acion_tmp = $this->_action.’Action’;

$controller->$acion_tmp();

}else

{

$isNo = 1;

}

}else

{

$isNo = 1;

}

if ($isNo)

{

$filePath = APPLICATION_PATH.’/controller/default/index.inc.php’;

$this->_moudle = $this->_default[‘module’];

$this->_conttoller = $this->_default[‘conttoller’];

$this->_action = $this->_default[‘action’];

($this->_moudle != $this->_default[‘module’]) && include “$filePath”;

$controller = new indexController;

$controller->indexAction();

}

}

当相关’Controller’文件存在时执行

代码如下复制代码

include “$filePath”;

$controller_tp = $this->_conttoller.’Controller’;

$controller = new $controller_tp;

上述三行代码的意思是,根据确定好的 conttoller 包含相应文件,并实例化相应的conttoller。

代码如下复制代码

$acion_tmp = $this->_action.’Action’;

$controller->$acion_tmp();

根据相应的Action 执行相应的action

所有的 Controller 类都集成一个公用的Controller 类,本节课我们就来分析一下公共的Controller 类

<?php

/**

* 前台公共类 接口

* 实现公共部分代码

*/

/**

* 本文件只能被index。php包含

*/

defined(“WEB_AUTH”) || die(“NO_AUTH”);

/**

* 包含菜单配置文件

*/

代码如下复制代码

class Controller

{

public $tpl;

public $controller;

public $body;//右边菜单

public $_route ;

public $html_;

public $tpl_;

/*

* 构造函数

*/

public function __construct()

{

$this->init();

}

/*

* 初始化变量,顶部菜单和模板

*/

protected function init()

{

global $TPL,$route;

$this->tpl = $TPL;

$this->_route = $route;

}

/**

* 模板变量传第

*/

protected function diplayTpl()

{

$this->body || $this->body = $this->_route->getActionName();

$this->tpl->assign(“body”,$this->body);

/*设置本控制器的模板目录*/

$this->controller ||$this->controller =$this->_route->getControllerName();

$this->tpl->assign(“controller”,$this->controller);

$this->tpl->display($this->layout);

}

/**

* smarty封装类

* @param string $name

* @param string $value

*/

public function assign($name,$value)

{

$this->tpl->assign($name,$value);

}

/**

* 显示另外的模板

* @param string $name

* @param string $value

*/

protected function displayOther($file)

{

$this->assign(“otherTpl”,TRUE);

$this->tpl->display($file);

}

/**

* 显示某个MCA的body模板

* 0=>m 1=>c =>a

*/

protected function getMcaBody($array)

{

return ‘http://www.cnblogs.com/../’.$array[0].’/body/’.$array[1].’/’.$array[2];

}

/*

* 析构函数,显示页面

*/

protected function __destruct()

{

$this->tpl->_tpl_vars[‘otherTpl’] || $this->diplayTpl();

}

/**

* 中途退出

*/

protected function _exit($msg = “”)

{

$this->assign(“otherTpl”,TRUE);

die($msg);

}

/**

* 用 $this->html_var=value放法给变量赋值

* 用 $this->tpl_var=value放法给变量赋值

*/

protected function __set($name,$value)

{

if(strtolower(substr($name,0,5)) == “html_” || strtolower(substr($name,0,4)) == “tpl_”)

{

$this->assign(substr($name,5),$value);

}

}

}

?>

首先看

代码如下复制代码

protected function __destruct()

{

$this->tpl->_tpl_vars[‘otherTpl’] || $this->diplayTpl();

}

这是所有Controller 类 生命周期结束时候要执行的函数(搜索一下php魔术方法 查看详情)

本框架利用这时候解析模板,这样的好处是,当Controller中相关执行完相关数据处理,后自动执行相关的模板(View);而不用每次在程序最后调用模板

代码如下复制代码

protected function __set($name,$value)

{

if(strtolower(substr($name,0,5)) == “html_” || strtolower(substr($name,0,4)) == “tpl_”)

{

$this->assign(substr($name,5),$value);

}

}

这个函数简化了程序向模板传递变量的方法,以smarty为例,在程序中需要执行 $tpl->assign(‘key’,$value);

来向模板中注册变量,而此函数中简化了此方法 ,只需 $this->html_key=$value;来实现相同的作用.(利用开发环境的提示功能,在前面声明

代码如下复制代码

public $html_;

public $tpl_;

http://www.liuzhongwei.com/PHPjc/629229.htmlwww.liuzhongwei.comtruehttp://www.liuzhongwei.com/PHPjc/629229.htmlTechArticle本文章来讲述一下关于mvc中controller类教学,通过上两节我们知道 程序通过单一入口文件的route类决定了 唯一的moudle, conttoller, action,并在最…

php mvc中controller类实例教程
  • php 获取上一个页面的内容解决办法
  • php 获取上一个页面的内容解决办法 | php 获取上一个页面的内容解决办法 ...

    php mvc中controller类实例教程
  • 关于PHP框架的几个小问题
  • 关于PHP框架的几个小问题 | 关于PHP框架的几个小问题 ...

    php mvc中controller类实例教程
  • CakePHP您必须知道的21条技巧
  • CakePHP您必须知道的21条技巧 | CakePHP您必须知道的21条技巧 ...