찾다
백엔드 개발PHP 튜토리얼zendframework를 사용한 PHP 프로그래밍 예제

이 글은 "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']."";
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 "
    "; echo $this->partialLoop('row_pages.phtml', $this->News); echo "
"; } ?>
/views/scripts/row_pages.phtml


  • title; ?> 发表时间: createtime); ?>

  • /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'];
    ?>
    

    스크린샷 실행:


    링크 클릭:


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

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

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    华为GT3 Pro和GT4的差异是什么?华为GT3 Pro和GT4的差异是什么?Dec 29, 2023 pm 02:27 PM

    许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

    修复:截图工具在 Windows 11 中不起作用修复:截图工具在 Windows 11 中不起作用Aug 24, 2023 am 09:48 AM

    为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

    如何修复无法连接到iPhone上的App Store错误如何修复无法连接到iPhone上的App Store错误Jul 29, 2023 am 08:22 AM

    第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

    jquery如何隐藏select元素jquery如何隐藏select元素Aug 15, 2023 pm 01:56 PM

    jquery隐藏select元素的方法:1、hide()方法,在HTML页面中引入jQuery库,可以使用不同选择器来隐藏select元素,ID选择器将selectId替换为你实际使用的select元素的ID;2、css()方法,使用ID选择器选择需要隐藏的select元素,使用css()方法将display属性设置为none,并将selectId替换为select元素的ID。

    php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决Jun 13, 2016 am 10:23 AM

    php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

    Laravel 集合中如何使用 Where 方法Laravel 集合中如何使用 Where 方法Mar 10, 2024 pm 10:21 PM

    Laravel集合中如何使用Where方法Laravel是一个流行的PHP框架,它提供了丰富的功能和工具,方便开发者快速构建应用程序。其中,集合(Collection)是Laravel中一个非常实用和强大的数据结构,开发者可以使用集合对数据进行各种操作,如过滤、映射、排序等。在集合中,Where方法是一个常用的方法,用于根据指定的条件过滤集

    Laravel 集合中的 Where 方法实用指南Laravel 集合中的 Where 方法实用指南Mar 10, 2024 pm 04:36 PM

    Laravel集合中的Where方法实用指南在Laravel框架的开发过程中,集合(Collection)是一个非常有用的数据结构,它提供了丰富的方法来操作数据。其中,Where方法是一个常用的筛选方法,能够根据指定条件来过滤集合中的元素。本文将介绍Laravel集合中Where方法的使用,通过具体的代码示例来演示其用法。1.基本用法Where方法的

    linux要用select的原因是什么linux要用select的原因是什么May 19, 2023 pm 03:07 PM

    因为select可以使开发者在同时等待多个文件缓冲区,可减少IO等待的时间,能够提高进程的IO效率。select()函数是IO多路复用的函数,允许程序监视多个文件描述符,等待所监视的一个或者多个文件描述符变为“准备好”的状态;所谓的”准备好“状态是指:文件描述符不再是阻塞状态,可以用于某类IO操作了,包括可读,可写,发生异常三种。select是一个计算机函数,位于头文件#include。该函数用于监视文件描述符的变化情况——读写或是异常。1.select函数介绍select函数是IO多路复用的函

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    뜨거운 도구

    안전한 시험 브라우저

    안전한 시험 브라우저

    안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 새 버전

    SublimeText3 Linux 최신 버전

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)