## ç³»ç»æå¡
ç³»ç»æå¡çæ¦å¿µæ¯æå¨æ§è¡æ¡æ¶çæäºç»ä»¶æè
åè½çæ¶åéè¦ä¾èµçä¸äºåºç¡æå¡ï¼æå¡ç±»é常å¯ä»¥ç»§æ¿ç³»ç»ç`think\Service`ç±»ï¼ä½å¹¶ä¸å¼ºå¶ï¼å¦æ继æ¿`think\Service`çè¯å¯ä»¥ç´æ¥è°ç¨`this->app`è·ååºç¨å®ä¾ï¼ã
ä½ å¯ä»¥å¨ç³»ç»æå¡ä¸æ³¨åä¸ä¸ªå¯¹è±¡å°å®¹å¨ï¼æè
对æäºå¯¹è±¡è¿è¡ç¸å
³çä¾èµæ³¨å
¥ãç±äºç³»ç»æå¡çæ§è¡ä¼å
级é®é¢ï¼å¯ä»¥ç¡®ä¿ç¸å
³ç»ä»¶å¨æ§è¡çæ¶åå·²ç»å®æç¸å
³ä¾èµæ³¨å
¥ã
## æå¡å®ä¹
ä½ å¯ä»¥éè¿å½ä»¤è¡çæä¸ä¸ªæå¡ç±»ï¼ä¾å¦ï¼
~~~
php think make:service FileSystemService
~~~
é»è®¤çæçæå¡ç±»ä¼ç»§æ¿ç³»ç»ç`think\Service`ï¼å¹¶ä¸èªå¨çæäºç³»ç»æå¡ç±»æ常ç¨ç两个空æ¹æ³ï¼`register`å`boot`æ¹æ³ã
### 注åæ¹æ³
`register`æ¹æ³é常ç¨äºæ³¨åç³»ç»æå¡ï¼ä¹å°±æ¯å°æå¡ç»å®å°å®¹å¨ä¸ï¼ä¾å¦ï¼
```
<?php
namespace app\service;
use my\util\FileSystem;
class FileSystemService extends Service
{
public function register()
{
$this->app->bind('file_system', FileSystem::class);
}
}
```
`register`æ¹æ³ä¸éè¦ä»»ä½çåæ°ï¼å¦æä½ åªæ¯ç®åçç»å®å®¹å¨å¯¹è±¡çè¯ï¼å¯ä»¥ç´æ¥ä½¿ç¨`bind`å±æ§ã
```
<?php
namespace app\service;
use my\util\FileSystem;
class FileSystemService extends Service
{
public $bind = [
'file_system' => FileSystem::class,
];
}
```
### å¯å¨æ¹æ³
`boot`æ¹æ³æ¯å¨ææçç³»ç»æå¡æ³¨åå®æä¹åè°ç¨ï¼ç¨äºå®ä¹å¯å¨æ个系ç»æå¡ä¹åéè¦åçæä½ãä¾å¦ï¼
```
<?php
namespace think\captcha;
use think\Route;
use think\Service;
use think\Validate;
class CaptchaService extends Service
{
public function boot(Route $route)
{
$route->get('captcha/[:config]', "\\think\\captcha\\CaptchaController@index");
Validate::maker(function ($validate) {
$validate->extend('captcha', function ($value) {
return captcha_check($value);
}, ':attributeé误!');
});
}
}
```
`boot`æ¹æ³æ¯æä¾èµæ³¨å
¥ï¼ä½ å¯ä»¥ç´æ¥ä½¿ç¨å
¶å®çä¾èµæå¡ã
## æå¡æ³¨å
å®ä¹å¥½ç³»ç»æå¡åï¼ä½ è¿éè¦æ³¨åæå¡å°ä½ çåºç¨å®ä¾ä¸ã
å¯ä»¥å¨åºç¨çå
¨å±å
Œ
±æ件`service.php`ä¸å®ä¹éè¦æ³¨åçç³»ç»æå¡ï¼ç³»ç»ä¼èªå¨å®æ注å以åå¯å¨ãä¾å¦ï¼
```
return [
'\app\service\ConfigService',
'\app\service\CacheService',
];
```
å¦æä½ éè¦å¨ä½ çæ©å±ä¸æ³¨åç³»ç»æå¡ï¼é¦å
å¨æ©å±ä¸å¢å ä¸ä¸ªæå¡ç±»ï¼ç¶åå¨æ©å±ç`composer.json`æ件ä¸å¢å å¦ä¸å®ä¹ï¼
```
"extra": {
"think": {
"services": [
"think\\captcha\\CaptchaService"
]
}
},
```
å¨å®è£
æ©å±åä¼ç³»ç»ä¼èªå¨æ§è¡`service:discover`æ令ç¨äºçææå¡å表ï¼å¹¶å¨ç³»ç»åå§åè¿ç¨ä¸èªå¨æ³¨åã
## å
ç½®æå¡
为äºæ´å¥½çå®ææ ¸å¿ç»ä»¶çåå
æµè¯ï¼æ¡æ¶å
ç½®äºä¸äºç³»ç»æå¡ç±»ï¼ä¸»è¦é½æ¯ç¨äºæ ¸å¿ç±»çä¾èµæ³¨å
¥ï¼å
æ¬`ModelService`ã`PaginatorService`å`ValidateService`ç±»ãè¿äºæå¡ä¸éè¦æ³¨åï¼å¹¶ä¸ä¹ä¸è½å¸è½½ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿