Skip to content

Commit 1ce2797

Browse files
committed
use new columns
1 parent 43caa27 commit 1ce2797

12 files changed

Lines changed: 23 additions & 98 deletions

File tree

src/Driver/QueryBuilder/QueryBuilder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ public function fromArray(array $data, ?ActionManagerInterface $actionManager =
280280

281281
// create new components
282282
foreach ($subjects as $subject) {
283-
list ($model, $identifier) = explode('#', $subject);
284-
$components[] = $actionManager->createComponent($model, unserialize($identifier));
283+
list ($model, $identifier) = explode('##', $subject);
284+
$components[] = $actionManager->createComponent($model, $identifier);
285285
}
286286
}
287287

src/Driver/Redis/Pager/AbstractPager.php

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,7 @@ public function findActionsForIds(array $ids)
3737

3838
$datas = $this->client->hmget($this->getActionKey(), $ids);
3939

40-
return array_values(
41-
array_map(
42-
function ($v) {
43-
return unserialize($v);
44-
},
45-
$datas
46-
)
47-
);
40+
return array_values($datas);
4841
}
4942

5043
/**

src/Model/Component.php

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ class Component implements ComponentInterface
2121
*/
2222
protected $identifier;
2323

24-
protected string|null $identifierMigrated = null;
25-
2624
/**
2725
* Data defined on this component.
2826
*
@@ -34,22 +32,6 @@ class Component implements ComponentInterface
3432
* {@inheritdoc}
3533
*/
3634
public function createFromHash($hash)
37-
{
38-
$data = explode('#', $hash);
39-
if (count($data) == 1) {
40-
throw new \InvalidArgumentException('Invalid hash, must be formatted {model}#{hash or identifier}');
41-
}
42-
43-
$model = array_shift($data);
44-
$identifier = unserialize(implode('', $data));
45-
46-
$this->setModel($model);
47-
$this->setIdentifier($identifier);
48-
49-
return $this;
50-
}
51-
52-
public function createFromHashMigrated(string $hash): ComponentInterface
5335
{
5436
$data = explode('##', $hash);
5537
if (count($data) == 1) {
@@ -137,17 +119,8 @@ public function getModel()
137119
*/
138120
public function setIdentifier($identifier)
139121
{
140-
if (is_scalar($identifier)) {
141-
// to avoid issue of serialization.
142-
$identifier = (string) $identifier;
143-
} elseif (!is_array($identifier)) {
144-
throw new \InvalidArgumentException('Identifier must be a scalar or an array');
145-
}
146-
147-
$this->identifier = $identifier;
148-
149-
$identifierMigrated = is_array($identifier) ? (string) reset($identifier) : $identifier;
150-
$this->identifierMigrated = $identifierMigrated;
122+
$identifier = is_array($identifier) ? reset($identifier) : $identifier;
123+
$this->identifier = (string) $identifier;
151124

152125
if (null !== $this->getModel()) {
153126
$this->buildHash();
@@ -163,9 +136,4 @@ public function getIdentifier()
163136
{
164137
return $this->identifier;
165138
}
166-
167-
public function getIdentifierMigrated(): string|null
168-
{
169-
return $this->identifierMigrated;
170-
}
171139
}

src/Model/ComponentInterface.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,13 @@ interface ComponentInterface
1111
*/
1212
public function getHash();
1313

14-
public function getHashMigrated(): string|null;
15-
1614
/**
1715
* @param string $hash hash
1816
*
1917
* @return ComponentInterface
2018
*/
2119
public function createFromHash($hash);
2220

23-
public function createFromHashMigrated(string $hash): ComponentInterface;
24-
2521
/**
2622
* @param mixed $data data
2723
*
@@ -69,6 +65,4 @@ public function setIdentifier($identifier);
6965
* @return string
7066
*/
7167
public function getIdentifier();
72-
73-
public function getIdentifierMigrated(): string|null;
7468
}

src/Model/HashTrait.php

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,16 @@ trait HashTrait
99
*/
1010
protected $hash;
1111

12-
protected string|null $hashMigrated = null;
13-
1412
/**
1513
* {@inheritdoc}
1614
*/
1715
public function buildHash()
1816
{
1917
$model = $this->getModel();
2018
$identifier = $this->getIdentifier();
21-
$this->hash = $model.'#'.serialize($identifier);
22-
23-
if (is_scalar($identifier)) {
24-
// to avoid issue of serialization.
25-
$identifier = (string) $identifier;
26-
} elseif (!is_array($identifier)) {
27-
throw new \InvalidArgumentException('Identifier must be a scalar or an array');
28-
}
29-
$identifierMigrated = is_array($identifier) ? (string) reset($identifier) : $identifier;
19+
$identifier = is_array($identifier) ? (string) reset($identifier) : $identifier;
3020

31-
$this->hashMigrated = $model.'##'.$identifierMigrated;
21+
$this->hash = $model.'##'.$identifier;
3222
}
3323

3424
/**
@@ -40,9 +30,4 @@ public function getHash()
4030
{
4131
return $this->hash;
4232
}
43-
44-
public function getHashMigrated(): string|null
45-
{
46-
return $this->hashMigrated;
47-
}
4833
}

src/ResolveComponent/ValueObject/ResolveComponentModelIdentifier.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public function __construct($model, $identifier = null)
2424
{
2525
$this->guardValidModelAndIdentifier($model, $identifier);
2626
$this->model = $model;
27-
$this->identifier = $identifier;
27+
$identifier = is_array($identifier) ? reset($identifier) : $identifier;
28+
$this->identifier = (string) $identifier;
2829
}
2930

3031
/**

src/ResolveComponent/ValueObject/ResolvedComponentData.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ public function __construct($model, $identifier, $data = null)
4444
$this->guardValidIdentifier($identifier);
4545

4646
$this->model = $model;
47-
$this->identifier = $identifier;
47+
$identifier = is_array($identifier) ? reset($identifier) : $identifier;
48+
$this->identifier = (string) $identifier;
4849
$this->data = $data;
4950
$this->buildHash();
5051
}

tests/units/Spy/Timeline/Driver/Redis/ActionManager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function testFindOrCreateComponent()
3838
->then(
3939
$this->mock($componentDataResolver)->call('resolveComponentData')->withArguments($resolve)->exactly(1)
4040
->string($result->getModel())->isEqualTo($model)
41-
->array($result->getIdentifier())->isEqualTo($identifier)
41+
->string($result->getIdentifier())->isEqualTo('bar')
4242
)
4343
;
4444
}

tests/units/Spy/Timeline/Model/Component.php

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,13 @@ public function testBuildHash()
1515
->and($component->setModel('chuck'))
1616
->and($component->setIdentifier('norris'))
1717
->when($component->buildHash()) // should be already called on setModel or setIdentifier
18-
->string($component->getHash())->isEqualTo('chuck#s:6:"norris";')
19-
->string($component->getHashMigrated())->isEqualTo('chuck##norris')
18+
->string($component->getHash())->isEqualTo('chuck##norris')
2019
->and($component->setIdentifier(['norris', 'testa']))
2120
->when($component->buildHash()) // should be already called on setModel or setIdentifier
22-
->string($component->getHash())->isEqualTo('chuck#a:2:{i:0;s:6:"norris";i:1;s:5:"testa";}')
23-
->string($component->getHashMigrated())->isEqualTo('chuck##norris')
21+
->string($component->getHash())->isEqualTo('chuck##norris')
2422
->and($component->setIdentifier(['norris' => 'foo', 'testa' => 1]))
2523
->when($component->buildHash()) // should be already called on setModel or setIdentifier
26-
->string($component->getHash())->isEqualTo('chuck#a:2:{s:6:"norris";s:3:"foo";s:5:"testa";i:1;}')
27-
->string($component->getHashMigrated())->isEqualTo('chuck##foo')
24+
->string($component->getHash())->isEqualTo('chuck##foo')
2825
;
2926
}
3027

@@ -35,28 +32,16 @@ public function testCreateFromHash()
3532
$component->createFromHash('invalidhash');
3633
})
3734
->isInstanceOf('\InvalidArgumentException')
38-
->hasMessage('Invalid hash, must be formatted {model}#{hash or identifier}')
35+
->hasMessage('Invalid hash, must be formatted {model}##{hash or identifier}')
3936
// real hash
4037
// ->when(function () use ($component) {
4138
// $component->createFromHash('model#id');
4239
// })
4340
// ->error()->exists()
4441
// ok
45-
->when($component->createFromHash('model#s:5:"chuck";'))
42+
->when($component->createFromHash('model##chuck'))
4643
->string($component->getModel())->isEqualTo('model')
4744
->string($component->getIdentifier())->isEqualTo('chuck')
48-
// ok
49-
->when($component->createFromHashMigrated('model##chuck'))
50-
->string($component->getModel())->isEqualTo('model')
51-
->string($component->getIdentifier())->isEqualTo('chuck')
52-
// composite
53-
->when($component->createFromHash('model#a:2:{i:0;s:5:"chuck";i:1;s:5:"testa";}'))
54-
->string($component->getModel())->isEqualTo('model')
55-
->array($component->getIdentifier())->isEqualTo(array('chuck', 'testa'))
56-
// composite associative
57-
->when($component->createFromHash('chuck#a:2:{s:6:"norris";s:3:"foo";s:5:"testa";i:1;}'))
58-
->string($component->getModel())->isEqualTo('chuck')
59-
->array($component->getIdentifier())->isEqualTo(['norris' => 'foo', 'testa' => 1])
6045
;
6146
}
6247

@@ -70,8 +55,7 @@ public function testSetModel()
7055
->if($component = new TestedModel())
7156
->and($component->setIdentifier('norris'))
7257
->and($component->setModel('chuck'))
73-
->string($component->getHash())->isEqualTo('chuck#s:6:"norris";')
74-
->string($component->getHashMigrated())->isEqualTo('chuck##norris')
58+
->string($component->getHash())->isEqualTo('chuck##norris')
7559
;
7660
}
7761

@@ -85,8 +69,7 @@ public function testSetIdentifier()
8569
->if($component = new TestedModel())
8670
->and($component->setModel('chuck'))
8771
->and($component->setIdentifier('norris'))
88-
->string($component->getHash())->isEqualTo('chuck#s:6:"norris";')
89-
->string($component->getHashMigrated())->isEqualTo('chuck##norris')
72+
->string($component->getHash())->isEqualTo('chuck##norris')
9073
;
9174
}
9275
}

tests/units/Spy/Timeline/ResolveComponent/BasicComponentDataResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public function testWithStringAndIdentifierGiven()
4242
$resolve = new ResolveComponentModelIdentifier('user', $identifier);
4343

4444
$this->if($object = new TestedModel())
45-
->array($object->resolveComponentData($resolve)->getIdentifier())->isEqualTo($identifier)
45+
->string($object->resolveComponentData($resolve)->getIdentifier())->isEqualTo('bar')
4646
->string($object->resolveComponentData($resolve)->getModel())->isEqualTo('user')
4747
->variable($object->resolveComponentData($resolve)->getData())->isNull()
4848
;

0 commit comments

Comments
 (0)