S框架
S 框架的核心思想是在 MVC 设计模式的基础上将业务逻辑进行剥离放入 Service 层,让 Controller 层变得更轻以适应不同类型的终端和应用场景。 并且支持将 Service 层部署到不同的服务器以适应更加复杂的业务需求和高并发需求,业务规模扩大后可以用Java等语言来开发 Service 逐步替换原有代码,无缝接入到现有系统。
Service 层的出现也让 Model 层变得更轻,Model 层只需要关注与数据有关的封装,多数时候使用模拟出来的默认 Model 就足以应对各种需求, 当某个数据比较复杂需要扩展一些操作时可在 _m 目录下编写一个继承 Model 的类即可。
五个核心函数即可构成基本的 MSVC 设计模式的 S 框架
函数 | 说明 |
MSVC( $root_path = '..' ) | 启动框架,不需要任何参数,默认使用入口文件的上一级作为根目录,或传入一个参数指出项目的根目录 |
M( $model_name ) | 根据名称(库名.表名 如:test.user)获取一个 Model 对象,里面包含对数据的各种基本操作,也可以自己在 _m 中继承Model类进行扩展 |
S( $service_name, $args ) | 根据名称(包.类.方法 如:system.user.login)调用一个 Service 接口 |
V( $file, $data ) | 根据视图文件(如:user/login.html)调用一个 View,将数据和视图进行整合 |
C( $path ) | 根据路径(如:user/login.html)调用一个 Controller 以实现调用其他控制器处理页面,请求到达时框架会自动调用跟URL对应的控制器进行处理 |
三种框架运行模式
函数 | 说明 |
MSVC( $root_path = '..' ) | 启动完整的 MSVC 四层框架,默认采用严格跨层访问控制(可通过 ENABLE_MSVC_CROSS 允许任意跨层访问) |
MVC( $root_path = '..' ) | 启动标准的 MVC 三层框架,允许 Controller 直接访问 Model 层 |
MS( $root_path = '..' ) | 启动 MS 两层框架,只对外提供服务 |
_m、_s、_c、_v 四层的文件一般放在站点目录下,也可以放在根目录的 _m、_s、_c、_v 中作为所有站点公共的。
评论