ThinkPHP入門

1.0 ThinkPHP人門


 

1.1 什麼是ThinkPHP


 

在認識ThinkPHP框架以前,咱們須要瞭解一個概念一-PHIP 框架javascript

PHP框架就是一種能夠在項目開發過程當中, 提升開發效率,建立更爲穩定的程序,並減小開發者重複編寫代碼的基礎架構。下面介紹幾個主流的PHP框架。php

(1) Zend Framework

Zend Framework是由Zend 公司開發的PHP框架,可用於開發Web程序和服務。ZendFramework採用MVC架構模式來分離應用程序中不一樣的部分,從而方便程序的開發和維護。css

(2 ) CakePHP

CakePHP是一個運用了諸如ActiveRecord、Association Data Mapping、Front Controller 和MVC等著名設計模式的快速開發框架。該框架的主要目標是讓各類層次的PHP開發人員都能快速靈活地開發健壯的Web應用。html

(3) Yii

Ym是一個基於組件的高性能PHP框架。用於開發大型Web應用Yi採用產格的O0P編寫,並有着完善的庫引用以及全面的教程。Yii幾乎提供了現在Web20應用開發所須要的一切功能, 事實上,Yii也是最有效率的PHP框架之一。java

(4) ThinkPHP

ThinkPHP是一個由國人開發的快速最容並且簡單的輕量級PHP開發框架,誕生於2006年初。原名FCS.mysql

2007年元日正式改名爲ThinkPHP ThinkPHP 遵循Apache2開源協議發佈,從Struts結構移植過來並作了改進和完善,同時也借鑑了國外不少優秀的框架和模式。sql

使用面向對象的開發結構和MVC模式,融合了STrut的思想和TagLib(標籤庫) RoR的ORM映射和ActiveRecord模式,封裝了對數據庫的經常使用操做單一入口模式等。thinkphp

在模板引擎、緩存機制、認證機制和擴展性方面均有獨特的表現。因爲ThinkPHP的靈活、高效和完善的技術文檔,通過多年的發展,已經成爲國內最受歡迎的PHP框架。數據庫

下面將對ThinkPHP的基本使用進行講解。apache

 

1.下載ThinkPHP

咱們能夠在http://ww thinkphp.cn頁面上下載ThinkPHP 文件壓縮包,如下將使用ThinkPHP以前的3.2.3完整版進行講解,下載頁面以下圖所示

 

單擊"ThinkPHPXXX完整版」將下載ThinkPHP框架壓縮包,壓縮包解壓後有多個文件及文件夾,其中ThinkPHP文件夾爲ThinkPHP框架的核心文件目錄。

2.使用ThinkPHP

ThinkPHP不須要安裝,只須要將解壓的文件放到項目目錄下便可,默認狀況下,3.3版本的框架已經自帶了一個應用入口文件,經過瀏覽器訪問該人口文件便可,具體步驟以下。

(1)建立項目目錄

在此以前我設置了下多站點 以下圖所示

而後在apache服務器站點根目錄下建立 名爲TP文件夾 做爲項目的根目錄,將解壓後的所有文件移動到該目錄下,以下圖所示。

注意  個人站點是 TP 這個文件夾哦!

如下是我解壓出來的文件 咱們把這些文件拷貝到站點文件夾裏面

在這以前我已經在本地給TP這個站點手動設置了一個域名以及以下圖所示

(最後一個是哦!)

(2)訪問入口文件index.php

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以上時纔可使用。

1.2 案例一實現用戶登陸


 

咱們如今已經完成了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>

 

 

至此,用戶登陸功能的代碼編寫完成。

這時咱們代開瀏覽器 輸入下圖地址

顯示登陸界面

快輸入用戶名密碼試試看

相關文章
相關標籤/搜索