/** * @param $nsCode namespace code * @param $decoded decoded page name. URL-decoded, using normalized spaces (not underscores), first letter uppercase. */ public function __construct($nsCode, $decoded) { PhpUtil::assertInteger($nsCode, 'namespace code'); if (!isset(self::$nsNames[$nsCode])) { throw new \InvalidArgumentException('unknown namespace code ' . $nsCode); } PhpUtil::assertString($decoded, 'page name'); if (strlen($decoded) === 0) { throw new WikiParserException('page name must not be empty'); } $this->nsCode = $nsCode; $this->nsName = self::$nsNames[$nsCode][0]; $this->encoded = WikiUtil::wikiEncode($decoded); // re-decode to make sure name is normalized $this->decoded = WikiUtil::wikiDecode($this->encoded); }