The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
模块和操作

DyhbFrame采用模块和操作的方式来执行,首先,用户的请求会通过入口文件生成一个应用实例,应用控制器(我们称之为核心控制器)会管理整个用户执行的过程,并负责模块的调度和操作的执行。

任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作。这个分析工作由URL路由来实现,官方内置了Router类来完成该调度。

在Router调度器中,会根据 

http://servername/appName/moduleName/actionName/params

来获取当前需要执行的项目(appName)、模块(moduleName)和操作(actionName),在某些情况下,appName可以不需要(通常是网站的首页,因为项目名称可以在入口文件中指定,这种情况下,appName就会被入口文件替代)。在复杂一点的情况下面,可能还会出现分组(groupName)。

每个模块是一个Action文件,类似于我们平常所说的控制器,系统会自动寻找项目类库Action目录下面的相关类,如果没有找到,则抛出异常。

而actionName操作是首先判断是否存在Action类的方法,如果不存在,程序就会抛出异常。

因此应用开发中的一个重要过程就是给不同的模块定义具体的操作。一个应用如果不需要和数据库交互的时候可以不需要定义模型类,但是必须定义Action控制器。

Action控制器的定义非常简单,只要继承Control基础类就可以了,例如:

Class IndexControl extends Control{  

} 

如果我们要执行下面的URL 

http://servername/index.php/index/add

你需要增加一个add方法就可以了,例如 

Class IndexControl extends Control{  

      public function add(){

           echo "demo";

      }

} 


操作方法必须定义为Public类型,否则会报错。并注意操作方法的命名不要和内置的Control类的方法重复。