From 6e6ace8d47070b5c63580af2ed7a95decca6909d Mon Sep 17 00:00:00 2001 From: romeOz Date: Sat, 1 Aug 2015 22:13:02 +0300 Subject: [PATCH] Required Rock Data provider (romeoz/rock-dataprovider) --- composer.json | 128 ++++++++++++++++++---------------- src/rest/Serializer.php | 10 +-- tests/rest/SerializerTest.php | 30 ++++---- 3 files changed, 86 insertions(+), 82 deletions(-) diff --git a/composer.json b/composer.json index 0e73d2d..1f1d38f 100755 --- a/composer.json +++ b/composer.json @@ -1,65 +1,69 @@ { - "name": "romeoz/rock", - "description": "The Rock PHP framework", - "keywords": ["framework", "rock"], - "type": "library", - "license": "MIT", - "support": { - "email": "serggalka@gmail.com", - "issues": "https://github.com/romeOz/rock/issues", - "source": "https://github.com/romeOz/rock" - }, - "authors": [ - { - "name": "Ruslan", - "email": "serggalka@gmail.com" - } - ], - "require": { - "php": ">=5.4.0", - "romeoz/rock-components" : "0.11.*", - "romeoz/rock-di" : "0.12.*", - "romeoz/rock-request" : "0.11.*", - "romeoz/rock-url" : "0.11.*", - "romeoz/rock-csrf" : "0.11.*", - "romeoz/rock-sanitize" : "0.10.*", - "romeoz/rock-validate" : "0.10.*", - "romeoz/rock-date" : "0.10.*", - "romeoz/rock-i18n" : "0.10.*", - "romeoz/rock-access" : "0.10.*", - "romeoz/rock-template" : "0.12.*", - "romeoz/rock-widgets" : "0.11.*", - "romeoz/rock-behaviors" : "0.11.*", - "romeoz/rock-session" : "0.10.*", - "romeoz/rock-db" : "0.11.*", - "filp/whoops": "1.1.*", - "phpmailer/phpmailer" : "5.2.*", - "monolog/monolog": "1.15.*" - }, - "require-dev": { - "phpunit/phpunit": "~4.7.0" - }, - "suggest": { - "romeoz/rock-file" : "Rock File", - "romeoz/rock-cache" : "Rock Cache", - "romeoz/rock-mongodb" : "Rock MongoDB", - "romeoz/rock-sphinx" : "Rock Sphinx", - "romeoz/rock-image": "Rock Image", - "romeoz/rock-markdown": "Rock Markdown", - "romeoz/rock-mq": "Rock MQ", - "romeoz/rock-morphy": "Rock Morphy", - "tackk/cartographer": "required by SitemapResponseFormatter", - "mibe/feedwriter": "required by RssResponseFormatter", - "lusitanian/oauth" : "required by rock-authclient extension" - }, - "autoload": { - "psr-4": { - "rock\\": "src/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "name": "romeoz/rock", + "description": "The Rock PHP framework", + "keywords": [ + "framework", + "rock" + ], + "type": "library", + "license": "MIT", + "support": { + "email": "serggalka@gmail.com", + "issues": "https://github.com/romeOz/rock/issues", + "source": "https://github.com/romeOz/rock" + }, + "authors": [ + { + "name": "Ruslan", + "email": "serggalka@gmail.com" } + ], + "require": { + "php": ">=5.4.0", + "romeoz/rock-components": "*@dev", + "romeoz/rock-di": "*@dev", + "romeoz/rock-request": "*@dev", + "romeoz/rock-url": "*@dev", + "romeoz/rock-csrf": "*@dev", + "romeoz/rock-sanitize": "*@dev", + "romeoz/rock-validate": "*@dev", + "romeoz/rock-date": "*@dev", + "romeoz/rock-i18n": "*@dev", + "romeoz/rock-access": "*@dev", + "romeoz/rock-template": "*@dev", + "romeoz/rock-widgets": "*@dev", + "romeoz/rock-behaviors": "*@dev", + "romeoz/rock-session": "*@dev", + "romeoz/rock-db": "*@dev", + "romeoz/rock-dataprovider": "*@dev", + "filp/whoops": "1.1.*", + "phpmailer/phpmailer": "5.2.*", + "monolog/monolog": "1.15.*" + }, + "require-dev": { + "phpunit/phpunit": "~4.7.0" + }, + "suggest": { + "romeoz/rock-file": "Rock File", + "romeoz/rock-cache": "Rock Cache", + "romeoz/rock-mongodb": "Rock MongoDB", + "romeoz/rock-sphinx": "Rock Sphinx", + "romeoz/rock-image": "Rock Image", + "romeoz/rock-markdown": "Rock Markdown", + "romeoz/rock-mq": "Rock MQ", + "romeoz/rock-morphy": "Rock Morphy", + "tackk/cartographer": "required by SitemapResponseFormatter", + "mibe/feedwriter": "required by RssResponseFormatter", + "lusitanian/oauth": "required by rock-authclient extension" + }, + "autoload": { + "psr-4": { + "rock\\": "src/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } } \ No newline at end of file diff --git a/src/rest/Serializer.php b/src/rest/Serializer.php index 91df42f..5b43837 100644 --- a/src/rest/Serializer.php +++ b/src/rest/Serializer.php @@ -6,8 +6,8 @@ use rock\base\ObjectTrait; use rock\components\Arrayable; use rock\components\Model; -use rock\db\common\ActiveDataProvider; -use rock\db\common\PaginationProvider; +use rock\data\ActiveDataProvider; +use rock\data\PaginationProvider; use rock\helpers\ArrayHelper; use rock\helpers\Instance; use rock\helpers\Link; @@ -21,7 +21,7 @@ * so that they can be further turned into different formats, such as JSON, XML, by response formatters. * * The default implementation handles resources as {@see \rock\components\Model} objects and collections as objects - * implementing {@see \rock\db\common\ActiveDataProvider}. You may override {@see \rock\rest\Serializer::serialize()} to handle more types. + * implementing {@see \rock\data\ActiveDataProvider}. You may override {@see \rock\rest\Serializer::serialize()} to handle more types. */ class Serializer implements ObjectInterface { @@ -120,7 +120,7 @@ public function init() * Serializes the given data into a format that can be easily turned into other formats. * This method mainly converts the objects of recognized types into array representation. * It will not do conversion for unknown object types or non-object data. - * The default implementation will handle {@see \rock\components\Model} and {@see \rock\db\common\ActiveDataProvider}. + * The default implementation will handle {@see \rock\components\Model} and {@see \rock\data\ActiveDataProvider}. * You may override this method to support more object types. * @param mixed $data the data to be serialized. * @return mixed the converted data. @@ -158,7 +158,7 @@ protected function getRequestedFields() /** * Serializes a data provider. - * @param ActiveDataProvider $dataProvider + * @param \rock\data\ActiveDataProvider $dataProvider * @return array the array representation of the data provider. */ protected function serializeDataProvider($dataProvider) diff --git a/tests/rest/SerializerTest.php b/tests/rest/SerializerTest.php index 374b8f7..4d507e8 100644 --- a/tests/rest/SerializerTest.php +++ b/tests/rest/SerializerTest.php @@ -4,7 +4,7 @@ use rock\components\Model; -use rock\db\common\ActiveDataProvider; +use rock\data\ActiveDataProvider; use rock\response\Response; use rock\rest\Serializer; use rockunit\db\DatabaseTestCase; @@ -48,23 +48,23 @@ public function testAsActiveDataProvider() [ 'self' => [ - 'href' => 'http://site.com/', + 'href' => 'http://site.com/?limit=2', ], 'first' => [ - 'href' => 'http://site.com/', + 'href' => 'http://site.com/?limit=2', ], 'prev' => [ - 'href' => 'http://site.com/', + 'href' => 'http://site.com/?limit=2', ], 'next' => [ - 'href' => 'http://site.com/?page=1', + 'href' => 'http://site.com/?page=1&limit=2', ], 'last' => [ - 'href' => 'http://site.com/?page=1', + 'href' => 'http://site.com/?page=1&limit=2', ], ], '_meta' => @@ -75,7 +75,7 @@ public function testAsActiveDataProvider() 'perPage' => 2, ], ]; - $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response]); + $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response]); $this->assertEquals($expected, $serialize->serialize($provider)); $this->assertNotEmpty($response->getHeaders()->get(strtolower($serialize->totalCountHeader))); $this->assertNotEmpty($response->getHeaders()->get('link')); @@ -85,7 +85,7 @@ public function testAsModel() { $response = new Response(); $config = ['collectionEnvelope' => 'data', 'response' => $response]; - $serialize = new Serializer($config); + $serialize = new Serializer($config); $_GET[$serialize->fieldsParam] = 'username,email'; $model = Users::find()->select(['id', 'username', 'email'])->one(); @@ -105,7 +105,7 @@ public function testAsModel() // extend $config['extend'] = ['message' => 'text...']; - $serialize = new Serializer($config); + $serialize = new Serializer($config); $expected[$serialize->extendAttribute] = [ 'message' => 'text...' ]; @@ -124,18 +124,18 @@ public function testAsModelForm() $this->assertFalse($model->validate()); $this->assertNotEmpty($model->getErrors()); $response = new Response(); - $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response]); + $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response]); $expected = [ - 'email'=>'email must be valid' + 'email' => 'email must be valid' ]; $this->assertEquals($expected, $serialize->serialize($model)); // all errors - $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response, 'firstErrors' => false]); + $serialize = new Serializer(['collectionEnvelope' => 'data', 'response' => $response, 'firstErrors' => false]); $expected = [ - 'email'=> ['email must be valid'] + 'email' => ['email must be valid'] ]; $this->assertEquals($expected, $serialize->serialize($model)); @@ -152,7 +152,7 @@ public function testExtend() 'message' => 'text...' ] ]; - $serialize = new Serializer($config); + $serialize = new Serializer($config); $expected = $data; $expected[$serialize->extendAttribute] = [ @@ -168,7 +168,7 @@ public function testExtend() 'note' => 'note...' ] ]; - $serialize = new Serializer($config); + $serialize = new Serializer($config); $expected2 = $data; $expected2[$serialize->extendAttribute] = [