monkdev / monkcms
一个PHP客户端,用于在非网站环境中访问MonkCMS API。
Requires
- php: >=5.3.0
- rmccue/requests: >=1.0
Requires (Dev)
- phpdocumentor/phpdocumentor: ~2.9.0
- phploc/phploc: ~3.0.1
- phpmd/phpmd: ~2.6.0
- phpunit/phpunit: ~5.7.15
- sebastian/phpcpd: ~2.0.4
- sensiolabs/security-checker: ~4.0.1
- squizlabs/php_codesniffer: ~2.8.1
README
一个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' ));
虽然只需要siteId和siteSecret,但以下配置值可用于使用
$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.php的getContent,
sermon是模块,detail是display值,sermon-slug是find值(可选)。
可以通过数组作为第二个参数传递额外的参数
$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
每个工具也可以单独运行
- php -l:
$ composer phplint - PHP_CodeSniffer:
$ composer phpcs - PHP 复制粘贴检测器:
$ composer phpcpd - PHPLOC:
$ composer phploc - PHP 代码质量检测器:
$ composer phpmd - SensioLabs 安全检测器:
$ composer security-checker
部署
将版本发布到 Packagist 只需创建一个 git 标签。
$ git tag -a vMAJOR.MINOR.PATCH -m "Version MAJOR.MINOR.PATCH"
$ git push origin vMAJOR.MINOR.PATCH
请务必遵循 语义化版本控制 选择正确的版本。
发布文档
发布新版本后,必须手动构建文档并将其发布到 gh-pages 分支。