Skip to main content

控制器

控制器是您创建的 PHP 函数,它从 Request 对象中读取信息并创建并返回 Response 对象。响应可以是 HTML 页面、JSON、XML、文件下载、重定向、404 错误或其他任何内容。控制器运行应用程序呈现页面内容所需的任意逻辑。

基础控制器

虽然控制器可以是任何 PHP 可调用的(函数、对象上的方法或 Closure),但控制器通常是控制器类中的一个方法:

// src/Controller/LuckyController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;

class LuckyController
{
    #[Route('/lucky/number/{max}', name: 'app_lucky_number')]
    public function number(int $max): Response
    {
        $number = random_int(0, $max);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

控制器是 number() 方法,它位于控制器类 LuckyController 中。

这个控制器非常简单:

  • 第 2 行:Symfony 利用 PHP 的命名空间功能来命名空间整个控制器类。
  • 第 4 行:Symfony 再次利用了 PHP 的命名空间功能:use 关键字导入了控制器必须返回的 Response 类。