cekurte/resource-manager

v0.0.5 2016-04-29 16:25 UTC

This package is auto-updated.

Last update: 2024-09-16 02:55:55 UTC


README

Build Status Code Climate Coverage Status Latest Stable Version License SensioLabsInsight

  • 这是一个PHP资源管理器(所有方法均由php单元测试覆盖),使用此库,您可以使用一个独特的接口执行查询和管理资源。现在,您可以增强您资源的实力,为这个项目做出贡献!。

如果您喜欢这个库,请给我一个 star =)

安装

composer require cekurte/resource-manager

文档

目前有一个ResourceManager实现,可以与Doctrine ORM一起使用。

因此,要使用此库,您必须创建您的实体类并实现 ResourceInterface

<?php

namespace YourNamespace;

use Cekurte\ResourceManager\Contract\ResourceInterface;

class YourEntity implements ResourceInterface
{
    // ...
}

之后,您必须获取 ResourceManagerInterface 的一个实例

<?php

use Cekurte\ResourceManager\Driver\DoctrineDriver;
use Cekurte\ResourceManager\ResourceManager;
use Cekurte\ResourceManager\Service\DoctrineResourceManager;

$resourceManager = ResourceManager::create('doctrine', [
    'em'     => $entityManager,
    'entity' => 'YourNamespace\YourEntity',
]);

// OR ...
$resourceManager = ResourceManager::create(new DoctrineDriver([
    'em'     => $entityManager,
    'entity' => 'YourNamespace\YourEntity',
]));

// OR ...
$resourceManager = new DoctrineResourceManager(new DoctrineDriver([
    'em'     => $entityManager,
    'entity' => 'YourNamespace\YourEntity',
]));

获取资源

要获取资源,您必须调用方法 findResources,并将 ExprQueue 的一个实现作为参数。此方法将返回一个资源数组。

<?php

use Cekurte\Resource\Query\Language\ExprQueue;
use Cekurte\Resource\Query\Language\Expr\EqExpr;

// ...

$queue = new ExprQueue();
$queue->enqueue(new EqExpr('alias.field', 'value'));

$resources = $resourceManager->findResources($queue);

// You can call this method without any expression
// to retrive all resources...
// $resources = $resourceManager->findResources();

获取单个资源

要获取单个资源,您必须调用方法 findResource,并将 ExprQueue 的一个实现作为参数。如果找不到资源,此方法将抛出异常。

<?php

use Cekurte\Resource\Query\Language\ExprQueue;
use Cekurte\Resource\Query\Language\Expr\EqExpr;
use Cekurte\ResourceManager\Exception\ResourceDataNotFoundException;

// ...

$queue = new ExprQueue();
$queue->enqueue(new EqExpr('alias.field', 'value'));

try {
    $resource = $resourceManager->findResource($queue);
} catch (ResourceDataNotFoundException $e) {
    // ...
}

创建资源

要创建单个资源,您必须调用方法 writeResource,并将 ResourceInterface 的一个实现作为参数。

<?php

use Cekurte\ResourceManager\Exception\ResourceManagerRefusedWriteException;

// ...

try {
    $resourceManager->writeResource($resource);
} catch (ResourceManagerRefusedWriteException $e) {
    // ...
}

更新资源

要更新单个资源,您必须调用方法 updateResource,并将 ResourceInterface 的一个实现作为参数。

<?php

use Cekurte\ResourceManager\Exception\ResourceManagerRefusedUpdateException;

// ...

try {
    $resourceManager->updateResource($resource);
} catch (ResourceManagerRefusedUpdateException $e) {
    // ...
}

删除资源

要删除单个资源,您必须调用方法 deleteResource,并将 ResourceInterface 的一个实现作为参数。

<?php

use Cekurte\ResourceManager\Exception\ResourceManagerRefusedDeleteException;

// ...

try {
    $resourceManager->deleteResource($resource);
} catch (ResourceManagerRefusedDeleteException $e) {
    // ...
}

如果您喜欢这个库,请给我一个 star =)

贡献

  1. 给我一个 star =)
  2. 分支它
  3. 创建您的功能分支(git checkout -b my-new-feature
  4. 进行更改
  5. 运行测试,如果需要,为您的代码添加新测试(vendor/bin/phpunit
  6. 提交您的更改(git commit -am 'Added some feature'
  7. 将更改推送到分支(git push origin my-new-feature
  8. 创建新的拉取请求