這篇文章適用於剛學過php但還沒接觸過框架的小夥伴。
前言:
不知大家是否有這樣的感覺,經過一段時間的php學習發現這門語言並不是很難,而且很容易上手。隨便寫個網頁介面,再把資料庫內容弄一弄,似乎就沒什麼難度了。當初的小編也是這樣傻fufu的認為做個網站也就僅此而已---just so so( ̄_, ̄ )。然而隨著學習的不斷深入,猛然發現事實並非如此,再回想當初的念頭,只能默默地感嘆自己too young too simple。就小編而言,一開始學的內容是PHP的入門階段知識,簡而言之就是把程式碼往那一堆,然後調資料庫顯示實作功能就完事了。隨著想寫的功能的增加,小編漸漸發現寫個設計要寫20多個頁面,改個代碼就要半天,but小編當時還沒有框架這一概念。直到學習了java EE的Struts2框架,小編才意識到自己是如此的菜—-瞬間原地爆炸。為了強化php的學習,小編花了一些時間研究php眾多框架中的一個—>thinkPHP5。
後序 :
小寫這篇文章旨在做一個學習筆記,順便給想要學習thinkphp5的小夥伴一個簡單地淺顯地介紹,置於資料庫的操作小編就不介紹了,因為真的很多,不過開發手冊上有較為詳細的解釋,寫的不好的地方請大神糾正。另外小編個人覺得tp5的快速入門手冊也是值得一看的(付費)。
1.什麼是thinkphp5框架?
在介紹thinkphp5之前,先來談談什麼是框架。簡言之,別人幫你蓋好了房子但尚未裝修,你需要在別人設計好的戶型裡去裝修,省去你搬磚的重複性操作。 (對於框架的深入理解大家可以自行百度)。
ThinkPHP是一個快速、簡單的基於MVC和物件導向的輕量級PHP開發框架,遵循Apache2開源協定發布,自2006年誕生以來一直秉承簡潔實用的設計原則,在保持出色的效能和至簡程式碼的同時,尤其註重開發體驗和易用性,並且擁有眾多的原創功能和特性,為WEB應用和API開發提供了強有力的支援。 (對於初學者而言了解概念小編認為並沒什麼用,不如直接在做專案中感受一下)
2.前期準備工作
(1 )程式設計工具的選擇:開放工具:phpStorm 伺服器工具:phpStudy
對於工具的選擇主要看個人的喜好,但最好選擇主流的編輯工具。
phpstrom 下載及安裝教學網址://m.sbmmt.com/xiazai/gongju/122
phpStudy下載及安裝教學網址: //m.sbmmt.com/xiazai/gongju/845
如果沒有用過phpstudy可以連結上面的地址去學習phpsyudy的基本操作方法
*下面這一步暫時用不到
搭建PhpStorm PhpStudy開發環境:https://blog.csdn.net/u012861467/article/details/54692236
(2)下載安裝thinkphp5
下載位址:http://www.thinkphp.cn/donate/download/id/1155.html
安裝方法:將壓縮套件解壓縮放phpStudy/ww的在專案下就可以
#輸入網址:localhost/thinkphp_5/public/ 出現下面介面則安裝成功
#(3)學習thinkphp5所要具備的知識
php入門階段的知識php物件導向的程式設計(==》命名空間那部分可以先看看) mvc設計模式
(1)參考: thinkphp5完全發展手冊:
https://www.kancloud.cn/manual/thinkphp5/ 118003 開發手冊內容有很多沒有必要直接看下來,對於初次接觸tp5的小夥伴而言,你需要用到哪部分知識就去查找哪部分。
###(2)目錄結構:(大致了解即可) #############tp5的目錄檔案很多,這裡我們著重講一下劃線的部分,其他部分大家可以參考開發手冊。首先說一下application,簡單地說這個部分就是我們寫程式的地方。如上圖所示,index模組為前端,而我們一般會自己創建admin模組及後端管理員。
index模組和admin模組下是我們熟悉的MVC,datebase.php為配置資料庫的文件,application下的config.php是影響全部模組的設定文件,而index和admin的config.php只會影響自己模組下的檔案。 public下的static是放置靜態資源的文件,index.php為入口文件,也就是只能透過此文件存取。
(3)MVC
Model(模型)是應用程式中用來處理應用程式資料邏輯的部分。
通常模型物件負責在資料庫中存取資料。
View(檢視)是應用程式中處理資料顯示的部分。
通常視圖是由依據模型資料建立的。
Controller(控制器)是應用程式中處理使用者互動的部分。
通常控制器負責從視圖讀取數據,控制使用者輸入,並向模型發送資料。
Model(模型)
a: 資料庫的設定:
開啟database.php,一般要改變的就是劃線部分。另外在thinkphp5.0完全開發手冊中,我們在基礎目錄下可以看到開發規範,這是我們需要了解的。
b: 建立模型:(這部分在開發手冊中也有更詳細的解讀)
<?php namespace app\admin\model; use think\Model; class User extends Model { } ?>
大多情況下,我們不需要為模型定義任何的屬性和方法即可完成基礎的操作。模型會自動對應一個資料表。規格是:資料庫前綴目前的模型類別名稱(不含命名空間)因為模型類別命名是駝峰法,所以取得實際的資料表的時候會自動轉換為小寫下劃線命名的資料表名稱,所以只要建立一個與數據表同名的model就可以。如果你的資料表不是像tp_user這樣以前綴加底線命名可以在model中指定資料表。
<?php namespace app\admin\model; use think\Model; use think\Db; class Swe extends Model { // 设置完整的数据表(包含前缀) protected $table = 'swe'; }
下面用一個例子來解釋:
首先在admin模組下建立以下幾個文件,在controller下建立User.php ,Model下建立User.php ,在view下建立user資料夾,在user資料夾下建立user.html
並建立user表欄位有id,clickname,email,birthday
程式碼如下:
#controller下的User.php
<?php namespace app\admin\controller; use think\Controller; use app\admin\model\User as UserModel; class User extends Controller { // // 创建用户数据页面 // public function create() // { // return $this->fetch('user');//加载模板,会自动找到view下的user的user.html并显示 // } // 创建用户数据页面 public function create() { return view('user');//加载模板,会自动找到view下的user的user.html } // 新增用户数据 public function add() { $user = new UserModel; if ($user->allowField(true)->save(input('post.'))) {//input('post.'))为表单提交的数据 return '用户[ ' . $user->nickname . ':' . $user->id . ' ]新增成功'; } else { return $user->getError(); } } // model的助手函数新增用户数据 public function add3() { // 使用model助手函数实例化User模型 $user = model('User'); // 模型对象赋值 $user->data([ 'nickname' => 'SWE', 'email' => 'thinkphp@qq.com' ]); if ($user->save()) { return '用户[ ' . $user->nickname . ':' . $user->id . ' ]新增成功'; } else { return $user->getError(); } }
Model下的User.php
<?php namespace app\admin\model; use think\Model; class User extends Model { }
user.html
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>创建用户</title> <style> </style> </head> <body> <h2>创建用户</h2> <FORM method="post" class="form" action="{:url('admin/user/add')}"> 昵 称:<INPUT type="text" class="text" name="nickname"><br/> 邮 箱:<INPUT type="text" class="text" name="email"><br/> 生 日:<INPUT type="text" class="text" name="birthday"><br/> <input type="hidden" name="__token__" value="{$Request.token}" /> <INPUT type="submit" class="btn" value=" 提交 "> </FORM> </body> </html>
url:localhost/tp5/public/index.php/admin/ user/create
執行user.php下的create方法
return $this->fetch('user'); //載入模板,會自動找到view下的user的user.html並顯示
user.html提交資料到add方法
實例化Model類,$user->allowField(true)->save(input('post.'))提交數據到資料庫
跟多相關問題請訪問PHP中文網:PHP影片教學
#以上是PHP——thinkphp5的詳解導讀與使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!