Overview

Namespaces

  • Evenement
  • None
  • PHP
  • Psr
    • Http
      • Message
  • Ratchet
    • Http
    • RFC6455
      • Handshake
      • Messaging
    • Server
    • Session
      • Serialize
      • Storage
        • Proxy
    • Wamp
    • WebSocket
  • React
    • EventLoop
      • Tick
      • Timer
    • Socket
    • Stream
  • Symfony
    • Component
      • HttpFoundation
        • Session
          • Attribute
          • Flash
          • Storage
            • Handler
            • Proxy
      • Routing
        • Annotation
        • Exception
        • Generator
          • Dumper
        • Loader
          • DependencyInjection
        • Matcher
          • Dumper
        • Tests
          • Annotation
          • Fixtures
            • AnnotatedClasses
            • OtherAnnotatedClasses
          • Generator
            • Dumper
          • Loader
          • Matcher
            • Dumper

Classes

  • PhpBinaryHandler
  • PhpHandler

Interfaces

  • HandlerInterface
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: namespace Ratchet\Session\Serialize;
 3: 
 4: class PhpHandler implements HandlerInterface {
 5:     /**
 6:      * Simply reverse behaviour of unserialize method.
 7:      * {@inheritdoc}
 8:      */
 9:     function serialize(array $data) {
10:         $preSerialized = array();
11:         $serialized = '';
12: 
13:         if (count($data)) {
14:             foreach ($data as $bucket => $bucketData) {
15:                 $preSerialized[] = $bucket . '|' . serialize($bucketData);
16:             }
17:             $serialized = implode('', $preSerialized);
18:         }
19: 
20:         return $serialized;
21:     }
22: 
23:     /**
24:      * {@inheritdoc}
25:      * @link http://ca2.php.net/manual/en/function.session-decode.php#108037 Code from this comment on php.net
26:      * @throws \UnexpectedValueException If there is a problem parsing the data
27:      */
28:     public function unserialize($raw) {
29:         $returnData = array();
30:         $offset     = 0;
31: 
32:         while ($offset < strlen($raw)) {
33:             if (!strstr(substr($raw, $offset), "|")) {
34:                 throw new \UnexpectedValueException("invalid data, remaining: " . substr($raw, $offset));
35:             }
36: 
37:             $pos     = strpos($raw, "|", $offset);
38:             $num     = $pos - $offset;
39:             $varname = substr($raw, $offset, $num);
40:             $offset += $num + 1;
41:             $data    = unserialize(substr($raw, $offset));
42: 
43:             $returnData[$varname] = $data;
44:             $offset += strlen(serialize($data));
45:         }
46: 
47:         return $returnData;
48:     }
49: }
50: 
Ratchet API documentation generated by ApiGen 2.8.0