## 視圖組件說明
視圖組件用于生成頁面中的部分視圖, 有點類似 `think\View` 類, 但是功能更加具體, 比如說專門負責生成表格中的單元格 或者 負責生成表單中的表單項等等.
視圖組件位于 `application\common\component\` 目錄, 除基礎組件外, 目前有另外 3 種組件類型:
1. Table 組件, 用于生成 Index 表格中的單元格
2. Form 組件, 用于生成 update 或 add 頁面中的表單項
3. search 組件, 用于生成 index 頁面中的搜索項
### 組件的目錄結構
組件的目錄以組件名稱命名, 使用駝峰寫法, 所有類型的組件需要加上對應類型的前綴如: 表單組件中的 Input 組件, 他的目錄名稱 為 `FormInput`, 搜索組件中的 Input 組件目錄名稱為 `SearchInput`
組件目錄下 一般有兩個文件: 模板文件, 類文件, 命名方式與目錄的名稱享用
### 組件類
所有的組件類必須實現 `app\common\component\Component` 類 或其子類
`app\common\component\Component` 類中有兩個靜態方法: `getTemplate`, `getContent`
定義如下:
```php
abstract class Component
{
/**
* 獲取當前模板的路徑
* @return mixed
*/
protected static function getTemplate ()
{
$config = Config::get('component');
$classArray = explode('\\', get_called_class());
$class = end($classArray);
$template = $config['path'] . $class . '/' . $class . $config['suffix'];
return $template;
}
/**
* 獲取當前組件渲染后的內容
* @param $data mixed 原始數據
* @return mixed
*/
public static function getContent($data = null)
{
return View::instance()->assign($data)->fetch(self::getTemplate());
}
}
```
*更多信息請參考另外 3 中組件類型說明*