u  php流行的mvc框架介绍

  1. zend framework(zend公司开发 、官方产品)
  2. thinkphp(国人开发)
  3. yii (外企用的比较多)
  4. cakephp

 

mvc框架把我们的程序分成三个部件

m(model模型)

v(view视图)

c(controller 控制器)

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

 

☞ 很多公司自己开发mvc框架

 

u  为什么需要框架

因为不同公司对mvc的理解,可能区别,造成规范性,标准性有偏差,所以需要一个更加规范的方案来做程序开发.

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

 

  1. 规范性
  2. 开发效率
  3. 维护性(可读性)

 

u  快速体验案例

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

 

我们可以看到这个欢迎界面即可.

 

开发步骤:

  1. 下载一个最新的zend framework库. 官方下载
  2. 创建zend framework工程

            手工创建(麻烦)

            使用zf.bat 程序创建

(1)进入到zf.bat所在目录 (dos)

 (2) 使用命令 zf.bat create project 项目的全路径(d:/hspzf)

 

创建完后,项目的基本结构是

 

 

 

 

 

 

 

 

 

 

  1. 使用zend studio  创建一个空项目 hspzf
  2. 把你刚才创建项目的结构拷贝到hspzf项目中
  3. 引入zf库到hspzf项目中,拷贝到libary目录下
  4. 开始配置我们的apache,让它支持我们的zf框架

6.1 开启PDO和PDO相关数据库引擎

 

在php.ini文件

extension=php_pdo_mysql.dll  [去掉分号]

 

 

6.2 开启Apache的 rewrite模块

 

在httpd.conf目录下

#启用rewrite功能

LoadModule rewrite_module modules/mod_rewrite.so

 

AllowOverride None 改成 All

 

  1. 配置虚拟主机

 

appserve

wamp

 

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

 

在httpd.conf文件中

# Virtual hosts 启动虚拟主机的配置

Include conf/extra/httpd-vhosts.conf

 

在httpd-vhosts.conf中

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

<VirtualHost *:80>

    DocumentRoot "C:/myenv/apache/htdocs/hspzf/public"

    ServerName  myzf.com

    DirectoryIndex index.php  

    <Directory />

    Options FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    </Directory>

</VirtualHost>

 

在hosts中添加dns

 

 

  1. 重新启动 apache
  2. http//myzf.com

 

自己练习

 

原理分析(uml的时序图)

 

 

 

 

 

 

☞ 这里,在php项目中,我们通过对url的重新,可以完成整个项目只有一个入口.

 

 

在项目中添加一个 .htaccess 加入内容

RewriteEngine On

RewriteRule  ^.*\.  enter.php

 

在apache中启用rewrite机制

 

 

 

 

在httpd.conf目录下

#启用rewrite功能

LoadModule rewrite_module modules/mod_rewrite.so

 

AllowOverride None 改成 All

 

测试

 

问题?

 

区分大小写

提示,我们的Controller和它的方法 xxActoin , xx 要小写.

 

如何增加控制/视图/模型

 

 

步骤 先在

controller文件夹下添加一个

class xxxController extends Zend_Controller_Action{

       //填写自己码

       public function init(){

}

 

//自己的一些相应方法

public function xxAction(){

       //代码

}

}

 

视图

在scripts 目录下,建立一个新的文件夹

xxx, 在该文件夹下可以创建新的视图  ??.phtml文件.

 

优化代码:

 

 

因为有些控制器,需要操作数据库,有些不需要,因此我们可以写一个父类

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 );

}

}

 

 

如果某个控制器需要操作数据库

class xxController extends BaseController;

 

如果不需

class xxController extends Zend_Controller_Action{

}

 

 

u  使用zend framework完成一个投票系统

根据需求,我们分析应当有三张表.

--选项表  item

create table item(

id bigint unsigned primary key auto_increment,

name varchar(64) not null ,

description varchar(128) not null,

vote_count bigint unsigned) engine MyISAM

 

--投票的日志表 vote_log

create table vote_log(

id bigint unsigned primary key auto_increment,

ip varchar(20) not null,

vote_date bigint not null,

item_id bigint not null

) engine MyISAM

 

--过滤ip的表  filter

create table filter(

id bigint unsigned primary key auto_increment,

ip varchar(20)) engine MyISAM

 

 

2创建我们的项目

3.在zend studio 中创建空项目,然后把相关的文件拷贝

4.创建AdminController 控制器(管理后台的各种请求)

5.创建 HomeController 控制器(普通用户去投票)

 

posted on 2015-03-30 22:40  jzfan  阅读(208)  评论(0编辑  收藏  举报