netglue / prismic-cli
Prismic内容模型的CLI工具
Requires
- php: ~8.1 || ~8.2 || ~8.3
- ext-json: *
- netglue/prismic-client: ^1.0.0
- netglue/prismic-doctype-client: ^1.0.0
- php-http/discovery: ^1.14.1
- psr/container: ^1.0||^2.0
- psr/http-client: ^1.0
- psr/http-client-implementation: *
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
- sebastian/diff: ^4.0 || ^5.0
- symfony/console: ^5.3.7 || ^6.0.0 || ^7.0.0
- webmozart/assert: ^1.10
Requires (Dev)
- ext-curl: *
- doctrine/coding-standard: ^12.0
- laminas/laminas-config-aggregator: ^1.14
- laminas/laminas-diactoros: ^3.3.0
- laminas/laminas-servicemanager: ^3.22.1
- lctrs/psalm-psr-container-plugin: ^1.9
- php-http/curl-client: ^2.3.1
- phpunit/phpunit: ^10.5.0
- psalm/plugin-phpunit: ^0.18.4
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.7.2
- vimeo/psalm: ^5.16.0
- 1.8.x-dev
- 1.7.x-dev
- 1.7.0
- 1.6.x-dev
- 1.6.0
- 1.5.x-dev
- 1.5.0
- 1.4.x-dev
- 1.4.0
- 1.3.x-dev
- 1.3.0
- 1.2.x-dev
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-renovate/lock-file-maintenance
- dev-renovate/laminas-laminas-servicemanager-4.x
- dev-renovate/all-minor-patch
- dev-renovate/phpunit-phpunit-11.x
This package is auto-updated.
Last update: 2024-09-11 01:00:57 UTC
README
这是一个基于Symfony Console的开发工具,因此需要使用--dev
来安装 - 它旨在作为构建过程的一部分使用,例如与npm-watch
或类似工具一起使用。
$ composer require --dev netglue/prismic-cli
此库的主要安装目标是Mezzio应用程序,因为它已被构建为与Laminas CLI包集成。
在安装过程中,如果您将此库作为Mezzio应用程序的一部分安装,则应提示您注入配置提供程序。
laminas/laminas-cli
不是此库的要求,因此如果您想使用它,您也需要要求它。
您可以使用此工具“独立”使用 - ./example/example.php
应该能为您指引正确的方向。检查此示例也很重要,以便一切都能理解。
构建文档模型JSON文件
给定一些配置,命令primo:build
从PHP源生成JSON文件,您可以将这些文件复制并粘贴到Prismic.io的自定义类型编辑器中。
假设您正在使用返回应用程序级配置的DI容器,该配置使用config
作为服务ID,则可以插入类似以下内容的配置,以便在调用时构建您的类型。
<?php return [ 'primo' => [ 'cli' => [ 'builder' => [ 'source' => __DIR__ . '/../directory/where/plain-php-files-are', 'dist' => __DIR__ . '/../where-you-want-the-json-files-to-go', ], ], 'types' => [ [ 'id' => 'some-type', 'name' => 'My Document Type', 'repeatable' => true, ], ], ], ];
该库目前缺少文档和良好的测试套件,但在./example
中有注释示例。当配置为Mezzio应用程序的一部分时,请检查./src/ConfigProvider.php
以获取更多信息。
上传、下载和与远程存储库比较文档模型
如果您已设置“自定义类型API”并拥有使用它的有效访问令牌,则将以下内容添加到您的配置中,并包含CustomTypeApiConfigProvider
的内容,将配置3个额外的命令,这些命令将使您能够上传、下载并在本地和远程定义之间比较更改。
<?php // Local Configuration return [ 'primo' => [ // ... 'custom-type-api' => [ 'token' => 'an access token retrieved from repository settings', 'repository' => 'my-repo', // The repo name such as "my-repo" as opposed to the full url or "my-repo.prismic.io" ], // ... ], ];
配置完成后,您可以执行以下操作:
primo:types:download
将下载所有JSON定义到您的本地dist目录,或者添加一个type
参数以仅下载其中一个。primo:types:upload
将本地定义的定义上传到远程类型API,使其立即在您的存储库中可用。同样,一个type
参数将处理单个定义。primo:types:diff
将在控制台生成颜色化的差异,显示本地和远程之间的更改。
这些工具使用了netglue/prismic-doctype-client
,因此如果您想了解更多信息,请查看该工具,还可以链接到Prismic自定义类型API文档。
查询存储库的命令
还有一些命令用于从存储库获取信息。这些命令是可选的。在安装过程中,有一个名为ApiToolsConfigProvider
的配置提供程序,如果您不想使用这些工具,则可以跳过。
所有命令都需要配置了API客户端,使用netglue/prismic-client
。
上述配置提供程序设置了自己的API客户端工厂,跳过缓存实现,因为在您使用这些工具的情况下,您可能不想使用过时的信息。
在某个地方配置存储库,信息类似以下内容:
return [ 'prismic' => [ 'api' => 'https://your-repo.cdn.prismic.io/api/v2', 'token' => null, // Or 'string-access-token' ], ];
当前可用的命令
primo:info
- 无参数时,提供关于仓库本身的信息primo:info <文档ID>
- 显示特定文档的信息primo:list
- 列出配置仓库中可用的类型primo:list <类型>
- 列出特定类型的文档和ID
您可以在我们为Prismic/Mezzio集成库编写的测试仓库 netglue/primo
中尝试这些命令,通过运行 ./example/api-queries.php
注意:此库不能替代Prismic提供的JS命令行工具