Symfony 6.4 怎么创建路由?三种方式详解

夏杰大大_5300

夏杰大大_5300

2026-08-08

546人浏览

原创

symfony 6.4 推荐用 php 属性 #[route] 定义路由,需启用 attribute 类型加载器;也支持 yaml 集中配置和 php 文件动态生成,三者均需注意缓存清理与语法规范。

symfony 6.4 怎么创建路由?三种方式详解

在 Symfony 6.4 中创建路由,就是把一个 URL 地址(比如 /admin/users)准确对应到某个控制器方法上,让访问该地址时能执行你写的逻辑并返回响应。这一步不做对,用户打开网页就会看到 404 错误。

用 PHP 属性注解定义路由(推荐)

这是 Symfony 6.4 官方主推的方式,代码即文档,改路由不用跳转配置文件,直接在控制器里写。

第一步:确认项目已启用属性路由加载。打开 config/routes.yaml,确保包含以下内容:

controllers:<br>  resource: ../../src/Controller/<br>  type: attribute

第二步:在控制器方法上方添加 [Route] 属性。例如,在 src/Controller/HomeController.php 的 index() 方法前加:

#[Route('/home', name: 'home_index')]

第三步:保存后清空缓存,否则新路由不会生效:php bin/console cache:clear

注意:Symfony 6.4 默认禁用旧式注解(@Route),必须用 PHP 8+ 的属性语法 #[Route(...)],写成 @Route 会报错且不被识别。

用 YAML 文件集中定义路由

适合需要统一管理、多环境差异化配置,或团队约定“路由不写进控制器”的场景。

在 config/routes.yaml 里直接写:

Skill Weave Chains — 技能链路由引擎
Skill Weave Chains — 技能链路由引擎

开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。

下载

blog_list:<br>  path: /blog<br>  controller: App\Controller\BlogController::list<br>  methods: [GET]

其中 blog_list 是路由名称,path 是访问路径,controller 必须写成完整类名加双冒号加方法名的格式,不能省略 App\Controller\ 前缀。

如果要传参数,比如 /blog/{id},就写成:

blog_show:<br>  path: /blog/{id}<br>  controller: App\Controller\BlogController::show<br>  requirements:<br>    id: '\d+'

【id 必须用单引号包裹正则表达式,否则 YAML 解析会失败】

用 PHP 文件动态生成路由

适用于路由数量极大、需根据数据库或外部配置实时生成的情况,比如多租户后台或 CMS 页面路由。

新建 config/routes.php 文件,内容如下:

<?php <br>use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;<br><br>return function (RoutingConfigurator $routes) {<br>  $routes->add('api_health', '/api/health')<br>    ->controller([App\Controller\ApiController::class, 'health'])<br>    ->methods(['GET']);<br>};

这个文件会被自动加载,无需额外注册——前提是 config/routes.yaml 中没有覆盖掉 PHP 加载器。

方法一和方法二都支持路由组前缀,但 PHP 方式更灵活:你可以用 foreach 循环批量注册,也能调用服务获取动态路径,而 YAML 和属性方式做不到这点。

相关文章

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

2025.09.11

4977

17

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

80

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

80

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

60

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

160

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

120

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Symfony 官方文档
Symfony 官方文档

共0课时 | 0人学习

Composer手册
Composer手册

共0课时 | 0人学习

Symfony5【从0开始开发博客系统】
Symfony5【从0开始开发博客系统】

共120课时 | 15.4万人学习