wedrix / watchtower-bundle
watchtower 的 Symfony 扩展包
v2.0.3
2024-03-12 04:34 UTC
Requires
- doctrine/doctrine-bundle: ^2.8
- symfony/framework-bundle: ^6.1
- wedrix/watchtower: ^5.0
Requires (Dev)
- phpstan/phpstan: ^1.10
README
WedrixWatchtowerBundle 允许您通过最少的三个简单步骤,为 Symfony 应用程序轻松提供 GraphQL API。它基于 Watchtower,这是围绕 graphql-php 的包装器,提供了一种增强的回退解析器,能够使用 Doctrine 模式自动解析 GraphQL 查询。
需求
此扩展包仅与 Symfony 版本 >= 6.1 兼容。
安装
通过三个简单步骤安装扩展包
-
启用 contrib 存储库中定义的食谱
composer config extra.symfony.allow-contrib true
-
安装扩展包
composer require wedrix/watchtower-bundle
-
生成 GraphQL 模式
php bin/console watchtower:schema:generate
完成了! 默认情况下,您的 GraphQL API 现在可通过 whatever-your-domain-is/graphql.json
提供。
注意:当通过网页浏览器访问 API 时,如果您的应用程序尚未启用 CORS,您可能需要启用 CORS。为此,请查阅 NelmioCorsBundle 文档 以获取安装和设置指南。您还可以查看安装扩展包后的快速配置示例 演示应用程序的源代码。
功能
有关功能列表的完整信息,请参阅 Watchtower 文档。
配置选项
各种配置选项可在 config/packages/wedrix_watchtower_bundle.yaml
文件中找到
endpoint
- 配置访问 GraphQL API 的端点(默认为 /graphql.json)。schema_file
- 配置用作 GraphQL 模式源文件的文件(使用php bin/console watchtower:schema:generate
命令自动生成)。如果您的项目已经有一个现有的模式文件,您可以将其指向该文件。plugins_directory
- 配置包含您的各种插件的目录:过滤器、选择器、解析器等。请参阅 Watchtower 文档 了解有关插件的更多信息。scalar_type_definitions_directory
- 配置包含您的各种标量类型定义文件的目录。请参阅 Watchtower 文档 了解有关标量类型定义的更多信息。cache_directory
- 存储缓存的目录。optimize
- 是否以优化模式运行。这可以提高性能,但在开发过程中可能会很烦人,因为每次您更改模式或添加新的插件或标量类型定义时,都需要重新生成缓存。debug
- 是否向客户端发送调试信息。大多数情况下,此选项仅应在开发环境中启用,但配置已公开,以便那些想冒险在生产环境中调试的人。context
- 这允许您在插件中使用 Node::context() 方法访问容器中的任何服务。服务键可以是您选择的任何名称,但值应该是服务 ID。例如:entity_manager: 'doctrine.orm.entity_manager'
。
可用的命令
watchtower:plugins:add
- 用于生成插件的模板。请查阅Watchtower 文档以获取关于插件更多信息。watchtower:scalar-type-definitions:add
- 用于生成标量类型定义的模板。请查阅Watchtower 文档以获取关于标量类型定义更多信息。watchtower:schema:generate
- 用于根据 Doctrine 模式生成 GraphQL 模式文件。watchtower:plugins:list
- 列出所有配置的插件。请查阅Watchtower 文档以获取关于插件更多信息。watchtower:scalar-type-definitions:list
- 列出所有配置的标量类型定义。请查阅Watchtower 文档以获取关于标量类型定义更多信息。watchtower:schema:update
- 用于根据当前 Doctrine 模式更新 GraphQL 模式文件。watchtower:cache:generate
- 用于生成更新后的缓存。