assertRequiredOptions( self::CONSTRUCTOR_OPTIONS ); // Multiple $this->options = $options; $this->loggerFactory = $loggerFactory; // EditFilterMergedContentHookConstraint $this->hookContainer = $hookContainer; // ReadOnlyConstraint $this->readOnlyMode = $readOnlyMode; // SpamRegexConstraint $this->spamRegexChecker = $spamRegexChecker; // LinkPurgeRateLimitConstraint $this->rateLimiter = $rateLimiter; } /** * @param Content $content * @param IContextSource $context * @param string $summary * @param bool $minorEdit * @param Language $language * @param User $user * @return EditFilterMergedContentHookConstraint */ public function newEditFilterMergedContentHookConstraint( Content $content, IContextSource $context, string $summary, bool $minorEdit, Language $language, User $user ): EditFilterMergedContentHookConstraint { return new EditFilterMergedContentHookConstraint( $this->hookContainer, $content, $context, $summary, $minorEdit, $language, $user ); } /** * @param int $contentSize * @param string $type * @return PageSizeConstraint */ public function newPageSizeConstraint( int $contentSize, string $type ): PageSizeConstraint { return new PageSizeConstraint( $this->options->get( MainConfigNames::MaxArticleSize ), $contentSize, $type ); } public function newReadOnlyConstraint(): ReadOnlyConstraint { return new ReadOnlyConstraint( $this->readOnlyMode ); } /** * @param RateLimitSubject $subject * * @return LinkPurgeRateLimitConstraint */ public function newLinkPurgeRateLimitConstraint( RateLimitSubject $subject ): LinkPurgeRateLimitConstraint { return new LinkPurgeRateLimitConstraint( $this->rateLimiter, $subject ); } /** * @param string $input * @param UserIdentity $user * @param Title $title * @return SimpleAntiSpamConstraint */ public function newSimpleAntiSpamConstraint( string $input, UserIdentity $user, Title $title ): SimpleAntiSpamConstraint { return new SimpleAntiSpamConstraint( $this->loggerFactory->getLogger( 'SimpleAntiSpam' ), $input, $user, $title ); } /** * @param string $summary * @param ?string $sectionHeading * @param string $text * @param string $reqIP * @param Title $title * @return SpamRegexConstraint */ public function newSpamRegexConstraint( string $summary, ?string $sectionHeading, string $text, string $reqIP, Title $title ): SpamRegexConstraint { return new SpamRegexConstraint( $this->loggerFactory->getLogger( 'SpamRegex' ), $this->spamRegexChecker, $summary, $sectionHeading, $text, $reqIP, $title ); } }