# 控制器的定义
HYPHP控制器采用了OOP方式进行访问调用.
控制器就是一个类, 而操作方法则是一个类成员函数
下面是一个默认的 **/Action/Index.php** 内容
~~~
namespace Action;
use HY\Action;
class Index extends Action {
public function Index(){
echo 'HY框架';
}
}
~~~
当我们访问 (如果我们直接访问首页 不增加参数 则会自动指向 Index控制器的Index() 方法)
+++
get:/
<<<
success
HY框架
<<<
+++
访问了 /?index 既是访问了index控制器
+++
get:/?index
<<<
success
HY框架
<<<
+++
访问了 /?index/index 既是访问了index控制器里的index() 方法
+++
get:/?index/index
<<<
success
HY框架
<<<
+++
访问了 /?index/test 既是访问了index控制器里的test() 方法
+++
get:/?index/test
<<<
Error
你的\Action\IndexAction没有存在Test操作方法
+++
当访问test就出错了 是因为Test() 并没有在Index中定义
Index中仅定义了 Index()
# 定义一个新控制器
控制器的定义采用驼峰法. 首字母大写.
接下来新建一个 **User** 控制器
在**/Action**目录下新建文件 **User.php** (注意第一位大写字母)
在**User.php**文件写入内容
~~~
namespace Action;
use HY\Action;
class User extends Action {
public function Index(){
echo '这里是User模块的Index方法';
}
}
~~~
而类的名称也是一样采用首字母大写的方式
**User**
继承了 **Action**
+++
get:/?User
<<<
success
这里是User模块的Index方法
+++
+++
get:/?User/Index
<<<
success
这里是User模块的Index方法
+++
同理, 如果你仅仅访问了User控制器 却没有输入Index , 框架还是会自动指向Index()函数, 如果你的User控制器中 没有Index()函数 则会出错
* * * * *
有朋友不明白 为什么访问 /?User/Index 就能触发 Action/User.php文件中的Index函数 而根目录并没有/User目录呀