From ecbbdbe0294dc3b3e9cf0da0674469fc5815fc2e Mon Sep 17 00:00:00 2001 From: Yurist-85 Date: Thu, 12 May 2016 17:26:37 +0700 Subject: [PATCH 1/3] Session serialize method implementation. PhpHandler:serialize: Simply reverse behaviour of 'PhpHandler:unserialize' method. --- src/Ratchet/Session/Serialize/PhpHandler.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Ratchet/Session/Serialize/PhpHandler.php b/src/Ratchet/Session/Serialize/PhpHandler.php index 8fb5308..cbf46c8 100644 --- a/src/Ratchet/Session/Serialize/PhpHandler.php +++ b/src/Ratchet/Session/Serialize/PhpHandler.php @@ -3,10 +3,21 @@ namespace Ratchet\Session\Serialize; class PhpHandler implements HandlerInterface { /** + * Simply reverse behaviour of unserialize method. * {@inheritdoc} */ function serialize(array $data) { - throw new \RuntimeException("Serialize PhpHandler:serialize code not written yet, write me!"); + $preSerialized = []; + $serialized = ''; + + if (count($data)) { + foreach ($data as $bucket => $bucketData) { + $preSerialized[] = $bucket . '|' . serialize($bucketData); + } + $serialized = implode('',$preSerialized); + } + + return $serialized; } /** From 1028c03235f607d0f55c37efdeab061c5305c3b4 Mon Sep 17 00:00:00 2001 From: Yurist-85 Date: Thu, 12 May 2016 17:41:32 +0700 Subject: [PATCH 2/3] Create array in old manner (PHP 5.3) --- src/Ratchet/Session/Serialize/PhpHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ratchet/Session/Serialize/PhpHandler.php b/src/Ratchet/Session/Serialize/PhpHandler.php index cbf46c8..3420094 100644 --- a/src/Ratchet/Session/Serialize/PhpHandler.php +++ b/src/Ratchet/Session/Serialize/PhpHandler.php @@ -7,7 +7,7 @@ class PhpHandler implements HandlerInterface { * {@inheritdoc} */ function serialize(array $data) { - $preSerialized = []; + $preSerialized = array(); $serialized = ''; if (count($data)) { From f5e8a1834187745a50b9b5d88d21c8adb1d6baaf Mon Sep 17 00:00:00 2001 From: Chris Boden Date: Wed, 25 May 2016 08:44:41 -0400 Subject: [PATCH 3/3] Added unit tests for serialize, formatting --- src/Ratchet/Session/Serialize/PhpHandler.php | 6 +++--- tests/unit/Session/Serialize/PhpHandlerTest.php | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Ratchet/Session/Serialize/PhpHandler.php b/src/Ratchet/Session/Serialize/PhpHandler.php index 3420094..b1df356 100644 --- a/src/Ratchet/Session/Serialize/PhpHandler.php +++ b/src/Ratchet/Session/Serialize/PhpHandler.php @@ -9,14 +9,14 @@ class PhpHandler implements HandlerInterface { function serialize(array $data) { $preSerialized = array(); $serialized = ''; - + if (count($data)) { foreach ($data as $bucket => $bucketData) { $preSerialized[] = $bucket . '|' . serialize($bucketData); } - $serialized = implode('',$preSerialized); + $serialized = implode('', $preSerialized); } - + return $serialized; } diff --git a/tests/unit/Session/Serialize/PhpHandlerTest.php b/tests/unit/Session/Serialize/PhpHandlerTest.php index 4dddee9..4acf5bc 100644 --- a/tests/unit/Session/Serialize/PhpHandlerTest.php +++ b/tests/unit/Session/Serialize/PhpHandlerTest.php @@ -33,4 +33,11 @@ class PhpHandlerTest extends \PHPUnit_Framework_TestCase { public function testUnserialize($in, $expected) { $this->assertEquals($expected, $this->_handler->unserialize($in)); } + + /** + * @dataProvider serializedProvider + */ + public function testSerialize($serialized, $original) { + $this->assertEquals($serialized, $this->_handler->serialize($original)); + } }