ZendFramework安装配置

时间:2021-08-12 04:14:36

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:\Windows\System32\drivers\etc 内的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