phonetworks/pho-compiler

将GraphQL模式编译成PHP类,用于Pho堆栈。

dev-master 2020-02-02 04:09 UTC

This package is auto-updated.

Last update: 2024-09-29 04:48:47 UTC


README

Pho-Compiler

将GraphQL模式编译成PHP可执行文件,用于整个Phở堆栈。

入门

请注意,此存储库使用子模块进行单元测试。推荐通过composer安装pho-compiler。

git clone https://github.com/phonetworks/pho-compiler
git submodule init
git submodule update
composer install

模式

建议

建议Pho兼容的GraphQL模式(也称为“PhoGQL”文件)应以下列文件扩展名结束:.pgql

GraphQL

  • PhởGQL建立在GraphQL之上。有关GraphQL规范的更多信息,请访问https://fbdocs.cn/graphql/
  • PhoGQL文件可能包含多个实体定义。然而,建议每个文件只包含(一个)单个定义或(b)每个文件只包含一个语义上链接的节点和边定义组。

版本

  • PhởGQL文件必须以版本声明开头。对于版本1,目前唯一支持的版本,它是# pho-graphql-schema-v1
  • 此声明必须在文件的顶部,并且不能有任何其他单词或字符。
  • 用于匹配版本的以下正则表达式模式:/^#( )*pho\-graphql\-v1(\r\n|\r|\n| )+/i
  • 所有未来版本及其模式都将放置在文件Types.php

类型

  • PhởGQL定义必须实现ActorNode、GraphNode、ObjectNode或ReadEdge、SubscribeEdge、TransmitEdge、WriteEdge实体之一。有关这些实体的更多信息,请查看pho-framework
  • 虽然GraphQL允许多重继承,但Phở编译器将只评估每个定义中声明的第一个接口。

指令

  • 指令不区分大小写。同样,参数也不区分大小写。

技巧

  1. 首先定义Actor边
  2. 出边很重要。
  3. 确保完成所有出边。