一、核心类库结构如下:
MST_Core:
处理框架公共功能集合,配置运行环境,目录结构访问,组织各部分功能调用,框架入口。
MST_ActionController_Router:
URL rewrite 路由部分,主要用于分析URL,根据config中的路由配置,匹配出具体调用的controller、action及相关参数,然后填充MST_ActionController_Request。
MST_ActionController_Request:
对PHP原生$_REQUEST对象的封装,其中还封装了controller、action等框架使用的参数及一些处理请求时需要使用到的方法,例如isPost 、isAjax等。
MST_ActionController:
框架调用核心,流程处理中心,一本的非数据处理的逻辑全部都在这个处理。
MST_ActionView:
用于处理页面展示,处理页面组件(widget)及页面布局(layout)。
MST_DBO:
数据处理核心,所有数据库操作都封装在这里。
二、项目文件结构:
+—application [该目录存放项目主要文件]
| +—controllers [主要放MST_ActionController]
| | IndexController.php
| | __Application.php
| +—models [主要放 MST_DBO]
| | TableStructureHelper.php
| |
| \—views [主要放MST_ActionView]
| +—index [存放indexController 对应的view文件]
| | index.phtml [indexController IndexAction对应的View文件]
| |
| +—__layouts [存放各种页面布局的layout]
| \—__widgets [存放页面widget,widget这里指的是页面的显示组件,是PHP代码与HTML混编的文件]
| \—base
| album.phtml
| dbo_form.phtml
| form.phtml
| grid.phtml
| upload.phtml
| upload_list.phtml
|
+—cache
+—config [该目录主要存放项目的配置文件]
| config.php [主要定义个工作环境下的配置参数,包括数据库连接,邮件SMTP配置,session配置。]
| gb_big5.php
| routes.php [主要定义URL路由的配置,高级功能,需要专门讲解]
\—public [存放各类静态资源文件,例如css 图片 js等,一般里面还需要有个网站的入口文件:index.php,该文件编写框架的入口,启动整个框架流程。]
三、基本处理流程:
1. 一般通过apache的rewrite策略,我们会将所有的页面请求交给public/index.php处理。
2. 在Index.php中,我们需要判定框剪的运行环境(分DEV开发环境、TEST测试环境、PRO发布产品环境,分别对应于本地开发调试,demo测试,正式上线,3个不同的运行环境)调用框剪的启动方法start。
3. 然后MST_Core会调用MST_ActionController_Router填充MST_ActionController_Request,之后的流程中,我们可以随时与MST_ActionController_Request进行互动。
4. 根据MST_ActionController_Request中的具体参数,MST_ActionController会调用具体我们编写controller。
5. 在controller中,我们会与很多不用的数据模块交互(读写数据库、发Email、调用远程API等等),然后根据不同的使用情况调用不同的View(MST_ActionView)。
6. MST_ActionView会根据我们的配置好的页面布局(layout),显示具体的页面内容。
7. 将全部的输出缓存输出到浏览器上,到此整个框剪处理流程结束。
实例项目,可以通过以下SVN地址获取:
http://192.168.33.6/svn/mixmvc3/project/MST_v3.1
这是公司的框架吗