anniballo/zend-press

此包已被废弃且不再维护。未建议替代包。

这是一个简单的库,用于在 ZendFramework 2 项目中使用官方 WordPress API。

dev-master 2015-07-30 09:47 UTC

This package is not auto-updated.

Last update: 2018-04-29 17:43:30 UTC


README

Build Status Code Climate Test Coverage

ZendPress

这是一个简单的库,用于在 ZendFramework 2 (http://framework.zend.com/) 项目中使用官方 WordPress API (http://wp-api.org/)。

如果您需要在 Zend 框架项目中管理内容并且想使用 WordPress 后端引擎,您可以考虑使用官方的 WordPress API。

使用 API,您可以在 ZF2 的 MVC 结构中管理整个内容流程。

安装

使用当前版本,您可以检索特定实体或实体集合(RESTful GET 操作)。创建、更新和删除操作尚未实现(RESTful POST、PUT、DELETE 操作)。

该包仍在开发中,尚未准备好用于生产。如果您想测试它(并且贡献 ^^)可以在项目的 composer.json 中添加

需求部分;

"require": {
        "anniballo/zend-press": "dev-master",
    }

将 WordPress API URI 添加到 config/autoload/global.php

return array(
    'zendpress' => array(
        'api' => array(
            'uri' => 'http://example.com/wp-json'
        )
    )
);

将模块添加到 config/application.config.php

'modules' => array(
        'ZendPress',
    ),

示例

示例,如何在 Controller 中检索单个帖子(ID 100)

$sl = $this->getServiceLocator();
$entityManager = $sl->get('ZendPress\Api\EntityManager');
$entityManager->setEntity($sl->get('ZendPress\Entity\Post'));
/** @var \ZendPress\Entity\Post $post */
$post = $entityManager->get(100);
var_dump($post);

示例,如何检索帖子集合

$sl = $this->getServiceLocator();
$collectionManager = $sl->get('ZendPress\Api\CollectionManager');
$collectionManager->setEntity($sl->get('ZendPress\Entity\Post'));
/** @var \ZendPress\Entity\Post $post */
foreach($collectionManager as $post){
    var_dump($post);
}

示例,如何设置分页参数

$sl = $this->getServiceLocator();
$collectionManager = $sl->get('ZendPress\Api\CollectionManager');
$collectionManager->setEntity($sl->get('ZendPress\Entity\Post'));
$collectionManager->setItemCountPerPage(1); // Set how many items per page
$collectionManager->setCurrentPageNumber(1); // Set current page
/** @var \ZendPress\Entity\Post $post */
foreach($collectionManager as $post){
    var_dump($post);
}

示例,如何检索经过筛选的帖子集合

$sl = $this->getServiceLocator();
$collectionManager = $sl->get('ZendPress\Api\CollectionManager');
$collectionManager->setEntity($sl->get('ZendPress\Entity\Post'));
$filter = $sl->get('ZendPress\Api\Filter');
$filter->addFilter($filter::CATEGORY_NAME,'slug-of-category');
$collectionManager->setApiFilter($filter);
/** @var \ZendPress\Entity\Post $post */
foreach($collectionManager as $post){
    var_dump($post);
}