# Swiftx Framework **Repository Path**: Hismer/Swiftx-Framework ## Basic Information - **Project Name**: Swiftx Framework - **Description**: Swiftx Framework PHP开发框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2015-12-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##Swiftx Framework PHP开源框架 *** ###一.框架概述 >框架由一个主引导(主要是自动加载)和数个核心组件以及功能支持库组成; >核心组件主要包括[System,Ioc,Http,ORM,DataBase,Router]组成; >其中Router组件可以进行用户请求的解析处理,如果无需处理用户请求,如定时任务脚本,可不执行该模块; ###二.路由模块 >标准路由器包括处理解析器,路由配置解析插件,路由解析组件构成; >执行主要流程为,载入路由配置,路由处理器解析路由得到路由处理器实例; >根据配置依次解析路由器插件,解析路由器组件,转发处理结果和异常捕获; ####配置范例 ``` 'Console.Login.Action' => [ 'Pattern' => '^/login.do$', // 路由器正则规则,匹配Uri 'Forward' => 'Method::Application.Member.Controller.Console.ActionLogin', 'Validator' => [ 'Post.Username' => [ 'Processor' => 'Regex::^[a-zA-Z0-9_]{3,16}$', 'Exception' => 'Throws::Oday.Exception.Login.302', 'Required' => true ], 'Post.Password' => [ 'Processor' => 'Regex::^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$', 'Exception' => 'Throws::Oday.Exception.Login.302', 'Required' => true ], ], 'Exception' => [ 'Oday.Exception.Login.301' => 'Text::301', // 验证码不正确 'Oday.Exception.Login.302' => 'Text::302', // 校验器未通过 'Oday.Exception.Login.303' => 'Text::303', // 用户名不存在 'Oday.Exception.Login.304' => 'Text::304', // 登录密码错误 ], ] ``` ####核心配置 1.用作识别路由器,在同一张路由表中,名称不能重复; ``` 'Console.Login.Action' // 路由名称 ``` 2.路由匹配规则,满足该规则的URI会转发至该路由执行; ``` 'Pattern' => '^/login.do$', ``` 3.路由转发器,匹配路由如何进行转发,目前支持三种转发方式; ``` /* 转发到控制器处理,ActionLogin表示控制器静态方法名,前面为完整类名 */ 'Forward' => 'Method::Application.Member.Controller.Console.ActionLogin' ``` ``` /* 直接调用试图处理,Login.tpl表示文件名,前面为所在路径 */ 'Forward' => 'View::Console.Login.tpl' ``` ``` /* 文本方式相应,直接输出结果 */ 'Forward' => 'Text::这里是登录窗口' ``` ``` /* 路由转发,多级路由配置方式 */ 'Forward' => 'Router::'.System::AppPath.'Member'.DS.'Router'.DS.'Blog.int.php', ``` 4.异常处理器,过滤路由执行过程产生的异常,进行处理,未能捕获的异常交由系统处理; ``` /* Oday.Exception.Login为异常类名,301为异常代码,Text::301为捕获后的处理方式 */ 'Exception' => [ 'Oday.Exception.Login.301' => 'Text::301', // 验证码不正确 'Oday.Exception.Login.302' => 'Text::302', // 校验器未通过 'Oday.Exception.Login.303' => 'Text::303', // 用户名不存在 'Oday.Exception.Login.304' => 'Text::304', // 登录密码错误 ], ``` ####插件配置 1.校验器配置 ``` 'Validator' => [ 'Post.Username' => [ // 过滤的用户输入,有Post,Get,Matches三种类型 'Processor' => 'Regex::^[a-zA-Z0-9_]{3,16}$', // 支持Regex正则和Method方法校验 'Exception' => 'Throws::Oday.Exception.Login.302', // 出错处理 'Required' => true // 是否是必选参数 ], 'Post.Password' => [ 'Processor' => 'Regex::^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$', 'Exception' => 'Throws::Oday.Exception.Login.302', 'Required' => true ], ], ``` 2.拦截器配置 ``` /* LoginUser为拦截处理方法名称,前面为拦截器类名 */ 'Interceptor' => 'Fam520.Interceptor.Broker.LoginUser', ``` ``` /* 拦截器链的配置方法 */ 'Interceptor' => [ 'Fam520.Interceptor.Broker.LoginUser', 'Fam520.Interceptor.Member.LoginUser', ] ``` 3.更多路由插件文档待补充 ###三.ORM模块 >ORM模块主要用于解决数据层(数据库)到逻辑层(对象),以及对象之间的映射关系; >实质解决包括Dao层(对象管理)和Modal层(对象模型)两个核心内容; ####1.建立模型 一个Swiftx的ORM模型对象需要建立两个文件,一个是模型类,另外一个是同名的ini配置文件; 模型ini配置文件实质上能够解决模型层实际上要处理的大多数问题; 而模型类则可以对模型所存在的较复杂,常规配置难以处理的问题进行覆写,由代码进行解决; ```