yaf没有自带的orm,所以必须自己集成orm。今天我就介绍自己喜欢的wedoo数据库操作类
目前使用的版本是0.9.8.3  yaf目录

1.修改public/index.php,在第一句写上

static $_db = NULL;//数据库静态变量

2.修改配置文件conf/application.ini

application.library = APP_PATH “/library”

;数据库加载
database.database_type = “mysql”
database.database_name = “yourdb”
database.server = “localhost”
database.username = “root”
database.password = “”
database.charset = “utf8”
database.port = 3306

数据库连接部分

3.修改library/medoo.php

use Yaf\Bootstrap_Abstract;
class medoo extends Bootstrap_Abstract
{
…. 省略
}

这里是继承Bootstrap_Abstract;

在构造方法中使用

public function __construct($options = null)
{
global $_db;//静态db
$dbConfig=\Yaf\Registry::get(“config”)->database->toarray();
$dbConfig[‘option’]=array(PDO::ATTR_CASE => PDO::CASE_NATURAL);
$options = $dbConfig;
。。。。省略N行
//以上是连接数据库的,这就是为什么要继承Bootstrap_Abstract的原因
//然后把$this->pdo = new PDO($dsn, $this->username, $this->password, $this->option);改成
if(!$_db){
$_db=$this->pdo = new PDO($dsn, $this->username, $this->password, $this->option);
}else{
$this->pdo=$_db;
}

}

配置完毕。这里解释一下为什么要用$_db。简单来说就是单例模式。

使用medoo类。我们可以在模型中这样用 Application/models/SampleModel.php

<?php
class SampleModel extends medoo{

private $_table=’mytable’;

public function show(){
$list=$this->select($this->_table,’*’, array(
‘LIMIT’=>5
));
return $list;
}
}

?>

在Application/controllers/Index.php 这样用
<?php
use Yaf\Controller_Abstract;
class IndexController extends Controller_Abstract {
public function indexAction(){
header(‘content-type:text/html;charset=utf-8’);
$model = new SampleModel();//第一次new
echo ‘<pre>’;
print_r($model->show());
echo ‘</pre>’;
$mo = new SampleModel();//第二次new
}
}
?>

用static $_db 实现单例模式,无论你new多少次模型,数据库只连接一次

1.Yaf安装  点击查看

2.zend studio 或者 eclipse 支持yaf智能提示 代码补全功能

创建临时目录 php-doc
cd php-doc
svn checkout https://svn.php.net/repository/phpdoc/modules/doc-en ./phpdoc-en
等待读取完成后,上传 auto.php 至当前目录
php auto.php phpdoc-en/en
生成 php5.3 文件夹,其中便是扩展文档。如果是php的其他版本会生成php5目录
复制需要的并加入至ZendStudio(eclipse)的PHP Libraries 即解决问题

PS:auto.php下载

3.添加智能提示图解请看本站phalcon

1.把yaf-2.3.3.tgz下载到/root
#tar zxvf yaf-2.3.3.tgz
#cd yaf-2.3.3
2.找到phpize到目录
#whereis phpize
phpize: /usr/bin/phpize
3.执行phpize
#/usr/bin/phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
4.再执行一下命令
# ./configure – -with-php-config=/usr/local/php/bin/php-config
# make && make install

Read More →