rom the $dbobject * @return mixed */ function getProduct() { if ( $product=$this->dao->getRow() ) return $product; else return false; } } ?>
有一点要注意的是,在模型和数据访问类之间,它们的交互从不会多于一行??没有多行被传送,那样会很快使程式慢下来。同样的程式对于使用模式的类,它只需要在内存中保留一行(Row)??其他的交给已保存的查询资源(query resource)??换句话说,我们让MYSQL替我们保持结果。
接下来是视图??我去掉了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() ) { &nbs |