zendframework를 사용한 PHP 프로그래밍 예제

WBOY
풀어 주다: 2016-07-30 13:29:42
원래의
1097명이 탐색했습니다.

이 글은 "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;
로그인 후 복사

mysql을 열고 소스 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. 기사 표시 모델을 생성합니다(모델은 주로 javabean과 유사한 데이터 모델을 저장합니다. 데이터베이스에서 데이터를 가져와 메모리에 저장합니다)

명령을 실행합니다: zf create model page

는 자동으로 models/Page.php 파일을 생성합니다

<?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. 컨트롤러 생성

명령 실행: 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(&#39;top&#39;=>1, 'comment'=>1);
        $newsStar = $modelPage->getPage($where);
        //print_r($newsStar);
        $this->view->News = $newsStar;
        //$this->view->name = "hahaha"; 
    }


}
로그인 후 복사

명령 실행: zf create Controller 페이지 zf create action 세부 페이지

는 자동으로 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/을 생성합니다. 뉴스/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'];
?>
로그인 후 복사

스크린샷 실행:


링크 클릭:


저작권: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 내용적인 측면을 포함하여 zendframework를 사용한 PHP 프로그래밍 예제를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿