Szopen Xiao

ToKnot 框架说明

2014-12-16

###主要应用场景
ToKnot框架主要应用于开发Web应用。通过框架提供的工具能构快速构建一个web应用,应用初始化工具能创建应用所需要的目录,并初始化部分常用代码。 对于应用业务逻辑调试,框架提供了命令行调试的方法,这对于不希望输出到用户端的时候,此功能十分有用。
框架原生支持 REST API的开发,由于ToKnot在用户业务逻辑部分自动分离了HTTP协议请求方法,所以对于相同URI请求,开发者只需要简单创建对应方法的类方法即可。
对于中小型网站,由于开发人员对于企业所使用的框架的掌握水平不一样,会增加他们的学习成本以及开发时间成本。目前常用的框架对于开发方式都有很多规定,对于不熟悉该框架的人员来说,并不能直接上手开发。ToKnot框架由于没有制定开发模式,编码规范,所以对于开发人员并不存在学习成本。当通过框架工具初始化应用后,你只需要了解FMAI的几个函数(FMAI说明文档)即可搭建一个简单应用。
应用重新架构或迁移到其他框架的成本也十分低,在没有使用ToKnot框架的相关功嗯模块的情况下,你自需要把业务类方法的声明复制粘贴到你新框架应用中去即可。

###开发模式
ToKnot框架采用框架驱动模式,对于Web请求,框架会根据规则自动调用相关业务模块,并运行。此模式类似MVC开发模式。

###路由器
框架支持三种路由规则,包括HTTP参数模式,URL路径模式以及自定义规则。
在HTTP参数模式中,框架默认路由控制器会提起第一个GET参数的KEY值信息来作为调用路径,按规则调用应用的业务类,并分离到HTTP请求方法对于的类方法上去。
URL路径模式与HTTP参数模式类似,调用路径为URL中的路径,此方法需要WEB服务器的支持。
自定义模式为用户自定义URI来映射业务类,并且支持正则匹配。下面是运行逻辑:
router-process

###应用的业务类
ToKnot框架对业务类制定了简单的规则,包括:必须实现对应的HTTP请求方法,至少实现了GET方法,必须使用命名空间。对于类命名规则,其他方法的命名规则,以及必须继承的类等等并没有强制限制。但是通过框架工具初始化的应用会默认继承来自框架的用户访问控制器,由于该控制器继承了框架Object基本对象,会引入框架的伪多重继承特性,导致业务类不能直接定义构造函数,而是使用__init来代替。
业务类使用数据库,模板,配置相关功能时通常建议通过FMAI对象来进行访问,该对象是以单例模式存在的,所以在任何时候通过FMAI::getInstance()方法即可获得对象实例,并方法相关方法。在业务类中,框架会在类实例化时,将FMAI实例作为类初始化的第一个参数传给业务对象,而伪多重继承时,使用$this指针即可访问FMAI的公共方法。

###不重造轮子
ToKnot框架只提供了与现有框架不一样的东西,比如不一样的用户访问控制系统,数据库操作。对于网络通信,事件处理,邮件处理等等已经存在很优秀的解决方案,因此ToKnot并不提供,还有对于PHP已经提供了相关功能并且很完善了的功能,ToKnot并不再封装一边,而对于Session功能则是因为接口定制需要。而对于SOAP,OAuth等都没有提供,并且这些功能已经有了其他解决方案。

###异常处理
ToKnot已经能够捕获几乎所有的错误,并将这些错误转换成异常信息,对于Notice信息同样会被当成异常,所以应用开发时必须避免这类信息的产生。在开发模式,异常会被直接显示出来,而对于非开发模式,异常信息会被保存到应用的日志文件中去,而浏览器将会收到HTTP 500 错误。

comments powered by Disqus