php 怎么得到控制器名

fiy 其他 125

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要得到当前控制器的名称,可以使用以下方法:

    1. 使用 `get_class()` 函数获取控制器的完整类名,然后用 `explode()` 函数以反斜杠 `\` 分隔,取得最后一个元素即为控制器名。

    “`php
    $controllerName = explode(‘\\’, get_class($this));
    $controllerName = $controllerName[count($controllerName) – 1];
    “`

    2. 使用 `get_called_class()` 函数获取调用者的类名,同样用 `explode()` 函数以反斜杠 `\` 分隔,取得最后一个元素即为控制器名。

    “`php
    $controllerName = explode(‘\\’, get_called_class());
    $controllerName = $controllerName[count($controllerName) – 1];
    “`

    3. 使用 `$_SERVER[‘REQUEST_URI’]` 获取当前请求的 URL,然后使用 `explode()` 函数以斜杠 `/` 分隔,取得倒数第二个元素即为控制器名。

    “`php
    $uri = explode(‘/’, $_SERVER[‘REQUEST_URI’]);
    $controllerName = $uri[count($uri) – 2];
    “`

    以上是几种常用的方法,你可以根据自己的需求选择适合的方法来获取控制器名。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在使用PHP框架开发Web应用时,我们通常会定义控制器来处理用户请求。控制器负责接收请求,并根据请求的内容调用相应的方法来处理。

    要得到控制器名,可以通过分析请求的URL路径或者请求参数来获取。下面是几种常见的方法:

    1. URL路径
    在使用RESTful风格的URL设计时,可以通过解析URL路径来获取控制器名。例如,对于URL路径 “/controller/action”,控制器名就是 “controller”。

    2. 请求参数
    有时,控制器名可能会作为请求的参数传递。通过解析请求参数,可以获取到控制器名。例如,对于URL路径 “/index.php?controller=controllerName”,可以通过 $_GET[‘controller’] 来获取控制器名。

    3. 路由配置
    在使用一些PHP框架时,可以通过定义路由来将URL与控制器关联起来。通过路由配置,可以指定特定的URL路径对应的控制器和方法。在路由配置中,可以直接指定控制器名,或者使用占位符来动态匹配控制器名。

    4. 命名规范
    在一些约定俗成的PHP框架中,控制器名一般是根据某种命名规范自动生成的。例如,Laravel框架根据请求的HTTP动词和URL路径来自动生成控制器名。根据这种命名规范,可以通过解析URL路径和请求的HTTP动词来获取控制器名。

    5. 注解解析
    有一些PHP框架提供了注解功能,可以通过在控制器类上添加注解的方式来指定控制器名。通过解析注解,可以获取到控制器名。例如,Symfony框架就提供了注解功能,可以通过解析控制器类上的注解来获取控制器名。

    总的来说,要得到控制器名,可以通过解析URL路径、请求参数、路由配置、命名规范或者注解解析等方式来获取。具体方法与使用的PHP框架及框架配置有关。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中,可以通过以下几种方法来获取控制器名:

    1. 使用$_SERVER[‘REQUEST_URI’]全局变量获取当前请求的URI,然后使用正则表达式或字符串操作函数提取控制器名称。一般来说,URI的格式是”/控制器名/方法名”,如果采用这种格式,可以通过以下方式获取控制器名:

    “`php
    $uri = $_SERVER[‘REQUEST_URI’];
    $segments = explode(‘/’, $uri);
    $controllerName = $segments[1];
    “`

    这种方法适用于URL以控制器名为第一个段落的情况,如”/user/edit”,其中”user”就是控制器名。

    2. 使用$_GET全局变量获取URL参数中的控制器名。假设URL的格式为”/index.php?c=控制器名&m=方法名”,可以通过以下方式获取控制器名:

    “`php
    $controllerName = $_GET[‘c’];
    “`

    3. 使用路由功能获取控制器名。一些PHP框架(如Laravel、Symfony等)提供了路由功能,可以将URL与具体的控制器方法进行映射。在这种情况下,可以通过框架提供的API来获取当前正在执行的控制器名。

    例如,在Laravel框架中,可以通过以下方式获取控制器名:

    “`php
    $route = Route::current();
    $controllerAction = $route->getActionName();
    $segments = explode(‘@’, $controllerAction);
    $controllerName = $segments[0];
    “`

    4. 使用$_SERVER[‘PHP_SELF’]全局变量获取当前执行脚本的文件路径,然后使用字符串操作函数提取控制器名。假设控制器文件位于”/controllers”目录下,可以通过以下方式获取控制器名:

    “`php
    $scriptName = $_SERVER[‘PHP_SELF’];
    $segments = explode(‘/’, $scriptName);
    $controllerName = $segments[count($segments) – 2];
    “`

    以上是获取控制器名的几种常见方法,具体使用哪种方法取决于项目的架构和实际需求。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部