## 開發指南
本篇來介紹一組控制器到邏輯模型到視圖的基操。讓你了解基本開發流程
從控制器 > 邏輯 > 模型 > 視圖
## 開發注意
>[warning]所有操作代碼中,有一組 `$this->logicOrders->getOrdersXXXX`
這里要說明一下 ,在父類控制器下采用了魔術方法 `__get()` ,依賴注入。
依賴注入其實本質上是指對類的依賴通過構造器完成自動注入。
說到依賴注入就不得不提到容器,現在主流開發框架都有容器的概念,一個杯子可以理解為一個容器,一個水桶也可以理解為容器,咱們不管容器的載體是誰,只需要知道在咱們代碼中容器就是裝數據滴。
依賴注入一般是提前通過文件定義,然后解析文件找到對應的類實例化對象給予到容器中。
還可以在生命周期過程中將對象或其他數據先放入容器中,在后續環節進行使用。
總之玩法五花八門,為了解決的問題就是咱們用對象不用new了,咱們用數據不用重新寫邏輯了 等。
對應層級關系如下
<table>
<thead>
<tr>
<th width="22%">名稱</th>
<th width="16%">變量</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>邏輯層</td>
<td>logic</td>
<td>每次鏈入$this->logicXXX,都會在logic文件夾中尋找相對XXX邏輯</td>
</tr>
<tr>
<td>模型層</td>
<td>model</td>
<td>每次鏈入$this->modelXXX,都會在model文件夾中尋找相對XXX模型</td>
</tr>
<tr>
<td>驗證層</td>
<td>validate </td>
<td>每次鏈入$this->validateXXX,都會在lvalidate文件夾中尋找相對XXX驗證</td>
</tr>
</tbody>
</table>
```
/**
* 獲取邏輯層實例 --魔術方法
*
* @author 勇敢的小笨羊 <brianwaring98@gmail.com>
*
* @param $logicName
* @return \think\Model|\think\Validate
*/
public function __get($logicName)
{
$layer = $this->getLayerPre($logicName);
$model = sr($logicName, $layer);
return VALIDATE_LAYER_NAME == $layer ? validate($model) : model($model, $layer);
}
```