文档
Hello World:Symfony 控制器与路由
目标
创建 Symfony 最小 API 端点,展示路由注解、控制器和 JSON 响应。
完整代码
1. 创建控制器
php bin/console make:controller HelloController
2. 编辑 src/Controller/HelloController.php
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
class HelloController extends AbstractController
{
#[Route('/api/hello', name: 'hello_index', methods: ['GET'])]
public function index(): JsonResponse
{
return $this->json([
'message' => 'Hello, Vibe!',
'framework' => 'Symfony',
'php_version' => PHP_VERSION,
'timestamp' => (new \DateTimeImmutable())->format(\DateTimeInterface::ATOM),
]);
}
#[Route('/api/hello/{name}', name: 'hello_greet', methods: ['GET'])]
public function greet(string $name): JsonResponse
{
return $this->json([
'message' => "Hello, {$name}!",
'powered_by' => 'Symfony',
]);
}
}
运行步骤
symfony serve -d
# 或 php -S localhost:8000 -t public/
预期输出
curl http://localhost:8000/api/hello
# {"message":"Hello, Vibe!","framework":"Symfony","php_version":"8.3.0","timestamp":"2024-01-01T00:00:00+00:00"}
curl http://localhost:8000/api/hello/World
# {"message":"Hello, World!","powered_by":"Symfony"}