Home  >  Article  >  Backend Development  >  PHP programming example using zendframework

PHP programming example using zendframework

WBOY
WBOYOriginal
2016-07-30 13:29:421095browse

This article refers to the content of Chapter 4 of "Practical Development of PHP Top Framework zendframe" and fully implements it...

First download the css file used: http://download.csdn.net/download/unityoxb/4058802

After decompression, copy the default and common files to the public/skins directory;

1. The database file used 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;

Open mysql and use source mysql.sql to create the table structure

2. Configure the application.ini file (hahacom/applicaton/configs)

Mainly configure the zend Framework to connect to 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. Create an article display model (the model mainly stores data and the model is similar javabean, or get data from the database and save it in memory)

Execute the command: zf create model page

A models/Page.php file will be automatically generated

<?php

class Application_Model_Page
{
   protected $_name = &#39;core_pages&#39;;
   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. Create a controller

Execute the command: zf create controller news will automatically generate 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(&#39;top&#39;=>1, 'comment'=>1);
        $newsStar = $modelPage->getPage($where);
        //print_r($newsStar);
        $this->view->News = $newsStar;
        //$this->view->name = "hahaha"; 
    }


}

Execute the command: zf create controller page and zf create action detail page

will automatically generate 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. Next create the view file

/ views/scripts/news/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 = &#39;listNews&#39;>";
   echo $this->partialLoop('row_pages.phtml', $this->News);
   echo "</ul>";
}
?>

/views/scripts/row_pages.phtml

<li>
   <a href = "/page/detail/id/<?php echo $this->id; ?>"><?php echo $this->title; ?></a>
   发表时间: <?php echo date(&#39;Y-m-d&#39;, $this->createtime); ?>
</li>

/views/scripts/page/detail.phtml

<?php
   echo "<h2>".$this->page['title']."</h2>";
   echo "发表:".date('Y-m-d', $this->page['createtime'])."";
   echo "<hr/>";
   echo $this->page['body'];
?>

Running screenshot:


Click the link:


Copyright Statement: This article is an original article by the blogger and may not be reproduced without the blogger's permission.

The above introduces PHP programming examples using zendframework, including aspects of content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn