qeti / yii2-podata-adapter
用于在 Yii2 中使用 POData 的适配器
v0.9
2015-09-26 04:57 UTC
Requires
- php: >=5.4.0
- qeti/simple-podata: >=0.9.1
This package is auto-updated.
Last update: 2024-09-21 02:42:45 UTC
README
这是什么?
谁在使用它?
- 这是一个开发人员的工具,他们使用 Yii2 框架。
安装
需要 PHP 5.4 或更高版本才能使用。需要 Yii2 框架。
建议使用 composer 进行安装。将以下内容添加到 Yii2 项目的 composer.json
文件的 require
和 repositories
部分
"require": { "qeti/simple-podata": ">=0.9.1" }
然后运行 composer update
。
使用方法
在你的基本 Yii2 项目中
将以下内容添加到配置文件 web.php
'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'qeti\Yii2PODataAdapter\ODataUrlRule'], ], ], ], 'controllerMap' => [ 'o-data' => 'qeti\Yii2PODataAdapter\implementation\ODataController', ],
设置 MetaProvider 的类映射
yii::$classMap['qeti\Yii2PODataAdapter\implementation\MetadataProvider'] = '@app/models/OData/MetadataProvider.php';
创建描述实体的类,例如
namespace app\models\OData\Entities; use yii\db\ActiveRecord; use qeti\SimplePOData\EntityTrait; class Request extends ActiveRecord { use EntityTrait; public $id; public $type_code; public $status_code; }
创建描述所有实体用于 POData 的 MetaProvider 类,例如
namespace qeti\Yii2PODataAdapter\implementation; use POData\Providers\Metadata\Type\EdmPrimitiveType; use POData\Providers\Metadata\SimpleMetadataProvider; class MetadataProvider { const MetaNamespace = "Data"; /** * @return IMetadataProvider */ public static function create() { $metadata = new SimpleMetadataProvider('Data', self::MetaNamespace); $requestEntityType = self::createRequestEntityType($metadata); $requestResourceSet = $metadata->addResourceSet('Requests', $requestEntityType); return $metadata; } private static function createRequestEntityType(SimpleMetadataProvider $metadata) { $et = $metadata->addEntityType(new \ReflectionClass('app\models\OData\Entities\Request'), 'Requests', self::MetaNamespace); $metadata->addKeyProperty($et, 'id', EdmPrimitiveType::INT64); $metadata->addPrimitiveProperty($et, 'type_code', EdmPrimitiveType::STRING); $metadata->addPrimitiveProperty($et, 'status_code', EdmPrimitiveType::STRING); return $et; } }
尝试打开链接
-
http:///odata.svc/$metadata
-
http:///odata.svc/Requests?$format=json&$skip=1&$top=14&$inlinecount=allpages&$filter=status_code eq 'held'
-
http:///odata.svc/Requests/$count?&$filter=status_code eq 'held'
-
http:///odata.svc/Requests(2465)
有关 URL 格式的更多详细信息,请参阅 OData 文档。
我可以自由使用它吗?
此库是开源的,并受 MIT 许可证 的约束。这意味着只要提及我的名字并包含 许可证文件,您就可以用它做任何事情。请参阅 许可证 以获取详细信息。
联系方式
请通过 电子邮件 联系我。