logger = $logger; $this->spamChecker = $spamChecker; $this->summary = $summary; $this->sectionHeading = $sectionHeading; $this->text = $text; $this->reqIP = $reqIP; $this->title = $title; } public function checkConstraint(): string { $match = $this->spamChecker->checkSummary( $this->summary ); if ( $match === false && $this->sectionHeading !== null ) { // If the section isn't new, the $this->sectionHeading is null $match = $this->spamChecker->checkContent( $this->sectionHeading ); } if ( $match === false ) { $match = $this->spamChecker->checkContent( $this->text ); } if ( $match === false ) { return self::CONSTRAINT_PASSED; } $this->match = $match; $this->logger->debug( '{ip} spam regex hit [[{title}]]: "{match}"', [ 'ip' => $this->reqIP, 'title' => $this->title->getPrefixedDBkey(), 'match' => str_replace( "\n", '', $match ) ] ); return self::CONSTRAINT_FAILED; } public function getLegacyStatus(): StatusValue { $statusValue = StatusValue::newGood(); if ( $this->match !== '' ) { $match = str_replace( "\n", '', $this->match ); $statusValue->fatal( 'spamprotectionmatch', $match ); $statusValue->value = self::AS_SPAM_ERROR; } return $statusValue; } public function getMatch(): string { return $this->match; } }