# 控制器對象
控制器對象是http組件中方便客戶端與服務端交互的對象,它使用了對象池對象復用模式,以及注入`request`和`response`對象進行數據交互
## 對象池模式
http的控制器對象都采用了對象池模式進行獲取創建對象.
例如:
* 用戶A請求`/Index`經過url解析以及路由轉發,定位到了`App\HttpController\Index.php`控制器
* 由于是第一次請求,`new App\HttpController\Index.php`并將該對象存入到對象池中
* 對象池出列,獲取該對象,并進行調用index方法進行處理請求
* 處理完畢,將對象的public屬性重置為默認值,對象回收對象池
* 用戶B請求`/Index`經過url解析以及路由轉發,定位到了`App\HttpController\Index.php`控制器
* 由于是二次請求,對象池直接獲取到第一次的對象,不需要new,直接調用`index`方法進行處理
## 約定規范
* 項目中類名稱與類文件(文件夾)命名,均為大駝峰,變量與類方法為小駝峰。
* 在HTTP響應中,于業務邏輯代碼中echo $var 并不會將$var內容輸出至相應內容中,請調用Response實例中的wirte()方法實現。
必須繼承Controller基類 use EasySwoole\Http\AbstractInterface\Controller;
```
namespace App\HttpController\Api;
use EasySwoole\Http\AbstractInterface\Controller;
class Index extends Controller
{
public function index()
{
echo ‘index’;
}
}
```