1、首先簡述一下什麼是ThinkPHP
ThinkPHP是,是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。最早誕生於2006年初,2007年元旦正式更名為ThinkPHP,並且遵循Apache2開源協議發布。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的效能和至簡的代碼的同時,也注重易用性。並且擁有眾多的原創功能和特性,在社區團隊的積极參与下,在易用性、擴充性和效能方面不斷最佳化和改進。
ThinkPHP是一個快速、相容而且簡單的輕量級國產PHP開發架構,誕生於2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts結構移植過來並做了改進和完善,同時也借鑒了國外很多優秀的架構和模式,使用物件導向的開發結構和MVC模式,融合了Struts的思想和TagLib(標籤庫)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支援windows/Unix/Liunx等伺服器環境,正式版需要PHP5.0以上版本支援,支援MySql、PgSQL、Sqlite以及PDO等多種資料庫,ThinkPHP架構本身沒有什麼特別模組要求,具體的應用系統運行環境要求視開發所涉及的模組。
作為一個整體開發解決方案,ThinkPHP能夠解決應用開發中的大多數需要,因為其自身包含了底層架構、相容處理、基底類別庫、資料庫訪問層、模板引擎、緩衝機制、外掛程式機制、角色認證、表單處理等常用的組件,並且對於跨版本、跨平台和跨資料庫移植都比較方便。並且每個組件都是精心設計和完善的,應用開發過程僅僅需要關注您的商務邏輯。
2、ThinkPHP基於MVC模式的一種架構結構,內部組織檔案主要有這幾部分。
模型(M):模型的定義由Model類來完成。Model類位於項目目錄下面的LibModel目錄。
控制器(C):應用控制器(核心控制器)和Action控制器都承擔了控制器的角色,區別在於Action控制器完成業務過程,而應用控制器(App類)負責調度控制。Action控制器位於項目目錄下面的LibAction目錄。
視圖(V):模板的實現是和架構無關的,做到了100%分離,可以獨立預覽和製作。模板目錄位於項目目錄下面的Tpl目錄。
3.下面是我做的一個簡單的調取資料庫的案例
Index.php 入口檔案,檔案路徑(App\)
<?php
define("APP_DEBUG",true);
require'./ThinkPHP/ThinkPHP.php';
?>
Config.php 設定檔(App\Conf\)
<?php
return array(
//'配置項'=>'配置值'
//Mysql資料庫連接配置
'DB_TYPE'=>'mysql', //設定資料庫類型
'DB_HOST'=>'localhost',//設定主機
'DB_NAME'=>'bbs',//設定資料庫名
'DB_USER'=>'root', //設定使用者名稱
'DB_PWD'=>'', //設定密碼
'DB_PORT'=>'3306', //設定連接埠號碼
'DB_PREFIX'=>'', //設定表首碼
'TMPL_L_DELIM'=>'<{', //修改左定界符
'TMPL_R_DELIM'=>'}>', //修改右定界符
);
?>
Index.html 視圖(V)層檔案(App\Tpl\Index\)
<html>
<head>
<title>MyThinkPHP</title>
</head>
<body>
<p>使用者名稱: <{$Uname}>
<p>密 碼: <{$Upassword}>
<p>註冊時間: <{$DateTime}>
</body>
</html>
IndexAction.class.php 控制器(C)層檔案 (App\Lib\Action\)
<?php
// 本類由系統自動產生,僅供測試用途
class IndexAction extends Action {
public function index(){
echo "This is My Frist ThinkPHP!!!";
$form = M('user') -> select();
dump($form);
$Uid = $form[1]['uId'];
$Uname = $form[1]['uName'];
$Upassword = $form[1]['uPassword'];
$DateTime = $form[1]['dateTime'];
$this -> assign ('uId',$Uid);
$this -> assign ('Uname',$Uname);
$this -> assign ('Upassword',$Upassword);
$this -> assign ('DateTime',$DateTime);
$this -> display();
}
}
UserModel.class.php : 模型(M)層檔案,檔案路徑為(App\Lib\Model\)
<?php
class UserModel Extends Model{
public function findall(){
$sql='SELECT * FROM user';
return $this -> query($sql);
}
}
?>