Thinkphp是免費開源的php框架,提供了建站所須要的各類組件,方便用戶快速建設部署網站。php
Thinkphp簡介:http://thinkphp.cn/Manual/16html
官方徹底開發手冊:http://thinkphp.cn/Manualmysql
使用 ThinkPHP 建立應用的通常開發流程是:sql
建立數據庫和數據表;(沒有數據庫操做可略過)thinkphp
項目命名並建立項目入口文件;數據庫
完成項目配置;(無需額外配置能夠忽略)apache
建立控制器類;瀏覽器
建立模型類;(若是隻是簡單的模型類能夠沒必要建立)緩存
建立模板文件;php框架
運行和調試。
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 <liu21st@gmail.com>
// +----------------------------------------------------------------------
// 定義 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 信息,這是爲了在開發過程當中調試用的,關閉調試模式後,這些信息會自動消失。另外在調試模式下面,因爲開啓了日誌記錄,而且關閉了全部緩存,因此執行效率會有必定影響,可是關閉調試模式後,效率會有很是顯著的提升。
能夠嘗試在頁面新增數據,會看到頁面下面有列表數據輸出。到目前爲止,咱們已經完成了一個完整的數據操做應用了。