## 多应用模式
kplphp使用的是多应用模式,那么控制器的类的定义如下:
多应用模式下,控制器类定义仅仅是命名空间有所区别,例如:
~~~
<?php
namespace addons\user\controller;
class User
{
public function login()
{
return 'login';
}
}
~~~
控制器类文件的实际位置是
~~~
addons\user\controller\User.php
~~~
## 渲染输出
默认情况下,控制器的输出全部采用`return`的方式,无需进行任何的手动输出,系统会自动完成渲染内容的输出。
下面都是有效的输出方式:
~~~
<?php
namespace app\index\controller;
class Index
{
public function hello()
{
// 输出hello,world!
return 'hello,world!';
}
public function json()
{
// 输出JSON
$data['code'=>1,'data'=>['id'=>1]];
return json($data);
}
public function read()
{
// 渲染默认模板输出
return view('../addons/user/view/user/read.html', []);
}
}
~~~
> 控制器一般不需要任何输出,直接`return`即可。并且控制器在`json`请求会自动转换为`json`格式输出。
> 不要在控制器中使用包括`die`、`exit`在内的中断代码。如果你需要调试并中止执行,可以使用系统提供的`halt`助手函数。
~~~
halt('输出测试');
~~~