亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

ThinkPHP基礎

2020-03-22 18:16:07
字體:
來源:轉載
供稿:網友
  • First
    什么是ThinkPHP?
    ThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協議發布,從Struts結構移植過來并做了改進和完善,同時也借鑒了國外很多優秀的框架和模式,使用html' target='_blank'>面向對象的開發結構和MVC模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式。

    什么是MVC模式呢?
    MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用于映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

    為什么要使用ThinkPHP,他到底有什么好處呢?

    對于個人開發來說:

    夠安全:大家在自己寫項目的時候,幾乎所有的內容都需要自己去寫,過程繁瑣漫長,而且個人寫出來的項目之中,必定是漏洞百出??赡茏约嚎床怀鰜恚侨绻旁诰W上,就極易被人發現漏洞。然后框架作為一套已經在市面上成熟運用很久的解決方案,其間的安全性是很有保障的。

    效率高:因為框架已經把很多工具幫你做好了,到時需要的時候只需拿起用就好,大大提高了項目開發的效率,如果自己做架構,所有的東西都需要你自己來寫。
    當然有人會說,我以前寫過,可以直接拿過來用,但是自己寫的東西可能通用性并不高,甚至可能最后會出現很多無法找到根源的bug,這是特別拖項目進度的。

    夠穩定:各部件之間有條不紊,在不同程度上都能夠流暢運行。相比于自己的架構,可以在更多情況時保持穩定運行。

    對于公司來說:

    團隊協作能力強:提供統一的編碼規范和模式,團隊協作很方便。

    低培訓成本:使用通用的框架,可以直接關注業務邏輯,不需要培訓就可以直接去公司上手工作。

    去技術人員化:防止某些核心技術人員離職導致項目開發停滯。

    學習ThinkPHP的要求:有上進心,可以努力的學習原生PHP。越熟悉原生,那么就可以越靈活的使用框架做開發。而且當你需要一些TP所不支持的功能時,你完全可以自己寫上。

    Second
    這玩意該怎么玩

    一、獲取Thinkphp
    登陸官方網站:http://www.thinkVeVb.com/ 獲取。
    下載地址

         **這個網站中也有許多教程和代碼,大家可以自行查看。**

    下完之后,就會發現期內有這幾個文件。

    www  WEB部署目錄(或者子目錄)├─index.php       入口文件├─README.md       README文件├─composer.json   Composer定義文件├─Application     應用目錄├─Public          資源文件目錄└─ThinkPHP        框架目錄

    入口文件

    在開始之前,你需要一個Web服務器和PHP運行環境,如果你暫時還沒有,我們推薦使用集成開發環境WAMPServer(是一個集成了Apache、PHP和MySQL的開發套件,而且支持多個PHP版本、MySQL版本和Apache版本的切換)來使用ThinkPHP進行本地開發和測試。

    3.2版本開始框架自帶了一個應用入口文件,默認內容如下:

    define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php';

    打開入口文件之后就會出現一個界面,這就說明Thinkphp安裝成功了。

    入口

    打開之后在目錄下會智能的生成目錄:

    Application├─Common         應用公共模塊│  ├─Common      應用公共函數目錄│  └─Conf        應用公共配置文件目錄├─Home           默認生成的Home模塊│  ├─Conf        模塊配置文件目錄│  ├─Common      模塊函數公共目錄│  ├─Controller  模塊控制器目錄│  ├─Model       模塊模型目錄│  └─View        模塊視圖文件目錄├─Runtime        運行時目錄│  ├─Cache       模版緩存目錄│  ├─Data        數據目錄│  ├─Logs        日志目錄│  └─Temp        緩存目錄模塊設計

    配置
    配置

    每個應用模塊都有獨立的配置文件(位于模塊目錄的Conf/config.php),配置文件的定義格式支持PHP/JSON/YAML/INI/XML等方式,默認采用PHP數組定義,例如:

    // 配置文件return array(    '配置參數' => '配置值',    // 更多配置參數    //...);

    如果你需要為各個模塊定義公共的配置文件,可以在公共模塊中定義(通常位于 Common/Conf/config.php),定義格式是一樣。

    一旦有需要,我們就可以在配置文件中添加相關配置項目。通常我們提到的添加配置項目,就是指在項目配置文件中添加:

    '配置參數'=>'配置值',

    配置值可以支持包括字符串、數字、布爾值和數組在內的數據,通常我們建議配置參數均使用大寫定義。

    如果有需要,我們還可以為項目定義其他類型的配置文件,如果要使用其他格式的配置文件,可以在入口文件中定義CONF_EXT常量即可,例如:

    define('CONF_EXT','.ini');

    這樣,模塊的配置文件就變成了 Conf/config.ini,定義格式如下:

    DEFAULT_MODULE = Index ;默認模塊URL_MODEL      = 2 ;URL模式

    URL請求

    ThinkPHP采用單一入口模式訪問應用,對應用的所有請求都定向到應用的入口文件,系統會從URL參數中解析當前請求的模塊、控制器和操作,下面是一個標準的URL訪問格式:

    http://serverName/index.php/模塊/控制器/操作

    如果我們直接訪問入口文件的話,由于URL中沒有模塊、控制器和操作,因此系統會訪問默認模塊(Home)下面的默認控制器(Index)的默認操作(index),因此下面的訪問是等效的:

    http://serverName/index.phphttp://serverName/index.php/Home/Index/index

    這種URL模式就是系統默認的PATHINFO模式,不同的URL模式獲取模塊和操作的方法不同,ThinkPHP支持的URL模式有四種:普通模式、PATHINFO、REWRITE和兼容模式。

    1 普通模式
    普通模式也就是使用傳統的GET傳參方式來指定當前訪問的模塊、控制器和操作,例如:

    http://localhost/?m=home&c=index&a=hello&name=thinkphp

    m參數表示模塊,c表示控制器,a表示操作(當然,這些參數名是可以配置的),后面的表示其他GET參數。
    默認值可以不傳,因此下面的URL訪問是和上面的等效:

    http://localhost/?a=hello&name=thinkphp

    2 PATHINFO模式
    PATHINFO模式是系統的默認URL模式,提供了最好的SEO支持,系統內部已經做了環境的兼容處理,所以能夠支持大多數的主機環境。
    對應上面的URL模式,PATHINFO模式下面的URL訪問地址是:

    http://localhost/index.php/home/index/hello/name/thinkphp/

    PATHINFO地址的前三個參數分別表示模塊/控制器/操作。

    PATHINFO模式下面,也可以用普通模式的參數方式傳入參數,例如:

    http://localhost/index.php/home/index/hello?name=thinkphp

    PATHINFO模式下面,URL參數分隔符是可定制的,例如,通過下面的配置:

    'URL_PATHINFO_DEPR'=>'-',// 更改PATHINFO參數分隔符

    我們可以支持下面的URL訪問:

    http://localhost/index.php/home-index-hello-name-thinkphp

    3 REWRITE模式
    REWRITE模式是在PATHINFO模式的基礎上添加了重寫規則的支持,可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務器的重寫規則。
    如果是Apache則需要在入口文件的同級添加.htaccess文件,內容如下:

    <IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>

    接下來就可以使用下面的URL地址訪問了

    http://localhost/home/index/hello/name/thinkphp/

    4 兼容模式
    兼容模式是用于不支持PATHINFO的特殊環境,URL地址是:

    http://localhost/?s=/home/index/hello/name/thinkphp

    兼容模式配合Web服務器重寫規則的定義,可以達到和REWRITE模式一樣的URL效果。

    視圖

    ThinkPHP內置了一個編譯型模板引擎,也支持原生的PHP模板,并且還提供了包括Smarty在內的模板引擎驅動。和Smarty不同,ThinkPHP在渲染模板的時候如果不指定模板,則會采用系統默認的定位規則,其定義規范默認是模塊目錄下面的 View/控制器名/操作名.html,所以,Index模塊的hello操作的默認模板文件位于Home模塊目錄下面的View/Index/hello.html,我們添加模板內容如下:

    <html><head><title>hello {$name}</title></head><body>    hello, {$name}!</body></html>

    要輸出視圖,必須在控制器方法中進行模板渲染輸出操作,例如:

    <?phpnamespace HomeController;use ThinkController;class IndexController extends Controller {    public function hello($name='thinkphp'){        $this->assign('name',$name);        $this->display();    }}

    display方法中我們沒有指定任何模板,所以按照系統默認的規則輸出了Index/hello.html模板文件。

    接下來,我們在瀏覽器訪問輸出:

    hello,thinkphp!

    讀取數據

    在開始之前,我們首先在數據庫thinkphp中創建一個think_data數據表(以mysql數據庫為例):

    CREATE TABLE IF NOT EXISTS `think_data`(`id`int(8)unsigned NOT NULL AUTO_INCREMENT,`data` varchar(255) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;INSERT INTO `think_data`(`id`,`data`) VALUES(1,'thinkphp'),(2,'php'),(3,'framework');

    也可以直接在phpmyadmin中添加。

    如果我們需要讀取數據庫中的數據,就需要在模塊配置文件中添加數據庫連接信息如下:

    // 添加數據庫配置信息'DB_TYPE'=>'mysql',// 數據庫類型'DB_HOST'=>'127.0.0.1',// 服務器地址'DB_NAME'=>'thinkphp',// 數據庫名'DB_USER'=>'root',// 用戶名'DB_PWD'=>'',// 密碼'DB_PORT'=>3306,// 端口'DB_PREFIX'=>'think_',// 數據庫表前綴'DB_CHARSET'=>'utf8',// 數據庫字符集

    接下來,我們修改下控制器方法,添加讀取數據的代碼:

    namespace HomeController;use ThinkController;class IndexController extends Controller{    public function index(){        $Data     = M('Data');// 實例化Data數據模型        $result     = $Data->find(1);        $this->assign('result',$result);        $this->display();    }}

    這里用到了M函數,是ThinkPHP內置的實例化模型的方法,而且用M方法實例化模型不需要創建對應的模型類,你可以理解為M方法是直接在操作底層的Model類,而Model類具備基本的CURD操作方法。

    M(‘Data’) 實例化后,就可以對think_data數據表(think_ 是我們在項目配置文件中定義的數據表前綴)進行操作(包括CURD)了,M函數的用法還有很多,我們以后會深入了解。

    定義好控制器后,我們修改模板文件,添加數據輸出標簽如下:

    <html><head><title></title></head><body>{$result.id}--{$result.data}</body></html>

    模板標簽的用法和Smarty類似,就是用于輸出數據的字段,這里就表示輸出think_data表的id和data字段的值。

    我們訪問會輸出:

    1--thinkphp

    如果發生錯誤,檢查你是否開啟了調試模式或者清空Runtime目錄下面的緩存文件。

    綜上,就是ThinkPHP比較基礎的內容了。
    最后,有問題,又不會的查手冊,看視頻。
    http://www.kancloud.cn/thinkphp/thinkphp_quickstart/2138

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲欧美激情另类校园| 久久久久久久久久久亚洲| 欧美精品久久久久久久久久| 日韩综合视频在线观看| 国产在线日韩在线| 91精品国产综合久久男男| 欧美成人精品在线视频| 亚洲大胆人体在线| 国产精品视频网址| 欧美最猛性xxxxx(亚洲精品)| 青青草国产精品一区二区| 国产精品人人做人人爽| 中文字幕不卡av| 亚洲影院色无极综合| 欧洲日本亚洲国产区| 欧美—级a级欧美特级ar全黄| 97视频国产在线| 北条麻妃99精品青青久久| 欧美色播在线播放| 久久99亚洲热视| 精品国产91久久久久久老师| 国产午夜精品理论片a级探花| 国产精品成av人在线视午夜片| 国产精品久久久| 日韩欧美视频一区二区三区| 国产精品草莓在线免费观看| 不用播放器成人网| 日韩经典一区二区三区| 日韩中文字幕国产精品| 欧美午夜片欧美片在线观看| 伊人激情综合网| 91网站在线看| 国产偷亚洲偷欧美偷精品| 国产精品白嫩美女在线观看| 中文字幕免费精品一区| 欧美在线视频免费观看| 日韩最新在线视频| 欧美性猛交xxxx免费看久久久| 91成品人片a无限观看| 中文字幕亚洲欧美| 高清欧美性猛交| 98精品国产自产在线观看| 国产精品综合不卡av| 国产欧美 在线欧美| 亚洲欧美日韩精品久久奇米色影视| 中文日韩在线视频| 亚洲成人黄色网址| 欧美性xxxx在线播放| 亚洲欧美国产精品va在线观看| 国产这里只有精品| 久久综合久久美利坚合众国| 日韩电影中文字幕av| 一区国产精品视频| 亚洲成人a**站| 中文字幕欧美精品日韩中文字幕| 亚洲人成伊人成综合网久久久| 97国产真实伦对白精彩视频8| 在线看片第一页欧美| 亚洲毛片在线观看| 国产精品久久久久久久久久久不卡| www.日韩.com| 国产精品27p| 亚洲欧美福利视频| 国产女人18毛片水18精品| 日韩在线视频国产| 亚洲国产免费av| 欧美在线性视频| 亚洲免费视频在线观看| 日本国产一区二区三区| 国产精品免费网站| 亚洲专区国产精品| 久久夜色精品国产| 国产美女直播视频一区| 久久91精品国产| 欧美日韩中国免费专区在线看| 国产一区二区三区直播精品电影| 国产精品免费视频xxxx| 中文字幕亚洲欧美一区二区三区| 亚洲精品国精品久久99热一| 91精品在线看| 亚洲在线观看视频| 中文字幕日韩欧美在线| 欧美久久久精品| 亚洲精品aⅴ中文字幕乱码| 亚洲xxxx18| 日韩一二三在线视频播| 亚洲国产欧美一区二区三区同亚洲| 久久精品2019中文字幕| 1769国内精品视频在线播放| 亚洲成av人片在线观看香蕉| 国产丝袜一区二区三区| 97久久精品人人澡人人爽缅北| 午夜精品福利电影| 国产视频精品自拍| 精品国产自在精品国产浪潮| 亚洲成人精品av| 欧美日本国产在线| 日韩黄色在线免费观看| 1769国产精品| 欧美久久精品午夜青青大伊人| 亚洲精品福利免费在线观看| 久久天天躁狠狠躁夜夜躁| 国产精品678| 韩国三级电影久久久久久| 国产欧美在线视频| 日韩精品免费在线| 久久天天躁狠狠躁夜夜躁2014| 中文字幕亚洲欧美日韩高清| 亚洲一二三在线| 欧美成年人视频网站| 欧美成人黑人xx视频免费观看| 久久精品国产亚洲7777| 2021久久精品国产99国产精品| 操91在线视频| 成人性教育视频在线观看| 亚洲国产精品久久久久秋霞蜜臀| 日韩中文字幕免费看| 欧美在线一区二区三区四| 日韩视频一区在线| 日韩av网址在线| 国产成人在线视频| 日韩免费av片在线观看| 在线日韩日本国产亚洲| 欧美插天视频在线播放| 成人网在线免费观看| 国产97在线观看| 亚洲第一区在线| 国产精品专区h在线观看| 亚洲精品日韩av| 亚洲国产日韩欧美在线动漫| 欧美老女人xx| 日韩国产高清污视频在线观看| 欧美猛男性生活免费| 国产在线高清精品| 91精品久久久久久久久久久| 8x拔播拔播x8国产精品| 欧洲日韩成人av| 欧美精品免费播放| 成人av色在线观看| 久久精品99久久久久久久久| 久久福利视频导航| 国产精品一区二区三区在线播放| 亚洲区bt下载| 欧美怡红院视频一区二区三区| 午夜精品在线观看| 亚洲国产欧美久久| 欧美成人在线免费视频| 热门国产精品亚洲第一区在线| 欧美日韩xxx| 欧美国产日韩xxxxx| 亚洲最大的免费| 国产91在线播放精品91| 国产视频亚洲精品| 亚洲成色999久久网站| 91免费国产网站| 97在线观看视频国产| 久久午夜a级毛片| 久久久久久久久久久免费精品| 在线精品播放av| 青青a在线精品免费观看| 成人免费直播live| 色妞色视频一区二区三区四区| 午夜伦理精品一区| 亚洲人高潮女人毛茸茸|