ThinkPHP創建應用的一般開發流程及實例 .

Thinkphp是免費開源的php框架,提供了建站所需要的各種組件,方便用戶快速建設部署網站。

Thinkphp簡介:http://thinkphp.cn/Manual/16

 

官方完全開發手冊:http://thinkphp.cn/Manual

使用 ThinkPHP 創建應用的一般開發流程是:

創建數據庫和數據表;(沒有數據庫操作可略過)

項目命名並創建項目入口文件;

完成項目配置;(無需額外配置可以忽略)

創建控制器類;

創建模型類;(如果只是簡單的模型類可以不必創建)

創建模板文件;

運行和調試。

 

1. 首先在數據庫創建一個數據庫 demo ,表 think_demo ,以 MySQL 爲例

CREATE TABLE `think_demo` (  

  `id` int(11) unsigned NOT NULL auto_increment,   

  `title` varchar(255) NOT NULL default '',   

  `content` longtext NOT NULL,   

  PRIMARY KEY  (`id`)   

) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;  

 

2. 創建入口文件

<?php

// +----------------------------------------------------------------------

// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]

// +----------------------------------------------------------------------

// | Copyright (c) 2009 http://thinkphp.cn All rights reserved.

// +----------------------------------------------------------------------

// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )

// +----------------------------------------------------------------------

// | Author: liu21st <[email protected]>

// +----------------------------------------------------------------------

 

// 定義 ThinkPHP 框架路徑

define('THINK_PATH', '../ThinkPHP');

// 定義項目名稱和路徑

define('APP_NAME', 'MyApp');

define('APP_PATH', '.');

// 加載框架公共入口文件

require(THINK_PATH."/ThinkPHP.php");

// 實例化一個網站應用實例

App::run();

?>

注意, APP_PATH 的路徑指的是項目目錄所在路徑,而不是項目入口文件所在的路徑。 APP_NAME 通常都必須和項目目錄名稱一致。

如果你的項目入口文件放到項目目錄下面的話,可以無需定義 APP_NAME APP_PATH ,系統可以自動識別。 THINK_PATH 通常也不是必須的。

3. 自動生成

ThinkPHP 具備項目目錄自動生成功能,並且不需要使用任何命令行工具。我們只需要簡單的瀏覽器裏面訪問剛纔創建的應用入口文件。

打開瀏覽器,訪問該項目的入口文件: http://127.0.0.1/Myapp/index.php

這時可以看到項目構建成功後的提示畫面,並且在 Myapp 目錄下,已爲您構建好了項目目錄。

注意: ThinkPHP 框架的所有文件都是採用 UTF-8 編碼保存,但是這不影響你的項目中使用其他編碼開發和瀏覽。請注意確保文件保存的時候去掉 UTF-8 BOM 頭信息,防止因產生隱藏的輸出而導致程序運行不正常。

注意:如果你是在 Linux 環境下,要確保項目目錄的自動生成,請設置 Myapp 目錄的權限爲可寫,否則請自行創建相關目錄。然後設置 Runtime 目錄爲可寫權限(通常都是設置目錄屬性爲 777 )。

4. 項目配置

自動生成的項目目錄下面已經爲我們創建了一個空的項目配置文件,位於項目的 Conf 目錄下面,名稱是 config.php 。我們打開這個配置文件,加入我們的數據庫配置信息。

<?php

return array(

       //' 配置項 '=>' 配置值 '

       'APP_DEBUG' => true, // 開啓調試模式    

       'DB_TYPE'=> 'mysql',   // 數據庫類型    

       'DB_HOST'=> 'localhost', // 數據庫服務器地址    

       'DB_NAME'=>'demo',  // 數據庫名稱    

       'DB_USER'=>'root', // 數據庫用戶名    

       'DB_PWD'=>'123456', // 數據庫密碼    

       'DB_PORT'=>'3306', // 數據庫端口    

       'DB_PREFIX'=>'think_', // 數據表前綴    

);

?>

5. 業務邏輯

接下來,我們需要實現一個數據添加和查詢操作的簡單應用,來領略下 ThinkPHP 的快速開發。

在項目的 LibAction 目錄下面找到自動生成的 IndexAction.class.php 文件,這個文件就是 ThinkPHP 的控制器,也就是 Index 模塊的實現。刪除 IndexAction 類默認生成的 index 方法。添加新的 insert 方法和 index 方法,代碼如下:

public function insert() {   

        $Demo = new Model('Demo');   // 實例化模型類    

        $Demo->Create(); // 創建數據對象    

        $result = $Demo->add(); // 寫入數據庫    

        $this->redirect('index'); // 成功後重定向到 index 操作頁面    

}

public function index() {   

        $Demo = new Model('Demo'); // 實例化模型類    

        $list = $Demo->select(); // 查詢數據    

        $this->assign('list',$list); // 模板變量賦值    

        $this->display(); // 輸出模板    

}

以上定義後, Index 模塊就具有了 insert index 兩個操作,操作方法的定義不需要使用任何參數,而且必須定義爲 public 類型,否則無法訪問。

 

由於只是簡單的數據操作應用,所以我們根本不需要創建任何的模型類也同樣可以進行 CURD 操作,這就是新版的魅力所在。 ^_^

6. 模版定義

控制器和操作方法已經創建完畢,接下來就是定義模板文件了。

 

項目的自動生成已經爲我們生成了 Tpl/default 目錄,我們只需要在 default 目錄下面創建 Index 目錄,表示存放 Index 模塊的模板文件。由於 insert 操作是後臺操作,並不涉及模板輸出,因此不需要定義模板文件,所以我們只要爲 index 操作定義模板即可,內容如下:

<form method="post"  action="__ URL __/insert" >  

標題: <input type="text" name="title"><br />  

內容: <textarea name="content" rows="5" cols="25"><textarea><br/>  

<input type="submit" value=" 新增數據 ">  

</form>

 

<volist name='list' id='vo' >  

編號 :{$vo.id}<br/>  

標題 :{$vo.title}<br/>   

內容 :{$vo.content}<hr>  

</volist> 

把上面的內容保存爲 Tpl/default/Index/index.html 即可。

action="/Admin/Manual/insert" 表示提交表單到當前模塊的 insert 操作。

7. 運行應用

模板定義完成後,我們就可以運行應用了。我們在瀏覽器裏面輸入:

http://localhost/Myapp/ 就可以看到頁面的表單輸出了。

 

由於我們開啓了調試模式,所以在頁面的最下面還會看到一些額外的調試信息,並且可以很清楚的看到當前頁面的請求信息和執行時間、 SQL 日誌,最後還有加載的文件列表,事實上,頁面 Trace 信息的顯示完全是可以定製的,而這些內容不需要在模板裏面定義。

 

ThinkPHP 中,我們稱之爲頁面 Trace 信息,這是爲了在開發過程中調試用的,關閉調試模式後,這些信息會自動消失。另外在調試模式下面,由於開啓了日誌記錄,並且關閉了所有緩存,所以執行效率會有一定影響,但是關閉調試模式後,效率會有非常顯著的提高。

可以嘗試在頁面新增數據,會看到頁面下面有列表數據輸出。到目前爲止,我們已經完成了一個完整的數據操作應用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章