php利用zendframework编程实例
Jul 30, 2016 pm 01:29 PM本文章参考《php顶级框架zendframe开发实战》第四章内容,并完整实现...
首先将用到的css文件下载下来:http://download.csdn.net/download/unityoxb/4058802
解压后把default和common两个文件复制到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;
打开mysql,使用source mysql.sql即可创建表结构
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;"
3、public/index.php
// Define application environment defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : '<strong>development</strong>')); //修改成测试环境
4、创建文章展示model(model主要存储数据模型类似javabean,或者从数据库获取数据并保存在内存里)
执行命令: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; } } } ?>
5、创建controller
执行命令: zf create controller news 会自动生成controllers/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"; } }
执行命令: zf create controller page 和 zf create action detail page
会自动生成 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; } }
5、接下来创建视图文件
/views/scripts/news/index.phtml
<?php echo "<h3>".$this->News[0]['title'].""; echo $this->News[0]['body']; //echo $this->name; if($this->News) { /*echo "
- ";
// print_r($this->News);
foreach($this->News as $val)
{
echo "
- "."".$val['title'].""." "; } echo "
- ";
echo $this->partialLoop('row_pages.phtml', $this->News);
echo "
/views/scripts/row_pages.phtml
/views/scripts/page/detail.phtml
<?php echo "<h2>".$this->page['title'].""; echo "发表:".date('Y-m-d', $this->page['createtime']).""; echo "<hr>"; echo $this->page['body']; ?>
运行截图:
点击链接:
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php利用zendframework编程实例,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quelles sont les différences entre Huawei GT3 Pro et GT4 ?

Correctif : l'outil de capture ne fonctionne pas sous Windows 11

Méthode de traitement asynchrone de la programmation simultanée Select Channels Go à l'aide de Golang

Comment réparer l'erreur Impossible de se connecter à l'App Store sur iPhone

Comment masquer l'élément select dans jquery

Comment implémenter la liaison d'événement de changement d'éléments sélectionnés dans jQuery

Comment utiliser la méthode Where dans les collections Laravel
