初学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

 

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

你可能感兴趣的:(r)