ZendFramework流程

ZendFramework流程

ZendFramework流程圖

Bootsrap.php內寫入:

//啓動
function __construct($app) {
    parent::__construct($app);
    file_put_contents("G:/xampp/htdocs/logs/tZF1/logs.txt",__FILE_.date('Y-m-d H:i:s').'..\r\n',FILE_APPEND);
}

可以在G:/xampp/htdocs/logs/tZF1內產生一個logs.txt文件記錄日誌信息

數據庫連接設置

1.建立信息表message表格
2.htdocs/tZF1/application/models內新建一個message.php即‘表名.php’文件,文件內寫

/**
* table_name表CRUD操作
*/
    class TableName extends Zend_Db_Table
    {
        protected $_name = 'table_name';
        protected $_primary = 'pk';
        function __construct(argument)
        {
            # code...
        }
    }

3.htdocs\tZF1\application\controllers\IndexController.php內引入module文件

require_once APPLICATION_PATH.'/models/table_name.php';
...
public function indexAction(){
        //到數據庫查詢
        $messageModel = new Message();
        $res = $messageModel->fetchAll()->toArray();
        echo "<pre>";
        print_r($res);
        echo "</pre>";
        $this->view->res = $res;
        $this->render('index');
    }

4.htdocs\tZF1\application\configs\application.ini配置數據庫信息

[mysql]
db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = admin
db.params.password = admin
db.params.dbname = zf

5.htdocs\tZF1\application\Bootstrap.php內初始化適配器

function __construct($app) {
        parent::__construct($app);
        //初始化適配器
        //找到配飾文件
        $url = constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';
        //讀取mysql(與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);
    }

6.視圖顯示數據庫信息
htdocs\tZF1\application\views\scripts\index\index.phtml寫入

<?php foreach ($this->res as $value) {
            echo $value['columns_name']."=".$value['columns_name']."<br>";
        } ?>

7.注意 需要開啓PDO和PDO相關數據庫引擎
在php.ini文件內

extension=php_pdo_mysql.dll\\去掉分號

單入口,重定向

1.\htdocs\tZF1\public.htaccess內配置

RewriteEngine On
#.匹配除\n外所有字符
#設置訪問 http://tZF1.com/****都會訪問index.php
#即改寫爲 http://tZF1.com/index.php
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

2.開啓Apache 的rewrite模塊
在httpd.conf目錄下
#啓用rewrite功能

LoadModule rewrite_module modules/mod_rewrite.so
  1. AllowOverride None 全部改寫成AllowOverride All

4.說明:rewrite開啓後會自動尋找根目錄下的.htaccess文件
即:apache內有init() {
//讀取httpd.conf // rewrite
//調用rewritemodle
//讀取.htaccess
}

配置錯誤日誌

在php.ini內error_log = php_errors.lg配置

error_log = "D:\xampp\htdocs\syslog\phperr.log"

自定義輸出日誌

file_put_contents('G:/xampp/htdocs/mylog.txt'.__FILE__."\r\n",FILE_APPEND);

PS.

  1. 控制器action_nameAction(){…}
    action_name必需小寫
  2. 若action_namEAction(){…}
    http ://tZF1.com/index/action_name
    無法匹配,輸出htdocs\tZF1\application\views\scripts\error\error.phtml內容
  3. action_namEAction(){…}
    http ://tZF1.com/index/action_namE
    報錯404
  4. 數據庫引擎 MyISAM不支持外鍵,但速度略快
    InnoDB支持外鍵
    目前使用MyISAM居多
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章