您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)怎么使用ThinkPHP創(chuàng)建TP5.1項目,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在前面,我們安裝了ThinkPHP之后,那么如何用ThinkPHP開發(fā)項目呢?
1、 打開application/index/controller/Index.php,我們可以看到有如下代碼。
<?php namespace app\index\controller; class Index { public function index() { return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h2{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h2>:) </h2><p> ThinkPHP V5.1<br/><span style="font-size:30px">12載初心不改(2006-2018) - 你值得信賴的PHP框架</span></p></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="eab4b9f840753f8e7"></think>'; } public function hello($name = 'ThinkPHP5') { return 'hello,' . $name; } }
在上述代碼中,
(1)、namespace app\index\controller 是命名空間。PHP中命名空間使用關(guān)鍵字namespace定義,其基本語法格式是:
namespace 空間名稱;
其中空間名稱遵循基本標識符命名規(guī)則,以數(shù)字、字母和下劃線構(gòu)成,且不能以數(shù)字開頭)。關(guān)于更多的命名空間,大家可以自行上網(wǎng)搜索。
(2)、class Index 是一個類,類中有index()和hello()方法,比如index()方法中的return返回的就是我們項目首頁的HTML內(nèi)容。
(3)、訪問index()方法,直接通過http://localhost:8010/tp5.1.36/public這個URL進行訪問(localhost表示的是本地主機,8010是Apache服務(wù)器的端口號,tp5.1.36是項目名)。
(4)、如果要訪問hello()方法,那么就需要通過http://localhost:8010/tp5.1.36/public/index.php/index/index/hello這個URL來訪問,打開后,網(wǎng)頁中顯示“hello,ThinkPHP5”.
ThinkPHP5.1完全開放手冊是這樣描述的:http://serverName/index.php(或者其它應(yīng)用入口文件)/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]
那么我們來看這個地址
http://localhost:8010/tp5.1.36/public/index.php/index/index/hello
其中:
index.php后面的第一個index表示的是模塊;
index.php后面的第二個index表示的是控制器;
hello表示的是index模塊下的index控制器下的hello()方法。
(5)、可以通過URL重寫隱藏應(yīng)用的入口文件index.php(也可以是其它的入口文件,但URL重寫通常只能設(shè)置一個入口文件),下面是相關(guān)服務(wù)器的配置參考(以apache為例):
1) httpd.conf配置文件中加載了mod_rewrite.so模塊
2) AllowOverride None 將None改為 All
3) 把下面的內(nèi)容保存為.htaccess文件放到應(yīng)用入口文件的同級目錄下
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
2、 打開MySQL服務(wù)器,創(chuàng)建數(shù)據(jù)庫,將數(shù)據(jù)庫名稱命名為student。
3、 在該數(shù)據(jù)庫下創(chuàng)建一張表,表名為:student。
4、 向student表中插入如下數(shù)據(jù)
上面性別的取值中,1表示的是男,2表示的是女。
5、 編輯config/database.php文件,參考如下代碼修改數(shù)據(jù)庫的配置。
// 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務(wù)器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'student', // 用戶名 'username' => 'root', // 密碼 'password' => 'root',
請根據(jù)自己的實際情況進行修改,我這里的用戶名和密碼都是root。
6、 在Index控制器下添加student()方法,將student表查詢出來,具體代碼如下。
public function index() { $data=\think\Db::name(‘select * from `student`’); $arr=[]; foreach($data as $v){ $arr[]=$v[‘name’]; } return implode(‘,’,$arr); }
通過訪問localhost:8010/tp5.1.36/public/index.php/index/index/student進行測試,可以看到瀏覽器中顯示的數(shù)據(jù)為:李四,張三,王五。
7、 在實際開發(fā)中,我們會遇到各種錯誤,為了更好的調(diào)試錯誤,ThinkPHP提供了非常強大的錯誤報告和跟蹤調(diào)試功能。打開config/app.php文件,找到如下兩行代碼,將值改為true。
‘a(chǎn)pp_debug’ =>’true’,//應(yīng)用調(diào)試模式 ‘a(chǎn)pp_trace’ =>’true’,//應(yīng)用trace
8、 在實際開發(fā)中,需要編寫大量的HTML網(wǎng)頁,為了方便編寫HTML網(wǎng)頁,我們可以單獨將HTML放置在一個模板文件中。為了實現(xiàn)這個效果,需要讓控制器中的Index類繼承\(zhòng)think\Controller類,代碼如下所示。
class Index extends \think\Controller
9、 繼承\(zhòng)think\Controller類后,就可以使用這個類提供的assgin()和fetch()方法。
10、 接下來修改student()方法中的代碼內(nèi)容,調(diào)用assgin()方法為模板賦值,再調(diào)用fetch()方法喧嚷模板,具體代碼如下。
public function index() { $data=\think\Db: name(‘student`’)->filed(‘name’)->select(); $this->assgin(‘data’,$data); return $this->fetch(); }
通過訪問localhost:8010/tp5.1.36/public/index.php/index/index/student進行測試,會出現(xiàn)報錯,是因為我們還沒有創(chuàng)建該模板,根據(jù)提示可以找到該路徑位于application/index/view/Index/student.html。手動創(chuàng)建模板文件和其所在的目錄,編寫代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>學(xué)生信息列表</title> </head> <body> { foreach($data as $v)} <div>{$v.name]}></div> {/foreach;} </body> </html>
11、這樣就可以在模板文件中輸出所有學(xué)生的姓名。
TP5.1的第一個項目就這樣完成了,在后續(xù)的文章中,我們再進行細講涉及到的知識點。
關(guān)于“怎么使用ThinkPHP創(chuàng)建TP5.1項目”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。