fgdfg 发表于 2017-4-13 11:52:20

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

韩顺平 PHP视频教程 zend framework第1讲 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了。
  
  优点:
  a 程序更加规范
  b 程序的开发效率提高了
  c 程序的可读性增加
  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 开启PDO和PDO相关的数据库引擎
  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 framework第2讲 zend快速入门
  
  
  配置虚拟主机:
  如果开发环境是自定义安装:
  启动虚拟主机,httpd.conf配置文件,修改如下
  
  # Virtual hosts
  Include "conf/extra/httpd-vhosts.conf"
  
  Httpd-vhost.conf文件配置配置我们自己的虚拟主机
  
  #配置我们自己的虚拟主机
  <VirtualHost *:80>
   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
  
   <Directory "F:/xampp/htdocs/zendfrm/public">
   Options Indexes MultiViews FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
   </Directory>
  
  </VirtualHost>
  
  
  再hosts中添加dns目录
  harry.com
  
  
  
  
韩顺平 PHP视频教程 zend framework第3讲 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 framework第4讲 zend原理深度剖析
  总控index.php每次都经过这。即使输入harry.com/uu,只要保证前面的域名不变化,怎么访问资源都会到总控。
  重写机制 .htaccess
  RewriteEngine On 启用重写机制
  RewriteCond %{REQUEST_FILENAME} -s
  RewriteCond %{REQUEST_FILENAME} -l
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^.*$ -
  RewriteRule ^.*$ index.php
  
  . 除了\n的任意字符。
  在php项目中,我们通过对url的重写,可以完成整个只有一个入口的项目
  
  
  .htaccess
  
  多入口
  RewriteRule ^.*$\.php enter.php
  RewriteRule ^.*$\.html enter.html
  Index发送给apache rewrite机制记录下来 首先调用总控——boot——
  约定俗成
  如果有错误 ErrorController.php 该控制器来处理,它是处理机制。我们的控制器 区分大小写。
  xxAction 的格式 xx不能大写
  总控使用了一点反射机制。
  步骤
  1 先在controllers文件下添加
  <?php
  class testControllerextends Zend_Controller_Action{
   publicfunction init(){
  
   }
   public functionloginAction(){
   //echo '用户登录';
   $this->render("login");
   }
  }
  优化代码:
  Bootstrap.php 数据库初始化代码的优化。
  抽象出来一个类
  <?php
  //做一个父类,专门供其它的Controller来继承
  class BaseControllerextends Zend_Controller_Action{
  public function init()
  {
   //初始化我们的数据库适配器
  $url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';
  $dbconfig=newZend_Config_Ini($url,"mysql");
  $db=Zend_Db::factory($dbconfig->db);
  $db->query('SETNAMES UTF8');
  Zend_Db_Table::setDefaultAdapter($db);
  }
  
  }
页: [1]
查看完整版本: 韩顺平 PHP视频教程 zend framework 第1讲 ——第4讲 笔记心得