初学Phreeze 3

 

昨天下班之前把这个框架的流程有看了一遍,

入口文件调用三个配置文件,在入口文件里面调用dispatcher的dispatch方法,进行路由分发,在他的源文件里面有DB文件夹,其实我们可以不用那么麻烦,在Verysimple文件夹下面的Phreezer.php文件就可一帮助我们把数据库都链接好,并且去查找我们需要的东西,

GetPhreeze
1
$gc=GlobalConfig::GetInstance(); 2 $this->Phreezer=$gc->GetPhreezer(); 3 echo '<pre>'; 4 print_r($gc->GetPhreezer()); 5 echo '</pre>';

我们主要注意的是Controller,Model,我们的Controller页面会对应一个Model页面,同时,在Model层下面还有一个DAO文件夹,在DAO文件夹下面有我们Model页面对应的DAO文件和MAP文件,他们的名字都是相同的,只是后缀分别为Controller,DAO,Map  .php;分别继承了Controller,Phreezable.IDOMAP,我们的Model文件继承和他同名的DAO文件。

1 require_once ("DAO/PTestDAO.php");
2 
3 class PTest extends  PTestDAO{
4     
5 //写自己的函数
6 }
 1 class PTestMap implements IDaoMap (是一个接口,大家要实现里面的方法)
 2 {
 3     /**
 4      * Returns a singleton array of FieldMaps for the DopoolShowVideo object
 5      *
 6      * @access public
 7      * @return array of FieldMaps
 8      */
 9     public     static function GetFieldMaps(){
10         static $fm = null;
11         if ($fm == null){
12             $fm['Id']=new FieldMap('Id','ptest','id',true,FM_CALCULATION,0,null,true);
13             $fm['Name']=new FieldMap('Name','ptest','name',false,FM_CALCULATION,0,null,false);
14             $fm['Time']=new FieldMap('Time','ptest','time',false,FM_CALCULATION,0,null,false);
15         }//这个大家要去看一下源码,,绿色标记的,大家要去看怎么用,我这只是练习,看一下FieldMap.php
16         return $fm;
17     }
$fm里面的键名要和Dao文件里面的保持一致,如果不一致,我这报错为Unknown property:。。。 的错误
18 19 public static function GetKeyMaps(){ 20 static $km = null; 21 if ($km == null) 22 { 23 $km = Array(); 24 } 25 return $km; 26 27 } 28 29 }
 1 class PTestDAO extends Phreezable
 2 {
 3     public $Id;
 4 
 5     public $Name;
 6 
 7     public $Time;
 8 
 9     
10 }

 

我们应用Phreezer调用Controller文件

 1 $gc=GlobalConfig::GetInstance();
 2         $this->Phreezer=$gc->GetPhreezer();
 3         /*echo '<pre>';
 4         print_r($gc->GetPhreezer());
 5         echo '</pre>';*/
 6         $where='id<15';//where条件只需要写条件,不许要写where 字段,他在后面处理的时候,会添加
 7         $criteria=new Criteria($where);
 8         /*echo '<pre>';
 9         print_r($criteria);
10         echo '</pre>';*/
11         try{
12             $ds=$this->Phreezer->Query('PTest',$criteria); 
去看一下Phreezer.php,QueryBuilder.php,DataSet.php,它里面的跳转
13 $ds=$ds->ToObjectArray(true); //如果里面参数为false,你会发现它里面的东西很多,为true就是字段名值 14 echo '<pre>'; 15 print_r($ds); 16 echo '</pre>'; 17 }catch(Exception $ex){ 18 echo $ex->getMessage(); 19 } 20

 

仍然建议大家去看一样源代码,跟着它一步一步找方法,虽然比较麻烦,可是能够帮助里理解他的内部跳转,会更快接受。 

posted @ 2013-02-22 10:37  尹少爷  阅读(233)  评论(0编辑  收藏  举报