Symfony关键术语汇总
1. Doctrine、Doctrine ORM
a、Entity: 这个也可以
b、Repository:既是数据访问对象(DAO),也是服务(Service)
c、Entity Attribute
d、Entity中的驼峰式(camelCase)属性名,自动转换成SnakeCase的数据库字段名,是 Doctrine 的默认命名策略(Naming Strategy)实现的。
2. MapEntity
处理路由参数实体对象的转换。
Symfony 的 SensioFrameworkExtraBundle 提供的一个功能,通常用于在控制器中自动注入 Doctrine 实体。
Symfony 6.2+ 推荐使用 MapEntity替代 ParamConverter,功能类似但更灵活
**3. EntityValueResolver **
EntityValueResolver 是底层机制,MapEntity 是其上层封装。可以认为 MapEntity是对 EntityValueResolver的 友好封装,避免直接操作底层解析逻辑。默认情况下,通过Doctrine获取数据库的实体对象,但是脱离Doctrine,自定义实现。
4. Symfony Form
服务端渲染,与twig结合,生成HTML表单,依赖于Validator进行数据验证。如果前后端完全分离,前端采用vue,可以考虑弃用Form。
3. Validator
验证数据的合法性(如字段非空、格式正确、符合业务规则)。完全独立,可直接用于任何数据(如 API、命令行输入)。
4. HttpFundation
是一组 工具函数,用于简化 HTTP 相关操作(如生成响应对象、处理头信息)
5. HttpKernel
Symfony 的核心组件,负责 HTTP 请求-响应生命周期的全流程管理,是框架处理 HTTP 请求的中央调度器。他协调处理了Request、Controller、Reponse,完成了HTTP请求的全流程管理。
6. Controller
Symfony 的 Controller 是应用程序的核心协调者,负责处理 HTTP 请求并返回响应,充当 业务逻辑与用户交互的桥梁。Symfony 的 Controller 是 HTTP 请求的入口点,核心作用包括:
a、路由分发:连接 URL 与业务代码。
b、协调服务:调用 Doctrine、Logger 等完成操作。
c、响应生成:输出 HTML/JSON/文件等。
d、安全控制:管理访问权限和数据验证。
它既适合传统 MVC 应用(渲染 HTML),也完美支持 API 开发(返回 JSON),是 Symfony 灵活性的关键设计之一。
7. Dependency Injection
依赖注入 是一种设计模式,通过 外部传递依赖(而非在类内部创建),实现解耦和可测试性。
Symfony 的 DI 系统通过 服务容器(Service Container) 实现:
a、服务(Service):任何可复用的 PHP 对象(如 Doctrine 的 EntityManager、Twig 环境、自定义工具类)。
b、容器:集中管理所有服务的创建和依赖关系,按需实例化并注入。
8. Type Hinting
方法参数中指明类型,让php/Symfony知道该注入什么对象。
9. Service注册
在src或者在composer.json中定义的服务,可以通过autowiring的原理,自动完成注册。
src外或者在composer.json中未定义的服务,或者有些服务需要自定义参数的,可以在config/services.yaml中,手工完成注册。
10. Container
服务容器 是 Symfony 的核心组件,负责 存储、创建和管理所有服务对象(如 EntityManager、Logger、自定义服务等)。它是一个 全局注册表,所有服务都通过容器获取,避免手动实例化。
11. Autowiring
Autowiring 是 Symfony 提供的一种 自动化依赖注入机制,通过 类型提示(Type Hinting) 自动匹配容器中的服务。它简化了 DI 的配置,无需显式定义每个服务的依赖关系。

浙公网安备 33010602011771号