Yod是一个C语言编写的PHP框架,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
YOD_VERSION Yod框架的三位版本信息 YOD_RUNTIME Yod框架的开始运行时间 YOD_FORWARD forward最大嵌套深度 YOD_RUNMODE Yod框架的运行模式(按位标记:1 自动运行,2 记录错误日志,4 显示Debug信息(仅在debug模式下有效),8 记录Debug信息(仅在debug模式下有效)) YOD_CHARSET 输出的字符编码方式 YOD_VIEWEXT 视图文件的扩展名(默认:.php) YOD_PATHVAR 获取uri路由信息的变量名 YOD_EXTPATH Yod框架的扩展文件(数据库驱动等)的路径 YOD_LOGPATH Yod框架的日志存储目录 YOD_RUNPATH APP的运行目录(定义了此常量后自动运行模式才会生效)
这是一个简单的模式,只有两个文件
hello.php
<?php
//set_time_limit(0);
error_reporting(E_ALL);
date_default_timezone_set('Asia/Shanghai');
defined('YOD_VIEWEXT') or define('YOD_VIEWEXT', '.tpl');
defined('YOD_RUNPATH') or define('YOD_RUNPATH', dirname(__FILE__));
class HelloController extends Yod_Controller
{
public function init()
{
$this->_name = '';
$this->_view['tpl_path'] = YOD_RUNPATH;
}
public function indexAction()
{
$this->assign($content, 'Hello World!');
$this->display('hello');
}
public function errorAction()
{
echo '<pre>';
print_r($this);
}
}
hello.tpl
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
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
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会覆盖其他方式的配置值
Yod_Application 代表一个产品/项目, 是Yod运行的主导者, 真正执行的主题. 它负责接收请求, 协调路由, 分发, 执行, 输出.
主要方法: run,config,import,app,autoload
Yod_Request 代表了一个实际请求, 一般的不用自己实例化它, Yod_Application 会自动根据当前请求实例它.
主要方法: route,dispatch,errorAction,error404
Yod_Controller 是Yod的MVC体系的核心部分, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用逻辑.
主要方法: config,import,model,dbmodel,assign,render,display,widget,forward,redirect,error404
Yod_Action 是MVC中C的动作, 一般而言动作都是定义在Yod_Controller的派生类中的, 但是有的时候, 为了使得代码清晰, 分离一些大的控制器, 则可以采用单独定义Yod_Action来实现.
Yod_Widget 在MVC中V的一些公共的部分可以采用单独定义Yod_Widget来实现.
Yod_Model 是Yod的MVC体系的核心部分, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的应用模型.
主要方法: getInstance,find,select,count,save,update,remove,lastQuery,config,import,model,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
Yod_Database 是Yod的数据库驱动抽象类, 可以通过继承已有的类, 来实现这个抽象类, 从而添加应用自己的数据库驱动.
主要方法: db,getInstance,config,create,insert,update,delete,select,lastQuery
Yod_DbPdo 是Yod的数据库PDO驱动类,实现了对PDO的简单封装.
主要方法: connect,fields,execute,query,count,fetch,fetchAll,transaction,commit,rollback,insertid,quote,free,close,errno,error