用途:在 Symfony 的 API Platform 中自定义数据读取与写入流程,适用于从非默认 Doctrine 数据源读取数据、包装 Doctrine 提供器对结果做后处理(返回 DTO、强制租户范围)、在持久化前后执行业务逻辑(哈希、生成 slug、派发消息),以及让 v4 的读端点通过处理器派发查询或命令。
主要能力:实现 ProviderInterface::provide(),返回 iterable、object 或 null,返回 null 即 404(v3.4 声明为 mixed);通过 #[Autowire] 注入 api_platform.doctrine.orm.state.item_provider 与 api_platform.doctrine.orm.state.collection_provider 以保留 Doctrine 抓取;实现 ProcessorInterface::process(),委托给 api_platform.doctrine.orm.state.persist_processor 或 remove_processor。
使用方式:在资源或操作上用 provider: 与 processor: 接线;自动配置会注册它们,仅在无自动配置时才需要 api_platform.state_provider 或 api_platform.state_processor 标签。在 GET 或 GetCollection 上使用处理器需加 write: true(仅 v4)。
限制与注意:持久化前逻辑应在调用内部处理器之前运行,副作用在返回之后执行;处理器返回创建或修改后的对象,DELETE 不返回内容;安全方法上的 write: true 仅 v4 支持,v3.4 处理器只在写方法上运行;DataProvider 与 DataPersister 是 v2 接口,已不存在。输出契约包括新增的提供器与处理器及其接线操作、被装饰的内置服务,以及未找到、成功和副作用路径的测试。更多实现细节见 reference.md。