Use StaticArrayWriter in LCStoreStaticArray
[lhc/web/wiklou.git] / includes / cache / localisation / LCStoreStaticArray.php
index 38700b8..3b6da73 100644 (file)
@@ -20,6 +20,8 @@
  * @file
  */
 
+use Wikimedia\StaticArrayWriter;
+
 /**
  * @since 1.26
  */
@@ -84,9 +86,7 @@ class LCStoreStaticArray implements LCStore {
                }
                if ( is_array( $value ) ) {
                        // [A]rray
-                       return [ 'a', array_map( function ( $v ) {
-                               return LCStoreStaticArray::encode( $v );
-                       }, $value ) ];
+                       return [ 'a', array_map( 'LCStoreStaticArray::encode', $value ) ];
                }
 
                throw new RuntimeException( 'Cannot encode ' . var_export( $value, true ) );
@@ -109,9 +109,7 @@ class LCStoreStaticArray implements LCStore {
                        case 's':
                                return unserialize( $data );
                        case 'a':
-                               return array_map( function ( $v ) {
-                                       return LCStoreStaticArray::decode( $v );
-                               }, $data );
+                               return array_map( 'LCStoreStaticArray::decode', $data );
                        default:
                                throw new RuntimeException(
                                        'Unable to decode ' . var_export( $encoded, true ) );
@@ -119,13 +117,12 @@ class LCStoreStaticArray implements LCStore {
        }
 
        public function finishWrite() {
-               file_put_contents(
-                       $this->fname,
-                       "<?php\n" .
-                       "// Generated by LCStoreStaticArray.php -- do not edit!\n" .
-                       "return " .
-                       var_export( $this->data[$this->currentLang], true ) . ';'
+               $writer = new StaticArrayWriter();
+               $out = $writer->create(
+                       $this->data[$this->currentLang],
+                       'Generated by LCStoreStaticArray.php -- do not edit!'
                );
+               file_put_contents( $this->fname, $out );
                $this->currentLang = null;
                $this->fname = null;
        }