首頁 >後端開發 >php教程 >韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 札记心得

韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 札记心得

WBOY
WBOY原創
2016-06-13 10:36:081117瀏覽

韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 笔记心得

韩顺平 PHP视频教程 zend framework1 zend介绍 zend快速入门

Mvc 框架 –zend  framework

   zend  framework的简介

1         php流行的MVC框架介绍

a  zend  framework

b  thinkphp(国人开发)

c  yii(外企用的比较多)

d  cakephp

m  model模型

v  view 视图

c  controller控制器

 

核心的设计思想:把数据的输入,数据的处理,数据的显示分开。

框架:有zend  framework提供一个目录结构和规范,我们程序员只需要在规定的文件和位置写自己的代码就ok了。

 

优点:

程序更加规范

程序的开发效率提高了

程序的可读性增加

d 程序的可维护性增加了

不足:

配置比较复杂。

 

   为什么有zend  framework

   zend  framework的原理

    zend  framework版用户登录系统

   zend  framework的投票系统

   zend  framework购物车系统

    Php发送电子邮件。

 

快速体验案例

  目的是让大家开发zend  framework项目的基本流程,配置如何处理。

配置成功后,可以看到欢迎界面即可。

 

开发步骤:

1         下载一个最新的zend  framework

2         创建一zend  framework工程

2.1       手工创建

2.2       Zf.bat创建

2.2.1          进入zf.bat所在目录

2.2.2          使用命令zf.bat  create project 项目的全路径

 

 

2.2.3          zendstudio 创建

2.2.4          拷贝直接创建

2.2.5          引入库到项目中 library目录下库大库小不影响,因为php主要是编译

2.2.6          开始配置apache,让它支持apache框架

2.2.7          开启PDOPDO相关的数据库引擎

Php.ini中开启extension=php_pdo_mysql.dll

如果是php5.2  应该直接启动extension=php_pdo.dll

Apache的配置文件httpd.conf配置文件,修改如下

LoadModule rewrite_module modules/mod_rewrite.so

 

修改AllowOverride None

AllowOverride All

 

 

 

 

韩顺平 PHP视频教程 zend framework2 zend快速入门

 

 

配置虚拟主机:

如果开发环境是自定义安装:

启动虚拟主机,httpd.conf配置文件,修改如下

 

# Virtual hosts

Include "conf/extra/httpd-vhosts.conf"

 

Httpd-vhost.conf文件配置 配置我们自己的虚拟主机

 

#配置我们自己的虚拟主机

   DocumentRoot "F:/xampp/htdocs/zendfrm/public"

   ServerName harry.com

   DirectoryIndex  index.php  http://harry.com/index.php

   # This should be omitted in the production environment

   SetEnv APPLICATION_ENV development

 

  

       Options Indexes MultiViews FollowSymLinks

       AllowOverride All

       Order allow,deny

       Allow from all

  

 

 

 

hosts中添加dns目录

harry.com

 

 

 

 

韩顺平 PHP视频教程 zend framework3 zend原理剖析 zend整合数据库

 

 

Uml时序图

 

Httpwatch  抓取http协议包的工具。

 

 

Bootstrap.php  对所有控制器的初始化工作

 

IndexController.php 对一个控制器做的初始化工作

 

 

日志记录启动文件:

F:\xampp\htdocs\zendfrm\public\index.php12-07-26 05:31:58

F:\xampp\htdocs\zendfrm\application\Bootstrap.php12-07-26 05:31:58

F:\xampp\htdocs\zendfrm\application\controllers\IndexController.php12-07-26 05:31:58init..

F:\xampp\htdocs\zendfrm\application\controllers\IndexController.php12-07-26 05:31:58index..

 

用户登录后,显示消息列表。

创建数据库

 

/*

Navicat MySQL Data Transfer

 

Source Server         : localhost_3306

Source Server Version : 50516

Source Host           : localhost:3306

Source Database       : testzf

 

Target Server Type    : MYSQL

Target Server Version : 50516

File Encoding         : 65001

 

Date: 2012-07-26 14:10:03

*/

 

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for `message`

-- ----------------------------

DROP TABLE IF EXISTS `message`;

CREATE TABLE `message` (

  `message_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `sender` varchar(64) NOT NULL,

  `getter` varchar(64) NOT NULL,

  `sendtime` datetime NOT NULL,

  `content` varchar(2000) NOT NULL,

  PRIMARY KEY (`message_id`)

) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

 

-- ----------------------------

-- Records of message

-- ----------------------------

INSERT INTO `message` VALUES ('1', '张三', '李海', '2012-07-19 14:01:33', '你好啊,还在吗?');

INSERT INTO `message` VALUES ('2', '李四', '张国荣', '2012-07-09 14:02:18', '风继续吹');

INSERT INTO `message` VALUES ('3', '回音哥', '郭德纲', '2012-07-26 14:02:39', '我的歌声里');

INSERT INTO `message` VALUES ('4', '李逍遥', 's', '2012-07-26 14:03:25', '真漂亮');

INSERT INTO `message` VALUES ('5', '张柏芝', '谢霆锋', '2012-07-27 14:04:39', '原谅我吧');

INSERT INTO `message` VALUES ('6', '周立波', '周瑾', '2012-07-30 14:05:13', '你不和我搭档了吗?');

INSERT INTO `message` VALUES ('7', '李云龙', '刘少奇', '2012-07-17 14:07:08', '我是华野的');

INSERT INTO `message` VALUES ('8', '毛总东', '邓小平', '2012-07-25 14:07:40', '全心全意为人民服务');

INSERT INTO `message` VALUES ('9', '邓小平', '江泽民', '2012-07-25 14:08:10', '发展是硬道理');

 

 

Zend一般不和smarty融合一起操作。因为它自己有。

韩顺平 PHP视频教程 zend framework4 zend原理深度剖析

总控index.php每次都经过这。即使输入harry.com/uu,只要保证前面的域名不变化,怎么访问资源都会到总控。

重写机制  .htaccess

 

RewriteEngine On   启用重写机制

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ index.php [NC,L]

 

.   除了\n的任意字符。

php项目中,我们通过对url的重写,可以完成整个只有一个入口的项目

 

 

.htaccess

 

多入口

RewriteRule ^.*$\.php   enter.php

RewriteRule ^.*$\.html   enter.html

 

Index发送给apache  rewrite机制记录下来 首先调用总控——boot——

 

约定俗成

如果有错误  ErrorController.php  该控制器来处理,它是处理机制。我们的控制器 区分大小写。

 

xxAction  的格式  xx不能大写 

 

总控使用了一点反射机制。

 

步骤

1 先在controllers文件下添加

class  testController extends  Zend_Controller_Action{

  public  function  init(){

   

  }

  public functionloginAction(){

    //echo '用户登录';

    $this->render("login");

  }

}

 

 

优化代码:

Bootstrap.php 数据库初始化代码的优化。

 

抽象出来一个类

//做一个父类,专门供其它的Controller来继承

class  BaseController extends Zend_Controller_Action{

 

public function init()

{

  //初始化我们的数据库适配器

 $url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';

 $dbconfig=new Zend_Config_Ini($url,"mysql");

 $db=Zend_Db::factory($dbconfig->db);

 $db->query('SET NAMES  UTF8');

 Zend_Db_Table::setDefaultAdapter($db);

}

 

}

 

 

 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn