zoukankan      html  css  js  c++  java
  • PHP的MVC实现(3)

    接下来是视图??我去掉了HTML以节省空间,你可以查看这篇文章的完整代码。

    以下是代码片段:
    <?php  
    /**  
    * Binds product data to HTML rendering  
    */  
    class ProductView {  
    /**  
    * Private  
    * $model an instance of the ProductModel class  
    */  
    var $model;  
    /**  
    * Private  
    * $output rendered HTML is stored here for display  
    */  
    var $output;  
    //! A constructor.  
    /**  
    * Constucts a new ProductView object  
    * @param $model an instance of the ProductModel class  
    */  
    function ProductView (&$model) {  
    $this->model=& $model;  
    }  
    //! A manipulator  
    /**  
    * Builds the top of an HTML page  
    * @return void  
    */  
    function header () {  
    }  
    //! A manipulator  
    /**  
    * Builds the bottom of an HTML page  
    * @return void  
    */  
    function footer () {  
    }  
    //! A manipulator  
    /**  
    * Displays a single product  
    * @return void  
    */  
    function productItem($id=1) {  
    $this->model->listProduct($id);  
    while ( 
    $product=$this->model->getProduct() ) {  
    // Bind data to HTML  
    }  
    }  
    //! A manipulator  
    /**  
    * Builds a product table  
    * @return void  
    */  
    function productTable($rownum=1) {  
    $rowsperpage=’20’;  
    $this->model->listProducts($rownum,$rowsperpage);  
    while ( 
    $product=$this->model->getProduct() ) {  
    // Bind data to HTML  
    }  
    }  
    //! An accessor  
    /**  
    * Returns the rendered HTML  
    * @return string  
    */  
    function display () {  
    return 
    $this->output;  
    }  
    }  
    ?> 

      最后是控制器,我们将把视图实现为一个子类。

    以下是代码片段:
    <?php  
    /**  
    * Controls the application  
    */  
    class ProductController extends ProductView {  
    //! A constructor.  
    /**  
    * Constucts a new ProductController object  
    * @param $model an instance of the ProductModel class  
    * @param $getvars the incoming HTTP GET method variables  
    */  
    function ProductController (&$model,$getvars=null) {  
    ProductView::ProductView($model);  
    $this->header();  
    switch ( 
    $getvars[’view’] ) {  
    case 
    "product":  
    $this->productItem($getvars[’id’]);  
    break;  
    default:  
    if ( empty (
    $getvars[’rownum’]) ) {  
    $this->productTable();  
    } else {  
    $this->productTable($getvars[’rownum’]);  
    }  
    break;  
    }  
    $this->footer();  
    }  
    }  
    ?> 

      注意这不是实现MVC的唯一方式??比如你可以用控制器实现模型同时整合视图。这只是演示模式的一种方法。
  • 相关阅读:
    《ECMAScript6入门》___阮一峰 笔记
    JS的常用正则表达式 验证密码(转载自用)
    微信小程序 写一个获取验证码 及setInterval 使用基本方法
    python中将图片从客户端(client)推到(POST)到服务器端(server)的方法
    用python将MSCOCO和Caltech行人检测数据集转化成VOC格式
    Tensorflow物体检测(Object Detection)API的使用
    opencv获取IP摄像头(IP-camera)实时视频流
    利用flask将opencv实时视频流输出到浏览器
    Tensorflow同时加载使用多个模型
    opencv在同一窗口打印多张图片
  • 原文地址:https://www.cnblogs.com/kuyuecs/p/1274529.html
Copyright © 2011-2022 走看看