5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界

挪侵肖煤限粱匈触脚茬记哆露

将tp5项目恢复初始状态

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
        return '萌面人资料铺';
    }
}

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第1张


5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第2张

修改默认的访问控制器层

打开惯例配置文件:D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\convention.php

修改访问控制器层为api

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第3张

将控制器层controller改为api

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第4张

将Index控制器下的命名空间改为:api

<?php
namespace app\index\api;

class Index
{
    public function index()
    {
        return '萌面人资料铺';
    }
}

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第1张


将控制器层恢复controller

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第6张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
        return '萌面人资料铺';
    }
    public function demo()
    {
        return "我是index模块中的index控制器下的demo方法";
    }
}

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第7张

其中index(),demo()叫做可访问的方法

如果将其属性改为private或者protected则无法访问:

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;

class Index
{
    public function index()
    {
        return '萌面人资料铺';
    }
    private function demo()
    {
        return "我是index模块中的index控制器下的demo方法";
    }
}

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第8张

只要方法属性限定为public 即为可访问的操作


5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第9张

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
//类名=根空间+子空间(可选)+类名
class Index
{
    public function index()
    {
        return '萌面人资料铺';
    }
    public function demo()
    {
        return "我是index模块中的index控制器下的demo方法";
    }
}

app即根空间,指代application目录

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第10张

tp5中还有2个根空间think和traits

D:\phpStudy\PHPTutorial\WWW\tp5\thinkphp\library\think:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第11张

think目录下的所有文件的命名空间均包含think

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第12张

traits目录下的所有文件的命名空间均包含traits

控制器类添加后缀

创建:PublicController控制器类

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第13张

复制惯例配置文件中的

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第14张

config.php

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第15张

<?php
return [
    // 控制器类后缀
    'controller_suffix'      => true,
];

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第16张

该操作添加后缀

如果方法名与系统自定义的方法重名时,如定义方法名:list会提示错误

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第17张

复制惯例配置文件中的代码

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第18张

D:\phpStudy\PHPTutorial\WWW\tp5\config\config.php:

<?php
return [
    // 控制器类后缀
    'controller_suffix'=> true,
    // 操作方法后缀
    'action_suffix'=> 'Action',
];

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\PublicController.php:

<?php
namespace app\index\controller;
class PublicController
{
    public function listAction()
    {
        return "PublicController::list";
    }
}

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第19张


5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第20张

删除控制器类后缀,操作方法后缀删除

控制器命名首字母大写,采用驼峰命名法,在tp5的url访问中会将所有的大写字母转换为小写字母

如果控制器名包含两个大写字母;

创建UserLogin控制器

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第21张

<?php
namespace app\index\controller;
class UserLogin
{
    public function index()
    {
        return "user_login";
    }
}

复制惯例配置文件

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第22张

D:\phpStudy\PHPTutorial\WWW\tp5\config\config.php:

<?php
return [
    // 是否自动转换URL中的控制器和操作名
    'url_convert'            => true,
];

执行:

5-2ThinkPHP5控制器初体验:快速走进控制器Controller的世界第23张


搁低师涪酿茶蹄回负蓝迹倒爬