monkdev/monkcms

一个PHP客户端,用于在非网站环境中访问MonkCMS API。

v0.6.0 2022-11-10 21:06 UTC

This package is auto-updated.

Last update: 2024-09-15 22:19:12 UTC


README

Latest Stable Version Build Status codecov Dependency Status

一个PHP客户端,用于在非网站环境中访问MonkCMS API。

虽然 monkcms.php 对于构建网站非常出色,但它包含了许多在其他环境中并不必要——甚至使使用变得困难的功能——例如会话、缓存、Easy Edit等。这个库移除了所有这些功能,只提供通过MonkCMS API访问内容所需的绝对必要功能。它非常适合用于Web应用程序、命令行脚本、API等。

概述

安装

使用Composer,将monkdev/monkcms添加到您的composer.json

{
  "require": {
    "monkdev/monkcms": "~0.6"
  }
}
$ composer update

$ composer require monkdev/monkcms:~0.6

配置

可以通过将数组传递给构造函数来完成配置

$cms = new Monk\Cms(array(
    'siteId'     => 12345,
    'siteSecret' => 'secret'
));

或在实例化后通过调用setConfig来完成

$cms->setConfig(array(
    'siteId'     => 12345,
    'siteSecret' => 'secret'
));

当配置值未设置时,在许多情况下会回退到合理的默认值。这些默认值可以更改,以帮助减少在多个地方重复相同的配置

Monk\Cms::setDefaultConfig(array(
    'siteId'     => 12345,
    'siteSecret' => 'secret'
));

虽然只需要siteIdsiteSecret,但以下配置值可用于使用

$defaultConfig = array(
    'request'    => null, // Override the default Http Request library used in the package
    'siteId'     => null, // Required
    'siteSecret' => null, // Required
    'cmsCode'    => 'EKK', // Override the default CMS Code
    'cmsType'    => 'CMS', // Override the default CMS Type (Sermon Cloud/Church Cloud vs CMS Content)
    'url'        => 'http://api.monkcms.com' // Override the default API Endpoint
);

请求

请求内容很简单

$content = $cms->get('sermon/detail/sermon-slug');

如果您熟悉来自monkcms.phpgetContent

  • sermon是模块,
  • detaildisplay值,
  • sermon-slugfind值(可选)。

可以通过数组作为第二个参数传递额外的参数

$content = $cms->get('sermon/list', array(
    'nonfeatures' => true,
    'howmany'     => 5
));

如果您更喜欢跳过斜杠分隔的字符串格式,则可以传递一个包含所有值的单个数组参数

$content = $cms->get(array(
    'module'  => 'sermon',
    'display' => 'list',
    'howmany' => 5
));

get以关联数组形式返回API文档中描述的JSON。例如,一个布道的标题可以在$content['show']['title']中访问。

如果发生失败,get会抛出Monk\Cms\Exception

多个展示

如果您想使用show键格式化API输出,有2种方法

1. 使用内联字符串

例如

$cms->get(array(
  'module'  => 'smallgroup',
  'display' => 'list',
  'order' => 'recent',
  'emailencode' => 'no',
  'howmany' => 1,
  'page' => 1,
  'show' => "___starttime format='g:ia'__ __endtime format='g:ia'__",
));

2. 使用数组

例如

$cms->get(array(
  'module'  => 'smallgroup',
  'display' => 'list',
  'order' => 'recent',
  'emailencode' => 'no',
  'howmany' => 1,
  'page' => 1,
  'show' => [
    "__starttime format='g:ia'__",
    "__endtime format='g:ia'__"
  ]
));

开发

Composer用于依赖关系管理和任务运行。首先安装依赖项

$ composer install

测试

测试使用PHPUnit进行。要运行测试

$ composer test

持续集成通过Travis CI设置,以针对PHP v5.6、v7.0和v7.1运行测试。(Circle CI也已设置以针对PHP v5.6运行测试,但现在作为备用,直到可以轻松指定多个版本。)代码覆盖率结果在CI期间发送到Codecov进行跟踪。这两个徽章都显示在本README的顶部。

文档

phpDocumentor用于代码文档。要构建

$ composer phpdoc

这会在git中忽略的doc目录中创建一个。

质量

已配置多个代码质量工具以帮助开发。要一次性运行它们

$ composer quality

每个工具也可以单独运行

部署

将版本发布到 Packagist 只需创建一个 git 标签。

$ git tag -a vMAJOR.MINOR.PATCH -m "Version MAJOR.MINOR.PATCH"
$ git push origin vMAJOR.MINOR.PATCH

请务必遵循 语义化版本控制 选择正确的版本。

发布文档

发布新版本后,必须手动构建文档并将其发布到 gh-pages 分支。