From 89b350232212b1065ba564f8fde3e57fa29b8340 Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Wed, 28 Jan 2015 21:21:46 -0800 Subject: [PATCH] Move ReplacementArray into includes/libs/ Change-Id: I95b748c77522027753fb5bd0237f25e254938c16 --- autoload.php | 2 +- includes/libs/ReplacementArray.php | 125 +++++++++++++++++++++++++++++ includes/utils/StringUtils.php | 106 ------------------------ 3 files changed, 126 insertions(+), 107 deletions(-) create mode 100644 includes/libs/ReplacementArray.php diff --git a/autoload.php b/autoload.php index dc9ef1977a..e6f0f89bd7 100644 --- a/autoload.php +++ b/autoload.php @@ -957,7 +957,7 @@ $wgAutoloadLocalClasses = array( 'RemoveUnusedAccounts' => __DIR__ . '/maintenance/removeUnusedAccounts.php', 'RenameDbPrefix' => __DIR__ . '/maintenance/renameDbPrefix.php', 'RenderAction' => __DIR__ . '/includes/actions/RenderAction.php', - 'ReplacementArray' => __DIR__ . '/includes/utils/StringUtils.php', + 'ReplacementArray' => __DIR__ . '/includes/libs/ReplacementArray.php', 'Replacer' => __DIR__ . '/includes/libs/replacers/Replacer.php', 'RepoGroup' => __DIR__ . '/includes/filerepo/RepoGroup.php', 'RequestContext' => __DIR__ . '/includes/context/RequestContext.php', diff --git a/includes/libs/ReplacementArray.php b/includes/libs/ReplacementArray.php new file mode 100644 index 0000000000..8c8c0101c4 --- /dev/null +++ b/includes/libs/ReplacementArray.php @@ -0,0 +1,125 @@ +data = $data; + } + + /** + * @return array + */ + function __sleep() { + return array( 'data' ); + } + + function __wakeup() { + $this->fss = false; + } + + /** + * Set the whole replacement array at once + * @param array $data + */ + function setArray( $data ) { + $this->data = $data; + $this->fss = false; + } + + /** + * @return array|bool + */ + function getArray() { + return $this->data; + } + + /** + * Set an element of the replacement array + * @param string $from + * @param string $to + */ + function setPair( $from, $to ) { + $this->data[$from] = $to; + $this->fss = false; + } + + /** + * @param array $data + */ + function mergeArray( $data ) { + $this->data = array_merge( $this->data, $data ); + $this->fss = false; + } + + /** + * @param ReplacementArray $other + */ + function merge( $other ) { + $this->data = array_merge( $this->data, $other->data ); + $this->fss = false; + } + + /** + * @param string $from + */ + function removePair( $from ) { + unset( $this->data[$from] ); + $this->fss = false; + } + + /** + * @param array $data + */ + function removeArray( $data ) { + foreach ( $data as $from => $to ) { + $this->removePair( $from ); + } + $this->fss = false; + } + + /** + * @param string $subject + * @return string + */ + function replace( $subject ) { + if ( function_exists( 'fss_prep_replace' ) ) { + if ( $this->fss === false ) { + $this->fss = fss_prep_replace( $this->data ); + } + $result = fss_exec_replace( $this->fss, $subject ); + } else { + $result = strtr( $subject, $this->data ); + } + + return $result; + } +} diff --git a/includes/utils/StringUtils.php b/includes/utils/StringUtils.php index 3f2def2745..77fff595bd 100644 --- a/includes/utils/StringUtils.php +++ b/includes/utils/StringUtils.php @@ -315,109 +315,3 @@ class StringUtils { } } } - -/** - * Replacement array for FSS with fallback to strtr() - * Supports lazy initialisation of FSS resource - */ -class ReplacementArray { - private $data = false; - private $fss = false; - - /** - * Create an object with the specified replacement array - * The array should have the same form as the replacement array for strtr() - * @param array $data - */ - function __construct( $data = array() ) { - $this->data = $data; - } - - /** - * @return array - */ - function __sleep() { - return array( 'data' ); - } - - function __wakeup() { - $this->fss = false; - } - - /** - * Set the whole replacement array at once - * @param array $data - */ - function setArray( $data ) { - $this->data = $data; - $this->fss = false; - } - - /** - * @return array|bool - */ - function getArray() { - return $this->data; - } - - /** - * Set an element of the replacement array - * @param string $from - * @param string $to - */ - function setPair( $from, $to ) { - $this->data[$from] = $to; - $this->fss = false; - } - - /** - * @param array $data - */ - function mergeArray( $data ) { - $this->data = array_merge( $this->data, $data ); - $this->fss = false; - } - - /** - * @param ReplacementArray $other - */ - function merge( $other ) { - $this->data = array_merge( $this->data, $other->data ); - $this->fss = false; - } - - /** - * @param string $from - */ - function removePair( $from ) { - unset( $this->data[$from] ); - $this->fss = false; - } - - /** - * @param array $data - */ - function removeArray( $data ) { - foreach ( $data as $from => $to ) { - $this->removePair( $from ); - } - $this->fss = false; - } - - /** - * @param string $subject - * @return string - */ - function replace( $subject ) { - if ( function_exists( 'fss_prep_replace' ) ) { - if ( $this->fss === false ) { - $this->fss = fss_prep_replace( $this->data ); - } - $result = fss_exec_replace( $this->fss, $subject ); - } else { - $result = strtr( $subject, $this->data ); - } - - return $result; - } -} -- 2.20.1