## é¨é¢ï¼`Facade`ï¼
é¨é¢ä¸ºå®¹å¨ä¸çï¼å¨æï¼ç±»æä¾äºä¸ä¸ªéæè°ç¨æ¥å£ï¼ç¸æ¯äºä¼ ç»çéææ¹æ³è°ç¨ï¼ 带æ¥äºæ´å¥½çå¯æµè¯æ§åæ©å±æ§ï¼ä½ å¯ä»¥ä¸ºä»»ä½çééæç±»åºå®ä¹ä¸ä¸ª`facade`ç±»ã
>[info] ç³»ç»å·²ç»ä¸ºå¤§é¨åæ ¸å¿ç±»åºå®ä¹äº`Facade`ï¼æä»¥ä½ å¯ä»¥éè¿`Facade`æ¥è®¿é®è¿äºç³»ç»ç±»ï¼å½ç¶ä¹å¯ä»¥ä¸ºä½ çåºç¨ç±»åºæ·»å éæ代çã
ä¸é¢æ¯ä¸ä¸ªç¤ºä¾ï¼åå¦æ们å®ä¹äºä¸ä¸ª`app\common\Test`ç±»ï¼éé¢æä¸ä¸ª`hello`å¨ææ¹æ³ã
~~~
<?php
namespace app\common;
class Test
{
public function hello($name)
{
return 'hello,' . $name;
}
}
~~~
è°ç¨helloæ¹æ³ç代ç åºè¯¥ç±»ä¼¼äºï¼
~~~
$test = new \app\common\Test;
echo $test->hello('thinkphp'); // è¾åº helloï¼thinkphp
~~~
æ¥ä¸æ¥ï¼æ们ç»è¿ä¸ªç±»å®ä¹ä¸ä¸ªéæ代çç±»`app\facade\Test`ï¼è¿ä¸ªç±»åä¸ä¸å®è¦å`Test`ç±»ä¸è´ï¼ä½é常为äºä¾¿äºç®¡çï¼å»ºè®®ä¿æå称ç»ä¸ï¼ã
~~~
<?php
namespace app\facade;
use think\Facade;
class Test extends Facade
{
protected static function getFacadeClass()
{
return 'app\common\Test';
}
}
~~~
åªè¦è¿ä¸ªç±»åºç»§æ¿`think\Facade`ï¼å°±å¯ä»¥ä½¿ç¨éææ¹å¼è°ç¨å¨æç±»`app\common\Test`çå¨ææ¹æ³ï¼ä¾å¦ä¸é¢ç代ç å°±å¯ä»¥æ¹æï¼
~~~
// æ éè¿è¡å®ä¾å ç´æ¥ä»¥éææ¹æ³æ¹å¼è°ç¨hello
echo \app\facade\Test::hello('thinkphp');
~~~
ç»æä¹ä¼è¾åº `helloï¼thinkphp`ã
>[danger] 说çç´ç½ä¸ç¹ï¼Facadeåè½å¯ä»¥è®©ç±»æ éå®ä¾åèç´æ¥è¿è¡éææ¹å¼è°ç¨ã
## æ ¸å¿`Facade`ç±»åº
ç³»ç»ç»å
ç½®ç常ç¨ç±»åºå®ä¹äº`Facade`ç±»åºï¼å
æ¬ï¼
| ï¼å¨æï¼ç±»åº | Facadeç±» |
| --- | --- |
| think\\App | think\\facade\\App |
| think\\Cache | think\\facade\\Cache |
| think\\Config | think\\facade\\Config |
| think\\Cookie | think\\facade\\Cookie |
| think\\Db | think\\facade\\Db |
| think\\Env | think\\facade\\Env |
| think\\Event | think\\facade\\Event |
| think\\Filesystem| think\\facade\\Filesystem |
| think\\Lang | think\\facade\\Lang |
| think\\Log | think\\facade\\Log |
| think\\Middleware | think\\facade\\Middleware |
| think\\Request | think\\facade\\Request |
| think\\Response | think\\facade\\Response |
| think\\Route | think\\facade\\Route |
| think\\Session | think\\facade\\Session |
| think\\Validate | think\\facade\\Validate |
| think\\View| think\\facade\\View|
æä»¥ä½ æ éè¿è¡å®ä¾åå°±å¯ä»¥å¾æ¹ä¾¿çè¿è¡æ¹æ³è°ç¨ï¼ä¾å¦ï¼
~~~
use think\facade\Cache;
Cache::set('name','value');
echo Cache::get('name');
~~~
å¨è¿è¡ä¾èµæ³¨å
¥çæ¶åï¼è¯·ä¸è¦ä½¿ç¨`Facade`ç±»ä½ä¸ºç±»å约æï¼èæ¯å»ºè®®ä½¿ç¨åæ¥çå¨æç±»ï¼ä¸é¢æ¯é误çç¨æ³ï¼
~~~
<?php
namespace app\index\controller;
use think\facade\App;
class Index
{
public function index(App $app)
{
}
}
~~~
åºå½ä½¿ç¨ä¸é¢çæ¹å¼ï¼
~~~
<?php
namespace app\index\controller;
use think\App;
class Index
{
public function index(App $app)
{
}
}
~~~
äºå®ä¸ï¼ä¾èµæ³¨å
¥å使ç¨`Facade`代ççææ大å¤æ°æ
åµä¸æ¯ä¸æ ·çï¼é½æ¯ä»å®¹å¨ä¸è·å对象å®ä¾ãä¾å¦ï¼
~~~
<?php
namespace app\index\controller;
use think\Request;
class Index
{
public function index(Request $request)
{
echo $request->controller();
}
}
~~~
åä¸é¢çä½ç¨æ¯ä¸æ ·ç
~~~
<?php
namespace app\index\controller;
use think\facade\Request;
class Index
{
public function index()
{
echo Request::controller();
}
}
~~~
ä¾èµæ³¨å
¥çä¼å¿æ¯æ¯ææ¥å£ç注å
¥ï¼è`Facade`åæ æ³å®æã
>[danger] ä¸å®è¦æ³¨æ两ç§æ¹å¼ç`use`å¼å
¥ç±»åºçåºå«
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿