我们可以在自动生成的Application/Home/Controller目录下面找到一个 IndexController.class.php 文件,这就是默认的Index控制器文件。
控制器类的命名方式是:控制器名(驼峰法,首字母大写)+Controller
控制器文件的命名方式是:类名+class.php(类文件后缀)
默认的欢迎页面其实就是访问的Home模块下面的Index控制器类的index操作方法 我们修改默认的index操作方法如下:
namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ echo 'hello,world!'; } }
再次运行应用入口文件,浏览器会显示:hello,world!。
我们再来看下控制器类,IndexController控制器类的开头是命名空间定义:
namespace Home\Controller;
这是系统的规范要求,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的,也就是说: Home\Controller\IndexController类 对应的控制器文件位于应用目录下面的Home/Controller/IndexController.class.php,如果你改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。
注意:命名空间定义必须写在所有的PHP代码之前声明,否则会出错
use Think\Controller;
表示引入 Think\Controller 命名空间便于直接使用。 所以,
use Think\Controller; class IndexController extends Controller
等同于使用:
class IndexController extends \Think\Controller
对于3.1的用户而言,如果你习惯了使用Action定义控制器的话,可以这样定义:
namespace Home\Action;use Think\Action;class IndexAction extends Action{}
然后,在配置文件中,设置:
'DEFAULT_C_LAYER'=>'Action'
上面的设置方式通常可以用于原有3.1项目的升级。