<?php
/**
- * Representation of a page title within %MediaWiki.
+ * Representation of a page title within MediaWiki.
*
* 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
* http://www.gnu.org/copyleft/gpl.html
*
* @file
- * @license GPL 2+
* @author Daniel Kinzler
*/
use MediaWiki\Linker\LinkTarget;
use Wikimedia\Assert\Assert;
+use Wikimedia\Assert\ParameterTypeException;
/**
- * Represents a page (or page fragment) title within %MediaWiki.
+ * Represents a page (or page fragment) title within MediaWiki.
*
* @note In contrast to Title, this is designed to be a plain value object. That is,
* it is immutable, does not use global state, and causes no side effects.
* @throws InvalidArgumentException
*/
public function __construct( $namespace, $dbkey, $fragment = '', $interwiki = '' ) {
- Assert::parameterType( 'integer', $namespace, '$namespace' );
- Assert::parameterType( 'string', $dbkey, '$dbkey' );
- Assert::parameterType( 'string', $fragment, '$fragment' );
- Assert::parameterType( 'string', $interwiki, '$interwiki' );
+ if ( !is_int( $namespace ) ) {
+ throw new ParameterTypeException( '$namespace', 'int' );
+ }
+ if ( !is_string( $dbkey ) ) {
+ throw new ParameterTypeException( '$dbkey', 'string' );
+ }
+ if ( !is_string( $fragment ) ) {
+ throw new ParameterTypeException( '$fragment', 'string' );
+ }
+ if ( !is_string( $interwiki ) ) {
+ throw new ParameterTypeException( '$interwiki', 'string' );
+ }
// Sanity check, no full validation or normalization applied here!
Assert::parameter( !preg_match( '/^_|[ \r\n\t]|_$/', $dbkey ), '$dbkey',