1、创建项目目录 E:/wwwroot/myzfpro
运行cmd后,cd到框架源文件的bin目录
运行zf.bat创建命令:zf.bat create project E:/wwwroot/myzfpro
创建成功后其内的结构如下:
|-- application -------------------->存放应用程序组件目录
| |-- Bootstrap.php -------------->index入口程序执行后,紧接着就执行此“引导程序”
| |-- configs
| | `-- application.ini ---------->配置文件
| |-- controllers ---------------->存放控制器目录
| | |-- ErrorController.php
| | `-- IndexController.php
| |-- models --------------------->存放模型目录
| `-- views ---------------------->存放视图(模板)目录
| |-- helpers
| `-- scripts
| |-- error
| | `-- error.phtml
| `-- index
| `-- index.phtml
|
|-- docs -------------------------->可存放项目文档目录
|-- library ------------------------>放置拷贝来的Zend库文件目录
|-- public ------------------------->放置公共资源(图片/CSS/javaScript)目录
| |-- .htaccess
| `-- index.php
`-- tests
|-- application
| `-- bootstrap.php
|-- library
| `-- bootstrap.php
`-- phpunit.xml
2、拷贝ZendFramework-1.12.3/library目录下的Zend目录,到第1步的library中。
3、启用PHP的pdo引擎,打开php.ini,启用 extension=php_pdo_mysql.dll
4、开启Apache的rewrite模块,打开httpd.conf
4.1 启用 LoadModule rewrite_module modules/mod_rewrite.so
4.2 使Apache识别.htaccess重写功能,修改 AllowOverride all
准许任何一个目录支持重写功能:
<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
假设 E:/www 为你的WEB目录,你也可以额外添加重写规则、访问权限:
<Directory "E:/www">
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
5、打开httpd.conf,开启Apache虚拟主机支持 Include conf/extra/httpd-vhosts.conf
6、打开httpd-vhosts.conf,添加Apache虚拟主机,注:DocumentRoot必须指到public目录
<VirtualHost *:80>
DocumentRoot "E:/wwwroot/myzfpro/public"
ServerName myzftest.com
ServerAlias www.myzftest.com
</VirtualHost>
7、添加本地DNS,打开 C:WindowsSystem32driversetc 内的host文件,添加记录:
127.0.0.1 myzftest.com www.myzftest.com
8、重启Apache,测试访问 http://myzftest.com
9、配置框架环境信息,打开 application/configs/application.ini
在文件末尾添加数据库参数,注:数据库名也可以置空(假如你准备使用多个库的话,你可以在Table模型表里指定表时一同指定数据库名)
;数据库配置
[mysql]
webhost = myzftest.com
database.adapter = pdo_mysql
database.params.host = localhost
database.params.username = root
database.params.password = root
database.params.dbname = ""
10、连接数据库,打开 application/Bootstrap.php
此文件为引导程序,每次从入口文件进入后,入口程序执行完就会调用一下此程序,然后才执行对应控制器,我准备把数据库连接步骤在此处,
在Bootstrap类中添加一个构造方法,将数据连接代码放入类中:
public function __construct($app){
parent::__construct($app);
//初始化数据库配置
$applicationINI = APPLICATION_PATH.'/configs/application.ini'; //配置文件
$db_config = new Zend_Config_Ini($applicationINI, 'mysql'); //从配置文件中载入mysql区块配置信息
$db = Zend_Db::factory($db_config->database); //连接数据库
$db->query("set names utf8"); //设置字符集
Zend_Db_Table::setDefaultAdapter($db); //实例化表对象
}
11、创建一个表对象模型
在 application/models 目录下创建一个 TB_stu.php 文件,代码如下:
<?php
/**
* 功能:学生表
* */
class TB_stu extends Zend_Db_Table{
protected $_name='test.stu'; //表名(注:可以连同数据库名一起指定以区分不同的数据库,前文有提到过)
protected $_primary='id'; //主键
}
12、在 application/controllers 目录中的 IndexController.php 控制器在写一个 index 方法,代码如下:
public function indexAction(){
// action body
require_once APPLICATION_PATH.'/models/Tb_stu.php'; //引入表对象模型
$mod_stu = new TB_stu(); //实例化表对象
$rows_stu = null;
$rows_stu = $mod_stu->fetchAll()->toArray(); //执行查询
echo '<pre>';
print_r($rows_stu);
}
13、为stu数据表插入若干数据,测试访问 http://myzftest.com