ThinkPHP采用模块和操作分析
程序员文章站
2022-05-25 21:10:59
任何一个web行为都可以认为是一个模块的某个操作,系统会根据当前的url来分析要执行的模块和操作。这个分析工作由url调度器来实现,官方内置了dispatcher类来完成该...
任何一个web行为都可以认为是一个模块的某个操作,系统会根据当前的url来分析要执行的模块和操作。这个分析工作由url调度器来实现,官方内置了dispatcher类来完成该调度。 在dispatcher调度器中,会根据
http://servername/appname/modulename/actionname/params
来获取当前需要执行的项目(appname)、 模块(modulename)和操作(actionname),在某些情况下,appname可以不需要(通常是网站的首页,因为项目名称可以在入口文件 中指定,这种情况下,appname就会被入口文件替代)。在复杂一点的情况下面,可能还会出现分组(groupname)。
每个模块是一个action文件,类似于我们平常所说的控制器,系统会自动寻找项目类库action目录下面的相关类,如果没有找到,则会定位到空模块,否则抛出异常。
而actionname操作是首先判断是否存在action类的公共方法,如果不存在则会继续寻找父类中的方法,如果依然不存在,就会寻找是否存在自动匹配的模版文件。如果存在模版文件,那么就直接渲染模版输出。
因此应用开发中的一个重要过程就是给不同的模块定义具体的操作。一个应用如果不需要和数据库交互的时候可以不需要定义模型类,但是必须定义action控制器。 action控制器的定义非常简单,只要继承action基础类就可以了,例如:microfiber cloth
class useraction extends action{
}
如果我们要执行下面的url
http://servername/index.php/user/add
你需要增加一个add方法就可以了,例如
折叠php code复制内容到剪贴板
class useraction extends action{
// 定义一个add操作方法,注意操作方法不需要任何参数
public function add(){
// add操作方法的逻辑实现
// …… bath rug
$this->display(); // 输出模板页面
}
}
操作方法必须定义为public类型,否则会报错。并注意操作方法的命名不要和内置的action类的方法重复。系统会自动定位当前操作的模板文件,而默认的模板文件应该位于项目目录下面的tpl\default\user\add.html。
http://servername/appname/modulename/actionname/params
来获取当前需要执行的项目(appname)、 模块(modulename)和操作(actionname),在某些情况下,appname可以不需要(通常是网站的首页,因为项目名称可以在入口文件 中指定,这种情况下,appname就会被入口文件替代)。在复杂一点的情况下面,可能还会出现分组(groupname)。
每个模块是一个action文件,类似于我们平常所说的控制器,系统会自动寻找项目类库action目录下面的相关类,如果没有找到,则会定位到空模块,否则抛出异常。
而actionname操作是首先判断是否存在action类的公共方法,如果不存在则会继续寻找父类中的方法,如果依然不存在,就会寻找是否存在自动匹配的模版文件。如果存在模版文件,那么就直接渲染模版输出。
因此应用开发中的一个重要过程就是给不同的模块定义具体的操作。一个应用如果不需要和数据库交互的时候可以不需要定义模型类,但是必须定义action控制器。 action控制器的定义非常简单,只要继承action基础类就可以了,例如:microfiber cloth
复制代码 代码如下:
class useraction extends action{
}
如果我们要执行下面的url
http://servername/index.php/user/add
你需要增加一个add方法就可以了,例如
折叠php code复制内容到剪贴板
复制代码 代码如下:
class useraction extends action{
// 定义一个add操作方法,注意操作方法不需要任何参数
public function add(){
// add操作方法的逻辑实现
// …… bath rug
$this->display(); // 输出模板页面
}
}
操作方法必须定义为public类型,否则会报错。并注意操作方法的命名不要和内置的action类的方法重复。系统会自动定位当前操作的模板文件,而默认的模板文件应该位于项目目录下面的tpl\default\user\add.html。
上一篇: PHP中其实也可以用方法链
推荐阅读
-
ThinkPHP中__initialize()和类的构造函数__construct()用法分析_php实例
-
Perl中的10个操作日期和时间的CPAN模块介绍
-
ThinkPHP中公共函数路径和配置项路径的映射分析_PHP
-
ThinkPHP中公共函数路径和配置项路径的映射分析,thinkphp函数_PHP教程
-
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
-
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
-
python列表操作之extend和append的区别实例分析
-
JS对象和字符串之间互换操作实例分析
-
ThinkPHP空模块和空操作详解
-
python列表操作之extend和append的区别实例分析