同福

做个PHP框架(4)控制器Controller(一)基础知识【20201027】

介绍

介绍

福哥今天要带着大家完成控制器模块TFController对象的设计,控制器模块是web框架的核心模块之一,它负责管理控制网站数据,需要高度的兼容性和高度的灵活性,便于开发者进行高效地开发工作。

设计控制器模块比路由模块要复杂许多,因为控制器模块有很多能力需要我们一个一个实现,今天我们就先把这些能力一个一个地列出来,逐一的设计它们的实现方案。

网页模板

web框架可以制作功能程序接口(诸如:API接口、RESTFul接口、SOAP接口等等),而大多数情况下web框架是用来制作普通网页的。

网页包括各种各样的风格、各种各样的布局以及各种各样的元素,而通过php语言来输出这些复杂的html代码会比较复杂,且不容易管理,这就需要借助一个工具叫做——网页模板。

Smarty

在php语言里比较流行的网页模板是Smarty,这个曾经被收录于php.net的网页模板项目,是一个非常强大、非常成熟的网页模板框架。而我们就要将Smarty框架引入进来作为我们TFPHP的网页模板的解决方案,这样就省去了我们自己实现网页模板功能的工作。

控制器

前面我们已经完成了路由模块的设计和实现。但是这里面少了一个环节,就是我们只是通过请求资源路径找到了对应的处理程序的文件路径,却没有真正的通过处理程序将网页内容反馈给用户。

这里面我们设计两个控制器对象。一个控制器对象用来实现普通网页的处理,一个控制器对象用来实现接口的处理。

网页控制器

网页控制器保存到Controller\Page\TFController,程序文件名称为TFController.inc.php。在这个程序文件里面我们实现用于制作普通网页的控制器对象,它需要Smarty支持。

9314fca079814de4.jpg

接口控制器

接口控制器保存到Controller\API\TFController,程序文件名称为TFController.inc.php。在这个程序文件里面我们实现用于制作程序接口的控制器对象。

462f258402dea0c7.jpg

总结

今天福哥带着大家将控制器对象TFController的功能详细地设计了一番,控制器对象包括网页控制器和接口控制器,其中网页控制器还需要第三方的Smarty扩展的支持。

下一课,福哥就开始带着童鞋们进行网页控制器对象TFController的逻辑实现了,大家跟上哦~~

P.S.

微信公众号的文章发出去之后是不能编辑的,但是福哥偶尔会修复一些描述不到位、示例不正确、结构不清晰等等的文章错误,这些只能在网站上才能看到最新版本内容,望大家知晓~~