phonetworks / pho-compiler
将GraphQL模式编译成PHP类,用于Pho堆栈。
dev-master
2020-02-02 04:09 UTC
Requires
- php: >=5.3.0
- ext-curl: *
- ext-dom: *
- danielstjules/stringy: ^3.0
- kyeates/psr-loggers: ^1.0
- mustache/mustache: ^2.11
- phonetworks/pho-lib-graphql-parser: ^3.0
- psr/log: ^1.0
Requires (Dev)
- fzaninotto/faker: ^1.6
- phpdocumentor/phpdocumentor: *
- phpunit/phpunit: ^5.7
- psy/psysh: *
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: 3.*
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ở编译器将只评估每个定义中声明的第一个接口。
指令
- 指令不区分大小写。同样,参数也不区分大小写。
技巧
- 首先定义Actor边
- 出边很重要。
- 确保完成所有出边。