与 GraphQL API 交互将您的应用从 WordPress 迁移到其他 PHP 框架或 CMS
将您的应用从 WordPress 迁移到其他 PHP 框架或 CMS
Gato GraphQL 提供的 GraphQL 模式包含用于获取 WordPress 数据的字段:文章、用户、评论、标签、分类等。
PHP 解析器中获取 WordPress 数据的代码依赖于 WordPress,该代码无法在非 WordPress 应用中运行。
然而,Gato GraphQL 将这些解析器分别通过 2 个软件包来实现:
- 一个「原生」PHP 包,包含所有通用代码
- 一个 WordPress 专用包,包含满足该解析器所需的实际 WordPress 方法调用
例如,对于以下 GraphQL query:
{
posts {
id
title
}
}...获取文章的逻辑由以下部分组成:
Root.posts字段:位于通用的posts软件包中- 通过
get_posts方法实现的 WordPress 解析:位于 WordPress 专用的posts-wp软件包中。
非 WordPress/WordPress 软件包之间的代码分割约为 80/20%,这意味着 80% 的代码可在其他框架/CMS 中复用,只有 20% 的代码需要重新实现。
此外,Gato GraphQL 的所有功能都通过模块提供,模块可以随意启用或禁用。

模块是出于安全目的而实现的功能:如果您不需要在公共 API 中暴露用户数据,则可以禁用 Users 模块,相应的字段(如 Root.users)将不会被添加到模式中。
模块直接映射到底层 PHP 软件包。 因此,当以独立应用方式运行 Gato GraphQL 时,我们可以选择性地加载所需的模块/软件包,而不加载其他任何内容。
例如,如果您的应用只输出文章、分类和标签的数据,则只需加载 posts-wp、categories-wp 和 tags-wp 软件包(及其依赖项)。
之后,当从 WordPress 迁移(例如迁移到 Laravel 或 Symfony)时,只需为新框架/CMS 重新实现这 3 个 WordPress 专用软件包,其他任何内容都无需更改。