이 글은 "PHP 탑 프레임워크 zendframe의 실무 개발" 4장의 내용을 참고하여 이를 완벽하게 구현해 봅니다...
먼저 사용된 CSS 파일을 다운로드 받으세요: http://download.csdn. net /download/unityoxb/4058802
압축 해제 후 기본 파일과 공용 파일을 public/skins 디렉터리에 복사합니다.
1. 데이터베이스 파일은 mysql.sql을 사용했습니다
create table if not exists `core_pages`( `id` int(10) unsigned not null auto_increment comment '页面唯一ID', `cid` int(10) unsigned not null default '0' comment '分类ID', `uid` int(10) unsigned not null default '0' comment '用户ID', `title` varchar(255) not null comment '页面标题', `body` text not null comment '内容', `status` tinyint(4) not null default '1' comment '是否发布', `createtime` int(11) not null default '0' comment '创建页面时间', `updatetime` int(11) not null default '0' comment '修改页面时间', `comment` tinyint(4) not null default '0' comment '页面是否评论功能', `start` tinyint(4) not null default '0' comment '页面级别', `top` tinyint(4) not null default '0' comment '置顶', primary key (`id`) )ENGINE=InnoDB default charset=utf8;
2. application.ini 파일 구성(hahacom/applicaton/configs)
zend Framework를 주로 구성합니다. mysql 연결
[development : production] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.params.displayExceptions = 1 resources.db.adapter = "PDO_MYSQL" resources.db.params.host = "localhost" resources.db.params.username = "root" resources.db.params.password = "root" resources.db.params.dbname = "test" --这是数据名称 resources.db.isDefaultTableAdapter = "TRUE" resources.db.params.driver_options.1002 = "SET NAMES UTF8;"
// Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : '<strong>development</strong>')); //修改成测试环境
명령을 실행합니다: zf create model page
는 자동으로 models/Page.php 파일을 생성합니다
<?php class Application_Model_Page { protected $_name = 'core_pages'; public $result; public function getPage($where = array()) { $db = Zend_Db_Table::getDefaultAdapter(); // $db = $this->getAdapter(); $select = $db->select(); /*if($where != null) { //$select->where(' star = ? ', $where); //$sql = $db->quoteInto("select * from `core_pages` where `star`= ?", $where); //$result = $db->query($sql); $select->from('core_pages','*')->where('star = ?', $where)->limit(1); }*/ $select->from('core_pages','*'); if(count($where)>0) { foreach($where as $key=>$value) $select->where($key.' = ?',$value); } //$row = $result->fetch(); $row = $db->fetchAll($select); if($row) { return $row; } else { echo "================="; return null; } } public function getPages($where = null) { $db = Zend_Db_Table::getDefaultAdapter(); if(is_numeric($where)) { //$row = $db->find($where)->current(); $select = $db->select(); $select->from('core_pages','*'); $select->where('id = ?', $where); $row = $db->fetchRow($select); } if(is_array($where) && count($where)>0) { $select = $db->select(); $select->from('core_pages','*'); foreach($where as $key=>$value){ $select->where($key.'=?', $value); } $row = $db->fetchAll($select); } if($row) { return $row; } else { echo "================="; return null; } } } ?>
명령 실행: zf create Controller 뉴스는 자동으로 컨트롤러/NewsController.php를 생성합니다
<?php class NewsController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body $modelPage = new Application_Model_Page(); //$star = 1; $where = array('top'=>1, 'comment'=>1); $newsStar = $modelPage->getPage($where); //print_r($newsStar); $this->view->News = $newsStar; //$this->view->name = "hahaha"; } }
는 자동으로 Controllers/PageController.php
<?php class PageController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body } public function detailAction() { // action body $id = $this->_request->getParam('id'); $modelPage = new Application_Model_Page($id); //if($modelPage == null) //print_r('=============================='); //print_r($id); //print_r($modelPage); $page = $modelPage->getPages($id); $this->view->page = $page; } }
/views/scripts/을 생성합니다. 뉴스/index.phtml
<?php echo "<h3>".$this->News[0]['title']."</h3>"; echo $this->News[0]['body']; //echo $this->name; if($this->News) { /*echo "<ul>"; // print_r($this->News); foreach($this->News as $val) { echo "<li>"."<u>".$val['title']."</u>"."</li>"; } echo "</ul>"; */ echo "<ul class = 'listNews'>"; echo $this->partialLoop('row_pages.phtml', $this->News); echo "</ul>"; } ?>
<li> <a href = "/page/detail/id/<?php echo $this->id; ?>"><?php echo $this->title; ?></a> 发表时间: <?php echo date('Y-m-d', $this->createtime); ?> </li>
<?php echo "<h2>".$this->page['title']."</h2>"; echo "发表:".date('Y-m-d', $this->page['createtime']).""; echo "<hr/>"; echo $this->page['body']; ?>
링크 클릭:
저작권: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
위 내용은 내용적인 측면을 포함하여 zendframework를 사용한 PHP 프로그래밍 예제를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.