Yod是一個C語言編寫的PHP框架,Yod同時支持單入口和多入口模式,應用靈活,形式自由php
Yod只支持PHP5.2及以上的版本html
1.2.1 編譯Yod數據庫
$PHP_BIN/phpize ./configure --with-php-config=$PHP_BIN/php-config make make install
1.2.2 以debug模式編譯Yodapp
$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.phpfetch
<?php
ui
//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.tplthis
<html>
編碼
<head>
<title>Hello World!</title>
</head>
<body>
<?php echo $content; ?>
</body>
</html>
Yod的目錄結構比較靈活spa
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