Merge "Update docs"
[lhc/web/wiklou.git] / includes / site / SiteArray.php
index 141629e..096a179 100644 (file)
@@ -86,12 +86,12 @@ class SiteArray extends GenericArrayObject implements SiteList {
         * @param mixed $index
         */
        public function offsetUnset( $index ) {
-               /**
-                * @var Site $site
-                */
-               $site = $this->offsetGet( $index );
+               if ( $this->offsetExists( $index ) ) {
+                       /**
+                        * @var Site $site
+                        */
+                       $site = $this->offsetGet( $index );
 
-               if ( $site !== false ) {
                        unset( $this->byGlobalId[$site->getGlobalId()] );
                        unset( $this->byInternalId[$site->getInternalId()] );
                }
@@ -202,4 +202,39 @@ class SiteArray extends GenericArrayObject implements SiteList {
                $this[] = $site;
        }
 
+       /**
+        * @see GenericArrayObject::getSerializationData
+        *
+        * @since 1.21
+        *
+        * @return array
+        */
+       protected function getSerializationData() {
+               return array_merge(
+                       parent::getSerializationData(),
+                       array(
+                               'internalIds' => $this->byInternalId,
+                               'globalIds' => $this->byGlobalId,
+                       )
+               );
+       }
+
+       /**
+        * @see GenericArrayObject::unserialize
+        *
+        * @since 1.21
+        *
+        * @param string $serialization
+        *
+        * @return array
+        */
+       public function unserialize( $serialization ) {
+               $serializationData = parent::unserialize( $serialization );
+
+               $this->byInternalId = $serializationData['internalIds'];
+               $this->byGlobalId = $serializationData['globalIds'];
+
+               return $serializationData;
+       }
+
 }