`ThinkPHP`æ¯æä¼ ç»ç`MVC`ï¼Model-View-Controllerï¼æ¨¡å¼ä»¥åæµè¡ç`MVVM`ï¼Model-View-ViewModelï¼æ¨¡å¼çåºç¨å¼åï¼ä¸é¢çä¸äºæ¦å¿µæå¿
è¦åä¸äºè§£ï¼å¯è½å¨åé¢çå
容ä¸ç»å¸¸ä¼è¢«æåã
## å
¥å£æ件
ç¨æ·è¯·æ±çPHPæ件ï¼è´è´£å¤ç请æ±ï¼æ³¨æï¼ä¸ä¸å®æ¯HTTP请æ±ï¼ççå½å¨æï¼å
¥å£æ件ä½äº`public`ç®å½ä¸é¢ï¼æ常è§çå
¥å£æ件就æ¯`index.php`ï¼`6.0`æ¯æå¤åºç¨å¤å
¥å£ï¼ä½ å¯ä»¥ç»æ¯ä¸ªåºç¨å¢å å
¥å£æ件ï¼ä¾å¦ç»åå°åºç¨åç¬è®¾ç½®çä¸ä¸ªå
¥å£æ件`admin.php`ã
å¦æå¼å¯èªå¨å¤åºç¨çè¯ï¼ä¸è¬åªéè¦ä¸ä¸ªå
¥å£æ件`index.php`ã
## åºç¨
`6.0`çæ¬æä¾äºå¯¹å¤åºç¨çè¯å¥½æ¯æï¼æ¯ä¸ªåºç¨æ¯ä¸ä¸ª`app`ç®å½çåç®å½ï¼æè
æå®ç`composer`åºï¼ï¼æ¯ä¸ªåºç¨å
·æç¬ç«çè·¯ç±ãé
ç½®ï¼ä»¥åMVCç¸å
³æ件ï¼è¿äºåºç¨å¯ä»¥å
¬ç¨æ¡æ¶æ ¸å¿ä»¥åæ©å±ãèä¸å¯ä»¥æ¯æ`composer`åºç¨å è½½ã
## 容å¨
ThinkPHP使ç¨ï¼å¯¹è±¡ï¼å®¹å¨ç»ä¸ç®¡ç对象å®ä¾åä¾èµæ³¨å
¥ã
容å¨ç±»çå·¥ä½ç±`think\Container`ç±»å®æï¼ä½å¤§å¤æ°æ
åµä¸æ们é½æ¯éè¿åºç¨ç±»ï¼`think\App`ç±»ï¼ææ¯`app`å©æå½æ°æ¥å®æ容å¨æä½ï¼å®¹å¨ä¸ææç对象å®ä¾é½å¯ä»¥éè¿å®¹å¨æ è¯åä¾è°ç¨ï¼ä½ å¯ä»¥ç»å®¹å¨ä¸ç对象å®ä¾ç»å®ä¸ä¸ªå¯¹è±¡æ è¯ï¼å¦æ没æç»å®å使ç¨ç±»åä½ä¸ºå®¹å¨æ è¯ã
## ç³»ç»æå¡
ç³»ç»æå¡çæ¦å¿µæ¯æå¨æ§è¡æ¡æ¶çæäºç»ä»¶æè
åè½çæ¶åéè¦ä¾èµçä¸äºåºç¡æå¡ï¼æå¡ç±»é常å¯ä»¥ç»§æ¿ç³»ç»ç`think\Service`ç±»ï¼ä½å¹¶ä¸å¼ºå¶ã
ä½ å¯ä»¥å¨ç³»ç»æå¡ä¸æ³¨åä¸ä¸ªå¯¹è±¡å°å®¹å¨ï¼æè
对æäºå¯¹è±¡è¿è¡ç¸å
³çä¾èµæ³¨å
¥ãç±äºç³»ç»æå¡çæ§è¡ä¼å
级é®é¢ï¼å¯ä»¥ç¡®ä¿ç¸å
³ç»ä»¶å¨æ§è¡çæ¶åå·²ç»å®æç¸å
³ä¾èµæ³¨å
¥ã
## è·¯ç±
è·¯ç±æ¯ç¨äºè§åï¼ä¸è¬åæ¶ä¹ä¼è¿è¡ç®åï¼è¯·æ±ç访é®å°åï¼å¨è®¿é®å°ååå®é
æä½æ¹æ³ä¹é´å»ºç«ä¸ä¸ªè·¯ç±è§å => è·¯ç±å°åçæ å°å
³ç³»ã
ThinkPHP并é强å¶ä½¿ç¨è·¯ç±ï¼å¦æ没æå®ä¹è·¯ç±ï¼åå¯ä»¥ç´æ¥ä½¿ç¨âæ§å¶å¨/æä½âçæ¹å¼è®¿é®ï¼å¦æå®ä¹äºè·¯ç±ï¼å该路ç±å¯¹åºçè·¯ç±å°å就被ä¸è½ç´æ¥è®¿é®äºãä¸æ¦å¼å¯å¼ºå¶è·¯ç±åæ°ï¼åå¿
须为æ¯ä¸ªè¯·æ±å®ä¹è·¯ç±ï¼å
æ¬é¦é¡µï¼ã
使ç¨è·¯ç±æä¸å®çæ§è½æ失ï¼ä½éä¹ä¹æ´å å®å
¨ï¼å 为æ¯ä¸ªè·¯ç±é½æèªå·±ççææ¡ä»¶ï¼å¦æä¸æ»¡è¶³æ¡ä»¶ç请æ±æ¯è¢«è¿æ»¤çãä½ è¿æ¯ä½ å¨æ§å¶å¨çæä½ä¸è¿è¡åç§å¤æè¦å®ç¨çå¤ã
å
¶å®è·¯ç±çä½ç¨è¿éURLè§èè¿ä¹ç®åï¼è¿å¯ä»¥å®ç°éªè¯ãæéãåæ°ç»å®åååºè®¾ç½®çåè½ã
## æ§å¶å¨
æ¯ä¸ªåºç¨ä¸é¢æ¥æç¬ç«çç±»åºåé
ç½®æ件ï¼ä¸ä¸ªåºç¨ä¸é¢æå¤ä¸ªæ§å¶å¨è´è´£ååºè¯·æ±ï¼èæ¯ä¸ªæ§å¶å¨å
¶å®å°±æ¯ä¸ä¸ªç¬ç«çæ§å¶å¨ç±»ã
æ§å¶å¨ä¸»è¦è´è´£è¯·æ±çæ¥æ¶ï¼å¹¶è°ç¨ç¸å
³ç模åå¤çï¼å¹¶æç»éè¿è§å¾è¾åºãä¸¥æ ¼æ¥è¯´ï¼æ§å¶å¨ä¸åºè¯¥è¿å¤çä»å
¥ä¸å¡é»è¾å¤çã
>[danger] äºå®ä¸ï¼æ§å¶å¨æ¯å¯ä»¥è¢«è·³è¿çï¼éè¿è·¯ç±æ们å¯ä»¥ç´æ¥æ请æ±è°åº¦å°æ个模åæè
å
¶ä»çç±»è¿è¡å¤çã
`ThinkPHP`çæ§å¶å¨ç±»æ¯è¾çµæ´»ï¼å¯ä»¥æ é继æ¿ä»»ä½åºç¡ç±»åºã
ä¸ä¸ªå
¸åç`Index`æ§å¶å¨ç±»ï¼ååºç¨æ¨¡å¼ï¼å¦ä¸ï¼
~~~
<?php
namespace app\controller;
class Index
{
public function index()
{
return 'hello,thinkphp!';
}
}
~~~
> ä¸è¬å»ºè®®ç»§æ¿ä¸ä¸ªåºç¡çæ§å¶å¨ï¼æ¹ä¾¿æ©å±ãç³»ç»é»è®¤æä¾äºä¸ä¸ª`app\BaseController`æ§å¶å¨ç±»ã
## æä½
ä¸ä¸ªæ§å¶å¨å
å«å¤ä¸ªæä½ï¼æ¹æ³ï¼ï¼æä½æ¹æ³æ¯ä¸ä¸ªURL访é®çæå°åå
ã
ä¸é¢æ¯ä¸ä¸ªå
¸åç`Index`æ§å¶å¨çæä½æ¹æ³å®ä¹ï¼å
å«äºä¸¤ä¸ªæä½æ¹æ³ï¼
~~~
<?php
namespace app\controller;
class Index
{
public function index()
{
return 'index';
}
public function hello(string $name)
{
return 'Hello,'.$name;
}
}
~~~
æä½æ¹æ³å¯ä»¥ä¸ä½¿ç¨ä»»ä½åæ°ï¼å¦æå®ä¹äºä¸ä¸ªéå¯éåæ°ï¼å¹¶ä¸ä¸æ¯å¯¹è±¡ç±»åï¼å该åæ°å¿
é¡»éè¿ç¨æ·è¯·æ±ä¼ å
¥ï¼å¦ææ¯URL请æ±ï¼åé常æ¯éè¿å½åç请æ±ä¼ å
¥ï¼æä½æ¹æ³çåæ°æ¯æä¾èµæ³¨å
¥ã
## 模å
模åç±»é常å®æå®é
çä¸å¡é»è¾åæ°æ®å°è£
ï¼å¹¶è¿ååæ ¼å¼æ å
³çæ°æ®ã
>[danger] 模å类并ä¸ä¸å®è¦è®¿é®æ°æ®åºï¼èä¸å¨ThinkPHPçæ¶æ设计ä¸ï¼åªæè¿è¡å®é
çæ°æ®åºæ¥è¯¢æä½çæ¶åï¼æä¼è¿è¡æ°æ®åºçè¿æ¥ï¼æ¯çæ£çæ°æ§è¿æ¥ã
ThinkPHPç模åå±æ¯æå¤å±è®¾è®¡ï¼ä½ å¯ä»¥å¯¹æ¨¡åå±è¿è¡æ´ç»åç设计ååå·¥ï¼ä¾å¦æ模åå±å为é»è¾å±/æå¡å±/äºä»¶å±ççã
模åç±»é常éè¦ç»§æ¿`think\Model`ç±»ï¼ä¸ä¸ªå
¸åç`User`模åå¨ç±»å¦ä¸ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
}
~~~
## è§å¾
æ§å¶å¨è°ç¨æ¨¡åç±»åï¼è¿åçæ°æ®éè¿è§å¾ç»è£
æä¸åæ ¼å¼çè¾åºãè§å¾æ ¹æ®ä¸åçéæ±ï¼æ¥å³å®è°ç¨æ¨¡æ¿å¼æè¿è¡å
容解æåè¾åºè¿æ¯ç´æ¥è¾åºã
è§å¾é常ä¼æä¸ç³»åç模æ¿æ件对åºä¸åçæ§å¶å¨åæä½æ¹æ³ï¼å¹¶ä¸æ¯æå¨æ设置模æ¿ç®å½ã
## 模æ¿å¼æ
模æ¿æ件ä¸å¯ä»¥ä½¿ç¨ä¸äºç¹æ®ç模æ¿æ ç¾ï¼è¿äºæ ç¾ç解æé常ç±æ¨¡æ¿å¼æè´è´£å®ç°ã
æ°çä¸åå
ç½®`think-template`模æ¿å¼æï¼å¦æéè¦ä½¿ç¨ThinkPHPå®æ¹æ¨¡æ¿å¼æï¼éè¦åç¬å®è£
`think-view`模æ¿å¼æ驱å¨æ©å±ã
## 驱å¨
ç³»ç»å¾å¤çç»ä»¶é½éç¨é©±å¨å¼è®¾è®¡ï¼ä»èå¯ä»¥æ´çµæ´»çæ©å±ï¼é©±å¨ç±»çä½ç½®é»è®¤æ¯æ¾å
¥æ ¸å¿ç±»åºç®å½ä¸é¢ï¼ä¹å¯ä»¥éæ°å®ä¹é©±å¨ç±»åºçå½å空é´èæ¹å驱å¨çæ件ä½ç½®ã
>[danger] `6.0`çæ¬ç驱å¨éç¨`Composer`çæ¹å¼å®è£
å管çã
## ä¸é´ä»¶
ä¸é´ä»¶ä¸»è¦ç¨äºæ¦æªæè¿æ»¤åºç¨ç`HTTP`请æ±ï¼å¹¶è¿è¡å¿
è¦çä¸å¡å¤çã
>[danger] æ°çé¨åæ ¸å¿åè½ä½¿ç¨ä¸é´ä»¶å¤çï¼ä½ å¯ä»¥çµæ´»å
³éãå
æ¬Sessionåè½ã请æ±ç¼ååå¤è¯è¨åè½ã
## äºä»¶
`6.0`å·²ç»ä½¿ç¨äºä»¶æºå¶æ¿ä»£åæ¥çè¡ä¸ºåHookæºå¶ï¼å¯ä»¥å¨åºç¨ä¸ä½¿ç¨äºä»¶æºå¶çç¹æ§æ¥æ©å±åè½ã
æ¤å¤æ°æ®åºæä½å模åæä½å¨å®ææ°æ®æä½çåè°æºå¶ï¼ä¹ä½¿ç¨äºäºä»¶æºå¶ã
## å©æå½æ°
ç³»ç»ä¸ºä¸äºå¸¸ç¨çæä½æä¾äºå©æå½æ°æ¯æã使ç¨å©æå½æ°åæ§è½å¹¶æ ç´æ¥å½±åï¼åªæ¯æäºæ¶åæ æ³äº«åIDEèªå¨æéç便å©ï¼ä½æ¯å¦ä½¿ç¨å©æå½æ°ç项ç®èªèº«è§èï¼å¨åºç¨çå
Œ
±å½æ°æ件ä¸ä¹å¯ä»¥å¯¹ç³»ç»æä¾çå©æå½æ°è¿è¡éåã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿