# 控制器定義
為了實現我們的業務邏輯,我們需要根據業務來劃分模塊,通常我們會將一個模塊視作一個Controller控制器,將這個模塊需要的所有功能方法都放在這個Controller文件中。
* * * * *
以下是默認的/app/Controller/IndexController.php控制器文件中的代碼。
~~~
class IndexController extends Controller{
public function __construct(){ }
public function index(){
$data["hello"] = "<h1 style=\"text-align:center;\">歡迎使用MAGPHP微框架!</h1><br/>";
$this->display($data);
}
}
~~~
<br/><br/>
## 控制器文件命名
文件通常放在 **應用目錄** 下 > **Controller目錄** 下。
~~~
例1:app應用下Index控制器 = /app/Controller/IndexController.php
例2:app應用下News控制器 = /app/Controller/NewsController.php
例3:admin應用下User控制器 = /admin/Controller/UserController.php
~~~
<br/><br/>
## 控制器基本代碼
~~~
//自定義控制器類需要繼承與Controller類
class IndexController extends Controller{
//這是控制器的默認方法
public function index(){
echo '這是Index控制器的index方法。在inex()方法里寫你的業務邏輯代碼。';
}
}
~~~
<br/>
例:自定義News控制器
~~~
class NewsController extends Controller{
//這是控制器的默認方法
public function index(){
echo '這是News控制器的index方法。';
}
}
~~~
<br/><br/>
## 定義類方法
方法的命名需要與URL中方法參數值的名稱完全一致,包括大小寫與符號,否則將找不到方法運行。
例1:實現Index控制的getuser()方法,訪問URL為http://localhost/index.php/Index/getuser
~~~
class IndexController extends Controller{
public function getuser(){
echo '這是Index控制的getuser方法';
}
}
~~~
例2:實現News控制的body()方法,訪問URL為http://localhost/index.php/News/body
~~~
class NewsController extends Controller{
public function body(){
echo '這是News控制的body方法';
}
}
~~~
<br/><br/>