1.1 关于Yod
Yod是一个C语言编写的PHP框架,Yod同时支持单入口和多入口模式,应用灵活,形式自由
1.2 Yod安装/配置
Yod只支持PHP5.2及以上的版本
1.2.1 编译Yod
$PHP_BIN/phpize
./configure --with-php-config=$PHP_BIN/php-config
make
make install
1.2.2 以debug模式编译Yod
$PHP_BIN/phpize
./configure --enable-yod-debug --with-php-config=$PHP_BIN/php-config
make
make install
1.3 Yod定义的常量
YOD_VERSIONYod框架的三位版本信息
YOD_RUNTIMEYod框架的开始运行时间
YOD_FORWARDforward最大嵌套深度
YOD_RUNMODEYod框架的运行模式(按位标记:1 自动运行,2 记录错误日志,4 显示Debug信息(仅在debug模式下有效),8 记录Debug信息(仅在debug模式下有效))
YOD_CHARSET输出的字符编码方式
YOD_VIEWEXT视图文件的扩展名(默认:.php)
YOD_PATHVAR获取uri路由信息的变量名
YOD_EXTPATHYod框架的扩展文件(数据库驱动等)的路径
YOD_LOGPATHYod框架的日志存储目录
YOD_RUNPATHAPP的运行目录(定义了此常量后自动运行模式才会生效)
1.4 Hello World!
这是一个简单的模式,只有两个文件
hello.php
public functioninit()
{$this->_name='';$this->_view['tpl_path'] =YOD_RUNPATH;
}
public functionindexAction()
{$this->assign($content,'Hello World!');$this->display('hello');
}
public functionerrorAction()
{
echo'
';print_r($this);
}
}
hello.tpl
Hello World!1.5 Yod目录结构
Yod的目录结构比较灵活
1.5.1 标准目录结构
- index.php // APP 入口
+ public
+ yodphp
+ drivers // 数据库驱动
+ app
+ actions // Other actions
+ configs
- config.php // 配置文件
+ controllers
- IndexController.php // 控制器
+ extends // APP扩展
+ models // 模型
- DemoModel.php
+ views
+ index // 视图
- index.php
1.5.2 多入口目录结构
- index.php // index 入口(一般情况控制器会写在入口文件里,参考Hello World!)
- hello.php // hello 入口
+ public
+ app
1.5.3 精简目录结构
- index.php // index 入口(require configs.php, controllers.php, models.php)
+ public
+ app
- configs.php
- controllers.php
- models.php
+ views
+ index // 视图
- index.php
1.6 Yod应用的配置结构
Yod应用配置的结构比较灵活
1.6.1 标准配置结构
- index.php // APP 入口
+ app
+ configs
- config.php // 配置文件
1.6.2 多文件配置结构
- index.php // APP 入口
+ app
+ configs
- base.config.php // 配置文件
- db_dsn.config.php // 数据库配置
...
1.6.3 使用$config变量配置
全局变量$config会覆盖其他方式的配置值
2.1 Yod_Application
Yod_Application 代表一个产品/项目, 是Yod运行的主导者, 真正执行的主题. 它负责接收请求, 协调路由, 分发, 执行, 输出.
主要方法: run,config,import,app,autoload
2.2 Yod_Request
Yod_Request 代表了一个实际请求, 一般的不用自己实例化它, Yod_Application 会自动根据当前请求实例它.
主要方法:route,dispatch,errorAction,error404
2.3 Yod_Controller
Yod_Controller 是Yod的MVC体系的核心部分, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用逻辑.
主要方法:config,import,model,dbmodel,assign,render,display,widget,forward,redirect,error404
2.4 Yod_Action
Yod_Action 是MVC中C的动作, 一般而言动作都是定义在Yod_Controller的派生类中的, 但是有的时候, 为了使得代码清晰, 分离一些大的控制器, 则可以采用单独定义Yod_Action来实现.
2.5 Yod_Widget
Yod_Widget 在MVC中V的一些公共的部分可以采用单独定义Yod_Widget来实现.
2.6 Yod_Model
Yod_Model 是Yod的MVC体系的核心部分, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用模型.
主要方法:getInstance,find,select,count,save,update,remove,lastQuery,config,import,model,dbmodel
2.7 Yod_DbModel
Yod_DbModel 是Yod的MVC中M的扩展, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用模型.
主要方法:getInstance,table,find,select,count,save,update,remove,field,from,join,where,group,having,order,limit,union,comment,params,parseQuery
2.8 Yod_Database
Yod_Database 是Yod的数据库驱动抽象类, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的数据库驱动.
主要方法:db,getInstance,config,create,insert,update,delete,select,lastQuery
2.9 Yod_DbPdo
Yod_DbPdo 是Yod的数据库PDO驱动类,实现了对PDO的简单封装.
主要方法:connect,fields,execute,query,count,fetch,fetchAll,transaction,commit,rollback,insertid,quote,free,close,errno,error