container-interop/definition-interop

通过标准定义促进容器互操作性

v0.2.0 2015-11-30 17:49 UTC

This package is auto-updated.

Last update: 2024-09-19 21:03:56 UTC


README

definition-interop 尝试提供一个解决方案,用于编写 跨框架模块

简介

模块(也称为包或捆绑包)在现代框架中很常见。不幸的是,每个框架都有自己的约定和工具来编写它们。 container-interop 和更具体的 definition-interop 的目标是帮助开发者编写可以在任何框架中运行的模块。

跨框架模块可以利用 PSR-7(HTTP 请求和响应抽象)以及 Puli(包中的资源定位),但最后缺少的部分是让模块注册容器条目。这是必要的,以便模块可以向用户公开服务。

范围

虽然 container-interop/container-interop 尝试标准化从容器中检索条目的方法,但 container-interop/definition-interop 尝试标准化定义容器条目的方法。

本包中标准化的定义 仅适用于模块;它们不是旨在涵盖每个容器的每个用例。鉴于这种有限的范围,定义故意简单,以便每个容器都容易支持。

考虑到这一点,用户可以放心,他们可以使用他们选择的容器提供的所有功能,而只有模块开发者需要使用标准定义。

安装

composer require container-interop/definition-interop@dev

此包遵循 SemVer 规范,并且将在次要版本之间实现完全向后兼容。

兼容项目

实现 definition-interop 的项目

提供实现 definition-interop 接口的定义类的项目。

加载器

以任何格式读取配置文件并在 definition-interop 兼容的定义中生成项目的项目。

  • YamlDefinitionLoader:从 YAML 文件加载定义。接受 Symfony YAML 文件格式的一个子集。

消费 definition-interop 的项目

读取 definition-interop 兼容的定义并将它们转换为实际容器条目的项目。

  • Assembly:提供简单的 container-interop 兼容容器
  • Yaco:提供生成 container-interop 兼容容器的编译器

注意: 可用 专用测试套件 以供消费 definition-interop 兼容定义的项目使用。这些项目可以使用此测试套件来检查是否符合 definition-interop

使用 definition-interop 构建的模块