PHP框架之Yaf框架入门

框架的存在主要意义就是提高程序员的开发效率,同时也带来性能上的一部分损失。
当前开发面向对象已经成为主流,同时为了规范开发使用MVC模式已经成为了一种趋势,当前市面上的框架非常之多,大部分也是MVC模式,但是相对来说对于PHP性能都一定的损失。

那么有没有一种框架既能满足开发效率,又尽可能少的减少性能的损失呢?于是Yaf框架面世。

Yaf是以PHP插件的形式出现,所以少了编译加载等步骤,加强了性能。提供MVC模式,有一定的路由规则,一定的错误处理机制,有一定的触发器。
同时也伴之有不足之处比如说缺少ORM等形式

Yaf的框架搭建的时候目录结构:

Yaf的启动

配置Yaf的路由规则 开启URL重写

SAE下的重写

输出HelloWorld

创建demo

配置文件 至少一个application.directory
其他可选:

自动加载器
Autoloader 目录映射加载MVC类
非框架MVC类 Yaf支持全局类和自身类的两种加载方式 支持大小写敏感和大小写不敏感两种方式

全局类和自身类(本地类)
全局类:指有产品之间共享的类,这些类库的路径是通过ap.library在php.ini
本地类:产品自身的类库,这些类库的路径是通过在产品的配置文件中,通过ap.library配置的
在yaf中,通过调用Yaf_Loader的regiterLocalNamespace方法,来申明那些类前缀是本地类,即可

类加载规则
下划线分割目录信息,Yaf按照目录信息完成自动加载

Bootstrap 引导程序 提供一个全局配置的入口

Yaf支持的Hook
routerStartup
routerShutdown

dispatchLoopStartup
preDispatch
posDispatch
dispatchLoopShutdown

自定义插件(可接受两个参数 Yaf_Request_Abstract 和 Yaf_Response_Abstract)

Yaf插件 必须继承自Yaf_Plugin_Abstract plugins目录

路由和路由协议
路由组件有两个部分:路由器(Yaf_Router)和路由协议(Yaf_Route_Abstract).
路由注册的顺序很重要,最后注册的路由协议,最先尝试路由,这就有个陷阱,请注意。

默认情况下路由器是Yaf_Router 默认路由协议 Yaf_Route_Static 基于Http路由的,他期望一个请求时Http请求并且请求对象是使用yaf_Request_Http

//其实路由器也提供给我们不同的方法来得到和设置包含在它内部的信息,一些重要的方法如下:
getCurrentRoute() //在路由结束以后, 获取起作用的路由协议
getRoute(), getRoutes();//看函数基本意思也就知道.

自定义路由器:申明你的路由协议实现了Yaf_Route_Interface接口即可

异常和错误

application.dispatcher.throwException 打开的情况下 会抛异常,否则会触发错误

0条留言