From f6d65e533c62f6deb21342d4901ece24497b433e Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Thu, 4 Jun 2015 07:31:04 +0200 Subject: Update to MediaWiki 1.25.1 --- includes/libs/ReplacementArray.php | 125 +++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 includes/libs/ReplacementArray.php (limited to 'includes/libs/ReplacementArray.php') diff --git a/includes/libs/ReplacementArray.php b/includes/libs/ReplacementArray.php new file mode 100644 index 00000000..7fdb3093 --- /dev/null +++ b/includes/libs/ReplacementArray.php @@ -0,0 +1,125 @@ +data = $data; + } + + /** + * @return array + */ + public function __sleep() { + return array( 'data' ); + } + + public function __wakeup() { + $this->fss = false; + } + + /** + * Set the whole replacement array at once + * @param array $data + */ + public function setArray( $data ) { + $this->data = $data; + $this->fss = false; + } + + /** + * @return array|bool + */ + public function getArray() { + return $this->data; + } + + /** + * Set an element of the replacement array + * @param string $from + * @param string $to + */ + public function setPair( $from, $to ) { + $this->data[$from] = $to; + $this->fss = false; + } + + /** + * @param array $data + */ + public function mergeArray( $data ) { + $this->data = array_merge( $this->data, $data ); + $this->fss = false; + } + + /** + * @param ReplacementArray $other + */ + public function merge( ReplacementArray $other ) { + $this->data = array_merge( $this->data, $other->data ); + $this->fss = false; + } + + /** + * @param string $from + */ + public function removePair( $from ) { + unset( $this->data[$from] ); + $this->fss = false; + } + + /** + * @param array $data + */ + public function removeArray( $data ) { + foreach ( $data as $from => $to ) { + $this->removePair( $from ); + } + $this->fss = false; + } + + /** + * @param string $subject + * @return string + */ + public 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; + } +} -- cgit v1.2.3-54-g00ecf