zoukankan      html  css  js  c++  java
  • 初学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

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

  • 相关阅读:
    第10组 团队展示
    第一次结对编程作业
    13.Vue.js 组件
    12.Vue.js 表单
    11.Vue.js-事件处理器
    10.Vue.js 样式绑定
    9.Vue.js 监听属性
    8.Vue.js-计算属性
    7.循环语句
    6.Vue.js-条件与循环
  • 原文地址:https://www.cnblogs.com/zhangjun516/p/2921865.html
Copyright © 2011-2022 走看看