一、thinkPHP架构
thinkPHP架构对每一方面都有了明确的限制,为了,前后端及数据库分离,必须按照它设置的框架进行程序编写。
Think PHP5.0应用基于MVC,其中MVC是一个设计模式,这里的设计模式,跟我们平常所接触的软件设计模式不是一个概念,这里可以大致理解为代码的编写方式。
MVC强制行的使应用程序的 输入、处理 和输出分开。核心部件:M 模型,V视图,C控制器,他们个子处理自己的任务。
入口文件:
用户请求PHP的文件,负责处理一个请求的生命周期,这里应该是指的完成一个模块的功能吧
应用:
一个管理系统架构及生命周期的对象。在入口文件中被调用和执行。一个应用可以存在多个入口文件,也就是说多个入口文件可以指向同一个应用。
模块:
一个应用由多个模块组成,模块是应用目录下面的一个子目录,每个模块都有自己独立的配置文件、公共文件和类库文件。
控制器:
每个模块拥有独立的MVC类库及配置文件,一个模块下面有多个控制器负责响应请求,而每个控制器就是一个独立的控制器类。
控制器接收请求,并调用相关的模型处理,并最终通过视图输出。这里的模型是指什么?模型就是Model 是指数据库模型。
5.0控制器可以被跳过,使用路由调度请求?这里的路由是指什么?
操作:
一个控制器包含多个操作(方法),操作方法是一个URL访问的最小单元。也就类似与一个函数吧。可以带参可以不带参,如果是URL请求,参数通过GET或POST方式传入。
模型:
模型类完成实际的业务逻辑和封装,并返回和格式无关的数据,可以分为逻辑层/服务层/事件层。没搞懂具体啥意思
二、自动加载
THink PHP5.0真正实现了按需加载,所有类库采用加载机制,并且支持类库映射和composer类库的自动加载。
只需要给类库正确定义所在的命名空间,即命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载。
错误调试:
由于API开发不方便在客户端进行开发调试,但ThinkPHP5的Trace调试功能支持Socket在内的方式,可以实现远程开发调试。(感觉有点麻烦)