cekurte / resource-manager
资源管理库
v0.0.5
2016-04-29 16:25 UTC
Requires
- php: >=5.5
- cekurte/rql: ^0.0
- doctrine/orm: ^2.5
Requires (Dev)
- cekurte/tdd: ^1.0
- phpunit/phpunit: ^4.8
- sensiolabs/security-checker: ^3.0
- sjparkinson/static-review: ^5.1
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-16 02:55:55 UTC
README
- 这是一个PHP资源管理器(所有方法均由php单元测试覆盖),使用此库,您可以使用一个独特的接口执行查询和管理资源。现在,您可以增强您资源的实力,为这个项目做出贡献!。
如果您喜欢这个库,请给我一个 star =)。
安装
- 该软件包可在 Packagist 上找到。
- 源代码文件与 PSR-2 兼容。
- 自动加载与 PSR-4 兼容。
- RequestParser 与 PSR-7 兼容。
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 =)。
贡献
- 给我一个 star =)
- 分支它
- 创建您的功能分支(
git checkout -b my-new-feature
) - 进行更改
- 运行测试,如果需要,为您的代码添加新测试(
vendor/bin/phpunit
) - 提交您的更改(
git commit -am 'Added some feature'
) - 将更改推送到分支(
git push origin my-new-feature
) - 创建新的拉取请求