wiki.techinc.nl/includes/libs/ReplacementArray.php
Umherirrender 512aadac31 Use type declaration for class properties holding type hinted arguments
Provided arguments already have type declaration on the construtor
and it is safe to use the same type on the class property

Change-Id: Ia8bbdc4dee59dfb487582dd514486ec8542951be
2024-09-11 20:08:50 +00:00

109 lines
2.4 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
namespace MediaWiki\Language;
/**
* Wrapper around strtr() that holds replacements
*/
class ReplacementArray {
private array $data;
/**
* Create an object with the specified replacement array
* The array should have the same form as the replacement array for strtr()
* @param array $data
*/
public function __construct( array $data = [] ) {
$this->data = $data;
}
/**
* @return array
*/
public function __sleep() {
return [ 'data' ];
}
/**
* Set the whole replacement array at once
* @param array $data
*/
public function setArray( array $data ) {
$this->data = $data;
}
/**
* @return array
*/
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;
}
/**
* @param array $data
*/
public function mergeArray( $data ) {
$this->data = $data + $this->data;
}
/**
* @param ReplacementArray $other
*/
public function merge( ReplacementArray $other ) {
$this->data = $other->data + $this->data;
}
/**
* @param string $from
*/
public function removePair( $from ) {
unset( $this->data[$from] );
}
/**
* @param array $data
*/
public function removeArray( $data ) {
foreach ( $data as $from => $to ) {
$this->removePair( $from );
}
}
/**
* @param string $subject
* @return string
*/
public function replace( $subject ) {
return strtr( $subject, $this->data );
}
}
/** @deprecated class alias since 1.43 */
class_alias( ReplacementArray::class, 'ReplacementArray' );