mExceptionID = $exception_id; $this->mPosition = $position; $this->mParams = $params; parent::__construct( $exception_id ); } /** * @return int */ public function getPosition() : int { return $this->mPosition; } /** * Returns the error message for use in logs * * @return string */ public function getMessageForLogs() : string { return "ID: {$this->mExceptionID}; position: {$this->mPosition}; params: " . implode( $this->mParams ); } /** * @return Message */ public function getMessageObj() : Message { // Give grep a chance to find the usages: // abusefilter-exception-unexpectedatend, abusefilter-exception-expectednotfound // abusefilter-exception-unrecognisedkeyword, abusefilter-exception-unexpectedtoken // abusefilter-exception-unclosedstring, abusefilter-exception-invalidoperator // abusefilter-exception-unrecognisedtoken, abusefilter-exception-noparams // abusefilter-exception-dividebyzero, abusefilter-exception-unrecognisedvar // abusefilter-exception-notenoughargs, abusefilter-exception-regexfailure // abusefilter-exception-overridebuiltin, abusefilter-exception-outofbounds // abusefilter-exception-notarray, abusefilter-exception-unclosedcomment // abusefilter-exception-invalidiprange, abusefilter-exception-disabledvar // abusefilter-exception-variablevariable, abusefilter-exception-toomanyargs // abusefilter-exception-negativeoffset return new Message( 'abusefilter-exception-' . $this->mExceptionID, array_merge( [ $this->mPosition ], $this->mParams ) ); } }