一、一个完整的ThinkPHP应用基于模块/控制器/操作设计,并且,如果有需要的话,可以支持多入口文件和多级控制器。模块化设计的思想下面模块是最重要的部分,模块其实是一个包含配置文件、函数文件和MVC文件(目录)的集合。
应用 | 基于同一个入口文件访问的项目我们称之为一个应用。 |
模块 | 一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录。 |
控制器 | 每个模块可以包含多个控制器,一个控制器通常体现为一个控制器类。 |
操作 | 每个控制器类可以包含多个操作方法,也可能是绑定的某个操作类,每个操作是URL访问的最小单元。 |
一、控制器
我们可以在自动生成的Application/Home/Controller目录下面找到一个 IndexController.class.php
文件,这就是默认的Index控制器文件。
控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller
控制器文件的命名方式是:类名+class.php(类文件后缀)
namespace HomeController;//这是系统的规范要求,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的,也就是说:
HomeControllerIndexController
类 对应的控制器文件位于应用目录下面的Home/Controller/IndexController.class.php
,如果你改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。use ThinkController; // 表示引入 ThinkController 命名空间便于直接使用.如果想使用Action 则在配置文件中设置
'DEFAULT_C_LAYER'=>'Action'即可
class IndexController extends Controller {
public function index(){
echo 'hello,world!';
}
}
三、CBD模式。CBD(核心Core+行为Behavior+驱动Driver)架构模式