Skip to content

Commit e7bfe15

Browse files
correção
1 parent fe7d6be commit e7bfe15

File tree

3 files changed

+386
-386
lines changed

3 files changed

+386
-386
lines changed

composer.json

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
{
2-
"name": "jeffersonsimaogoncalves/cakephp-fractal-transformer-view",
3-
"description": "CakePHP view builder utilizing Fractal library for entities transformation",
4-
"type": "cakephp-plugin",
5-
"keywords": ["cakephp", "api", "json", "rest", "fractal"],
6-
"homepage": "http://github.com/jeffersonsimaogoncalves/cakephp-fractal-transformer-view",
7-
"license": "MIT",
8-
"authors": [
9-
{
10-
"name": "Andrej Griniuk",
11-
"email": "[email protected]"
12-
},
13-
{
14-
"name": "Jefferson Simão Gonçalves",
15-
"homepage": "https://github.com/jeffersonsimaogoncalves"
16-
}
17-
],
18-
"require": {
19-
"php": "^7.1",
20-
"cakephp/cakephp": "^3.6",
21-
"league/fractal": ">=0.13.0"
22-
},
23-
"autoload": {
24-
"psr-4": {
25-
"FractalTransformerView\\": "src"
26-
}
27-
}
28-
}
1+
{
2+
"name": "jeffersonsimaogoncalves/cakephp-fractal-transformer-view",
3+
"description": "CakePHP view builder utilizing Fractal library for entities transformation",
4+
"type": "cakephp-plugin",
5+
"keywords": ["cakephp", "api", "json", "rest", "fractal"],
6+
"homepage": "http://github.com/jeffersonsimaogoncalves/cakephp-fractal-transformer-view",
7+
"license": "MIT",
8+
"authors": [
9+
{
10+
"name": "Andrej Griniuk",
11+
"email": "[email protected]"
12+
},
13+
{
14+
"name": "Jefferson Simão Gonçalves",
15+
"homepage": "https://github.com/jeffersonsimaogoncalves"
16+
}
17+
],
18+
"require": {
19+
"php": "^7.1",
20+
"cakephp/cakephp": "^3.6",
21+
"league/fractal": ">=0.13.0"
22+
},
23+
"autoload": {
24+
"psr-4": {
25+
"FractalTransformerView\\": "src"
26+
}
27+
}
28+
}

src/Utils/TransformerData.php

+138-138
Original file line numberDiff line numberDiff line change
@@ -1,138 +1,138 @@
1-
<?php
2-
/**
3-
* Created by PhpStorm.
4-
* User: jeffersonsimaogoncalves
5-
* Date: 25/05/2018
6-
* Time: 23:45
7-
*/
8-
9-
namespace FractalTransformerView\Utils;
10-
11-
use Cake\Datasource\EntityInterface;
12-
use Cake\ORM\Query;
13-
use Cake\ORM\ResultSet;
14-
use Exception;
15-
use FractalTransformerView\Serializer\ArraySerializer;
16-
use League\Fractal\Manager;
17-
use League\Fractal\Resource\Collection;
18-
use League\Fractal\Resource\Item;
19-
use League\Fractal\TransformerAbstract;
20-
21-
/**
22-
* Class TransformerData
23-
*
24-
* @property \League\Fractal\TransformerAbstract transform
25-
*
26-
* @package FractalTransformerView\Utils
27-
*/
28-
class TransformerData
29-
{
30-
/**
31-
* @param $data
32-
* @param $transform
33-
*
34-
* @return array
35-
* @throws \Exception
36-
*/
37-
public function getData($data, $transform)
38-
{
39-
$this->transform = $transform;
40-
$manager = new Manager();
41-
$manager->setSerializer(new ArraySerializer());
42-
43-
if (is_array($data)) {
44-
foreach ($data as $varName => &$var) {
45-
$var = $this->transform($manager, $var);
46-
}
47-
unset($var);
48-
} else {
49-
$data = $this->transform($manager, $data);
50-
}
51-
52-
return $data;
53-
}
54-
55-
/**
56-
* @param \League\Fractal\Manager $manager
57-
* @param $var
58-
*
59-
* @return array
60-
* @throws \Exception
61-
*/
62-
protected function transform(Manager $manager, $var)
63-
{
64-
if (!$transformer = $this->getTransformer()) {
65-
return $var;
66-
}
67-
68-
if (is_array($var) || $var instanceof Query || $var instanceof ResultSet) {
69-
$resource = new Collection($var, $transformer, 'data');
70-
} elseif ($var instanceof EntityInterface) {
71-
$resource = new Item($var, $transformer);
72-
} else {
73-
throw new Exception('Unserializable variable');
74-
}
75-
76-
return $manager->createData($resource)->toArray();
77-
}
78-
79-
/**
80-
* @return bool|\League\Fractal\TransformerAbstract
81-
* @throws \Exception
82-
*/
83-
protected function getTransformer()
84-
{
85-
$transformerClass = $this->transform;
86-
87-
if ($transformerClass === false) {
88-
return false;
89-
}
90-
91-
if (!class_exists($transformerClass)) {
92-
throw new Exception(sprintf('Invalid Transformer class: %s', $transformerClass));
93-
}
94-
95-
$transformer = new $transformerClass;
96-
if (!($transformer instanceof TransformerAbstract)) {
97-
throw new Exception(
98-
sprintf(
99-
'Transformer class not instance of TransformerAbstract: %s', $transformerClass
100-
)
101-
);
102-
}
103-
104-
return $transformer;
105-
}
106-
107-
/**
108-
* @param $var
109-
*
110-
* @return bool|string
111-
*/
112-
protected function getTransformerClass($var)
113-
{
114-
$entity = null;
115-
if ($var instanceof Query) {
116-
$entity = $var->repository()->newEntity();
117-
} elseif ($var instanceof ResultSet) {
118-
$entity = $var->first();
119-
} elseif ($var instanceof EntityInterface) {
120-
$entity = $var;
121-
} elseif (is_array($var)) {
122-
$entity = reset($var);
123-
}
124-
125-
if (!$entity || !is_object($entity)) {
126-
return false;
127-
}
128-
129-
$entityClass = get_class($entity);
130-
$transformerClass = str_replace('\\Model\\Entity\\', '\\Model\\Transformer\\', $entityClass) . 'Transformer';
131-
132-
if (!class_exists($transformerClass)) {
133-
return false;
134-
}
135-
136-
return $transformerClass;
137-
}
138-
}
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: jeffersonsimaogoncalves
5+
* Date: 25/05/2018
6+
* Time: 23:45
7+
*/
8+
9+
namespace FractalTransformerView\Utils;
10+
11+
use Cake\Datasource\EntityInterface;
12+
use Cake\ORM\Query;
13+
use Cake\ORM\ResultSet;
14+
use Exception;
15+
use FractalTransformerView\Serializer\ArraySerializer;
16+
use League\Fractal\Manager;
17+
use League\Fractal\Resource\Collection;
18+
use League\Fractal\Resource\Item;
19+
use League\Fractal\TransformerAbstract;
20+
21+
/**
22+
* Class TransformerData
23+
*
24+
* @property \League\Fractal\TransformerAbstract transform
25+
*
26+
* @package FractalTransformerView\Utils
27+
*/
28+
class TransformerData
29+
{
30+
/**
31+
* @param $data
32+
* @param $transform
33+
*
34+
* @return array
35+
* @throws \Exception
36+
*/
37+
public function getData($data, $transform)
38+
{
39+
$this->transform = $transform;
40+
$manager = new Manager();
41+
$manager->setSerializer(new ArraySerializer());
42+
43+
if (is_array($data)) {
44+
foreach ($data as $varName => &$var) {
45+
$var = $this->transform($manager, $var);
46+
}
47+
unset($var);
48+
} else {
49+
$data = $this->transform($manager, $data);
50+
}
51+
52+
return $data;
53+
}
54+
55+
/**
56+
* @param \League\Fractal\Manager $manager
57+
* @param $var
58+
*
59+
* @return array
60+
* @throws \Exception
61+
*/
62+
protected function transform(Manager $manager, $var)
63+
{
64+
if (!$transformer = $this->getTransformer()) {
65+
return $var;
66+
}
67+
68+
if (is_array($var) || $var instanceof Query || $var instanceof ResultSet) {
69+
$resource = new Collection($var, $transformer, 'data');
70+
} elseif ($var instanceof EntityInterface) {
71+
$resource = new Item($var, $transformer);
72+
} else {
73+
throw new Exception('Unserializable variable');
74+
}
75+
76+
return $manager->createData($resource)->toArray();
77+
}
78+
79+
/**
80+
* @return bool|\League\Fractal\TransformerAbstract
81+
* @throws \Exception
82+
*/
83+
protected function getTransformer()
84+
{
85+
$transformerClass = $this->transform;
86+
87+
if ($transformerClass === false) {
88+
return false;
89+
}
90+
91+
if (!class_exists($transformerClass)) {
92+
throw new Exception(sprintf('Invalid Transformer class: %s', $transformerClass));
93+
}
94+
95+
$transformer = new $transformerClass;
96+
if (!($transformer instanceof TransformerAbstract)) {
97+
throw new Exception(
98+
sprintf(
99+
'Transformer class not instance of TransformerAbstract: %s', $transformerClass
100+
)
101+
);
102+
}
103+
104+
return $transformer;
105+
}
106+
107+
/**
108+
* @param $var
109+
*
110+
* @return bool|string
111+
*/
112+
protected function getTransformerClass($var)
113+
{
114+
$entity = null;
115+
if ($var instanceof Query) {
116+
$entity = $var->repository()->newEntity();
117+
} elseif ($var instanceof ResultSet) {
118+
$entity = $var->first();
119+
} elseif ($var instanceof EntityInterface) {
120+
$entity = $var;
121+
} elseif (is_array($var)) {
122+
$entity = reset($var);
123+
}
124+
125+
if (!$entity || !is_object($entity)) {
126+
return false;
127+
}
128+
129+
$entityClass = get_class($entity);
130+
$transformerClass = str_replace('\\Model\\Entity\\', '\\Model\\Transformer\\', $entityClass) . 'Transformer';
131+
132+
if (!class_exists($transformerClass)) {
133+
return false;
134+
}
135+
136+
return $transformerClass;
137+
}
138+
}

0 commit comments

Comments
 (0)