在認識ThinkPHP框架以前,咱們須要瞭解一個概念一-PHIP 框架javascript
PHP框架就是一種能夠在項目開發過程當中, 提升開發效率,建立更爲穩定的程序,並減小開發者重複編寫代碼的基礎架構。下面介紹幾個主流的PHP框架。php
Zend Framework是由Zend 公司開發的PHP框架,可用於開發Web程序和服務。ZendFramework採用MVC架構模式來分離應用程序中不一樣的部分,從而方便程序的開發和維護。css
CakePHP是一個運用了諸如ActiveRecord、Association Data Mapping、Front Controller 和MVC等著名設計模式的快速開發框架。該框架的主要目標是讓各類層次的PHP開發人員都能快速靈活地開發健壯的Web應用。html
Ym是一個基於組件的高性能PHP框架。用於開發大型Web應用Yi採用產格的O0P編寫,並有着完善的庫引用以及全面的教程。Yii幾乎提供了現在Web20應用開發所須要的一切功能, 事實上,Yii也是最有效率的PHP框架之一。java
ThinkPHP是一個由國人開發的快速最容並且簡單的輕量級PHP開發框架,誕生於2006年初。原名FCS.mysql
2007年元日正式改名爲ThinkPHP ThinkPHP 遵循Apache2開源協議發佈,從Struts結構移植過來並作了改進和完善,同時也借鑑了國外不少優秀的框架和模式。sql
使用面向對象的開發結構和MVC模式,融合了STrut的思想和TagLib(標籤庫) RoR的ORM映射和ActiveRecord模式,封裝了對數據庫的經常使用操做,單一入口模式等。thinkphp
在模板引擎、緩存機制、認證機制和擴展性方面均有獨特的表現。因爲ThinkPHP的靈活、高效和完善的技術文檔,通過多年的發展,已經成爲國內最受歡迎的PHP框架。數據庫
下面將對ThinkPHP的基本使用進行講解。apache
咱們能夠在http://ww thinkphp.cn頁面上下載ThinkPHP 文件壓縮包,如下將使用ThinkPHP以前的3.2.3完整版進行講解,下載頁面以下圖所示
單擊"ThinkPHPXXX完整版」將下載ThinkPHP框架壓縮包,壓縮包解壓後有多個文件及文件夾,其中ThinkPHP文件夾爲ThinkPHP框架的核心文件目錄。
ThinkPHP不須要安裝,只須要將解壓的文件放到項目目錄下便可,默認狀況下,3.3版本的框架已經自帶了一個應用入口文件,經過瀏覽器訪問該人口文件便可,具體步驟以下。
在此以前我設置了下多站點 以下圖所示
而後在apache服務器站點根目錄下建立 名爲TP文件夾 做爲項目的根目錄,將解壓後的所有文件移動到該目錄下,以下圖所示。
注意 個人站點是 TP 這個文件夾哦!
如下是我解壓出來的文件 咱們把這些文件拷貝到站點文件夾裏面
在這以前我已經在本地給TP這個站點手動設置了一個域名以及以下圖所示
(最後一個是哦!)
ThinkPHP框架採用單一入口模式進行項目部署和訪問,全部應用都是從入口文件開始的。
如今咱們打開瀏覽器,訪問http/www.tp.com/index.php 運行結果以下圖1-1所示。
若是瀏覽器出現以下圖1-1所示的頁面,說明ThinkPHP框架已經能夠正常使用。
此時ThinkPHP會在Application目錄下自動生成幾個目錄文件。以下圖1-2所示。
圖1-1
圖1-2
接下來開發者就能夠在相應的目錄中編寫代碼文件了。
不過須要注意的是,ThinkPHP 3.3框架要求PHP版本在5.3以上時纔可使用。
咱們如今已經完成了ThinkPHP 框架的部署,爲了更好地理解ThinkPHP 框架。
接下來將經過ThinkPHP框架來開發一個用戶登陸功能,具體步驟以下。
1.建立測試數據
用戶登陸功能的關鍵是用戶驗證,而用戶驗證一般是經過在詢數據庫以判斷該用戶是否合法。所以首先要建立一個表保存用戶信息,代碼以下:
/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50617 Source Host : localhost:3306 Source Database : tp_study Target Server Type : MYSQL Target Server Version : 50617 File Encoding : 65001 Date: 2018-10-26 14:53:33 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `pwd` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1003 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1001', 'tom', '123456'); INSERT INTO `user` VALUES ('1002', 'lemon', '654321');
在上述代碼中,首先建立數據庫tp_study而後在此數據庫中建立一息的數據表user.最後插人兩條測試數據。
2.指定數據庫鏈接信息
由於須要經過查詢數據庫比對用戶信息.因此要提供數據庫鏈接所需的數據庫信息。
打開文件 修改代碼以下打開文件
修改代碼以下:
<?php return array( //'配置項'=>'配置值' 'DB_TYPE'=>'mysql', //數據庫類型 'DB_HOST'=>'127.0.0.1', //服務器地址 'DB_NAME'=>'tp_study', //數據庫名稱 'DB_USER'=>'root', //用戶名 'DB_PWD'=>'', //密碼 'DB_PORT'=>'3306', //端口號 'DB_PREFIX'=>'', //數據庫表前綴 'DB_CHARSET'=>'utf8', //數據庫默認編碼格式 );
3.建立用戶驗證方法
爲了實現用戶的登陸功能,須要在IndexController.class.php中添加一個驗證登陸的方法,這裏咱們定義這個方法的名稱是
checkLogin()。
打開文件
添加checkLogin()方法
代碼以下:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微軟雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>歡迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); } public function checkLogin(){ if(IS_POST){ $userName = I('post.username');//接收到用戶填寫的用戶名 $passWord = I('post.password');//接收到用戶填寫的密碼 $userObj = M('user'); $where = array('name'=>$userName); $tmp_password = $userObj->where($where)->getField('pwd'); if($tmp_password && $passWord == $tmp_password){ echo '<meta charset="utf-8">'; echo "密碼正確,歡迎登陸!"; } else{ echo '<meta charset="utf-8">'; echo "密碼錯誤,請從新登陸!"; } die; } $this->display('login'); } }
4.建立用戶登陸頁面
打開目錄新建 login.html 文件爲登陸界面
代碼以下:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>用戶登陸</title> 6 </head> 7 8 <body> 9 <form method="post" action=""> 10 用戶名:<input name="username" type="text"><br> 11 密碼:<input name="password" type="password"><br> 12 <input type="submit" value="登陸"> 13 </form> 14 15 16 17 </body> 18 </html>
5.建立其餘文件
視圖文件一般須要載人css樣式文件才能夠以顯示頁面效果,在上面的視圖頁面代碼中若是須要引用 css文件顯示樣式,就須要建立該文件。
並將其存到
目錄下。
這裏咱們不設置樣式啦。。。
引用的css樣式文件話 代碼以下的第六行
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>用戶登陸</title> 6 <link rel="stylesheet" href="_PUBLIC_/css/本頁樣式.css"/> 7 </head> 8 9 <body> 10 <form method="post" action=""> 11 用戶名:<input name="username" type="text"><br> 12 密碼:<input name="password" type="password"><br> 13 <input type="submit" value="登陸"> 14 </form> 15 16 17 18 </body> 19 </html>
至此,用戶登陸功能的代碼編寫完成。
這時咱們代開瀏覽器 輸入下圖地址
顯示登陸界面
快輸入用戶名密碼試試看