天天看點

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

一. ThinkPHP架構

1. 什麼是架構

php架構是許多代碼的集合,這些代碼是程式結構的代碼(并不是業務代碼)代碼中有許多函數、類、功能類包,架構的代碼按照一定标準組成了一個有機的功能體,這個功能體裡邊有許多設計模式如MVC、單例、AR等等。

2. 不使用架構開發遇到的問題

① 代碼編寫沒有統一規範,項目生命時間非常短,不延續

② 一個小地方的修改會牽扯到全局變化,牽一發動全身

③ 不能很好滿足客戶各方面需求

3. 使用架構的好處

① 架構可以幫助我們快速、穩定、高效搭建程式系統

② 該系統由于架構的使用使得本身的維護性、靈活性、适應客戶需求方面得到最大化的增強。

③ 使用架構的過程中可以使得我們的注意力全部集中在業務層面,而無需關心程式的底層架構。

④ 可以節省很多的代碼工作量

4. 相關架構

① zendframework

php語言公司zend釋出的官方架構,有許多OOP面向對象内容,功能非常豐富,重量級架構(進階語言、功能豐富)

重量級:① 語言級别(進階語言OOP)② 功能豐富

輕量級:① 語言級别(面向過程或有少許OOP)② 功能相對較少但是實用

進階語言:例如java、C++  是用類對變量、函數的封裝

中級語言:例如C,面向過程,是用變量、函數對中低語言代碼的封裝

(中低級)語言:例如彙編語言,比低級語言再進階一點的語言,是對二進制代碼的封裝

if---->000111   function----->11110001111

低級語言:二進制代碼語言

② 

Yii

國人(華人)自己開發的架構,名字(xue qiang),重量級架構,純OOP架構,該架構的特點是把代碼的重用性發揮到了極緻。速度非常快。外企使用量最多的架構之一。

該架構思想來源于symfony、jquery等。

作者之前是prado架構的核心維護人員,維護該架構3年之久。

③ cakephp

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

④symfony

Symfony是一個基于MVC模式的面向對象的PHP5架構

⑤ ThinkPHP

輕量級架構。内部OOP和面向過程代碼都純在,是國人自己開發的架構。

ThinkPHP是一個開源的PHP架構,是為了簡化企業級應用開發和靈活WEB應用開發而誕生的。最早誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協定釋出。早期的思想架構來源于Struts,後來經過不斷改進和完善,同時也借鑒了國外很多優秀的架構和模式,使用面向對象的開發結構和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标簽庫)、RoR的ORM映射和ActiveRecord模式,封裝了CURD和一些常用操作,單一入口模式等,在模版引擎、緩存機制、認證機制和擴充性方面均有獨特的表現。 

5. 架構檔案介紹

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建
ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建
ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

二. 建立應用

開發項目

設定項目運作目錄,并複制ThinkPHP目錄過來:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

使用同一個thinkphp架構可以開發多個系統:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

給shop應用建立index.php入口檔案:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

在index.php入口檔案裡邊引入架構的接口檔案:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

為shop項目目錄建立虛拟主機(apache)

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

之後重新開機apache

在hosts檔案中做域名解析:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

在浏覽器裡邊通路shop項目:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

第一次通路項目的時候,項目被自動建立出來對應的三個目錄:

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

第一次做項目請求,請求的是index.php索引檔案

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

該架構使用mvc設計模式,預設使用Index控制器的index操作方法

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建
ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建
ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建
ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

三.路由形式

什麼是路由:

答:系統從URL參數中分析出目前請求的分組(平台)、控制器和操作方法的過程就是“路由”。

tp架構路由共有4種形式:

① 基本get形式

http://網址/index.php?m=分組&c=控制器&a=操作方法

該方式是最底層的get形式、傳統的參數傳遞方式,不時尚、不安全。

② pathinfo路徑形式[預設方式]

http://網址/index.php/分組/控制器/操作方法 

http://網址/index.php/Home/Index/advert

③ rewrite重寫形式(僞靜态技術)省略index.php入口檔案

http://網址/分組/控制器/操作方法

http://網址/Home/Index/index

④ 相容形式

http://網址/index.php?s=/分組/控制器/操作方法

http://網址/index.php?s=/Home/Index/advert

以上四種模式除了第③種,其他的url模式都可以使用

ThinkPHP3.2基本知識一. ThinkPHP架構二. 建立應用三.路由形式四. 建立控制器五.view視圖模闆六.背景頁面搭建

四. 建立控制器

mvc架構需要根據業務特點建立對應的不同控制器,

例如 UserController   GoodsController    OrderController  IndexController等等

五.view視圖模闆

1. 簡單模闆view調用

在控制器的方法中調用如下方法:

$this -> display();   //模闆名稱與目前操作方法的名稱一緻

$this -> display(模闆名稱);  //調用目前控制器對應目錄指定名稱的模闆

$this -> display(控制器/模闆名稱);  //調用其他控制器下的具體模闆檔案

tp架構有兩種模式:生成模式[預設]、開發調試模式

生産模式 的 錯誤提示不友好(開發調試模式錯誤提示較友好):

2. 已有模闆與tp架構做結合

具體實作步驟:

a. 複制模闆檔案(内容)到View指定目錄

b.複制css、img、js靜态資源檔案到系統指定目錄

c. 把靜态資源(css、img、js)檔案的路徑設定為“常量”資訊(在index入口檔案設定) 

d. 在模闆檔案中通過常量引入靜态資源(css、img、js)檔案

後續a、d重複實作即可

2.1靜态資源檔案引入

css、img、js檔案拷貝到系統指定目錄:

2.2 在模闆中引入靜态資源檔案

<link href="路徑設定" target="_blank" rel="external nofollow" rel="stylesheet" type="text/css" />

路徑設定:相對路徑、絕對路徑

在模闆中需要通過絕對路徑方式引入靜态資源檔案(css/img/js),絕對路徑資訊的編寫、更新、維護不友善,就給其設定常量進行使用。

六.背景頁面搭建

1. 分組設定

項目裡邊有前台、背景

前台、背景本質上看都是“控制器”和“view視圖”模闆的集合

為了開發、維護比較友善要把前台、背景對應的控制器和視圖模闆分開存儲

前台、背景分别存儲的控制器和view視圖模闆的集合稱為是一個“平台/分組”

分組:

同一個項目裡邊,由于業務規則的劃分,有多個相關的功能子產品,它們都有獨立的控制器、view視圖、配置檔案、函數庫檔案等檔案,為了開發維護友善,就給它們建立獨立的分組出來,每個分組都有自己的控制器、view視圖、配置檔案、函數庫檔案。

如果還有其他的業務功能子產品,也都是獨立的,可以繼續建立分組。

對分組進行通路:

http://網址/index.php/分組/控制器/操作方法