11use Psr\Log\LoggerInterface;
24 private LoggerInterface $logger;
31 private $constraints = [];
38 $this->logger = LoggerFactory::getInstance(
'EditConstraintRunner' );
51 $this->constraints[] = $constraint;
59 foreach ( $constraints as $constraint ) {
70 foreach ( $this->constraints as $constraint ) {
71 $status = $constraint->checkConstraint();
72 $this->logConstraintCheck( $constraint, $status );
74 if ( !$status->isOK() ) {
75 $status->setFailedConstraint( $constraint );
93 foreach ( $this->constraints as $constraint ) {
94 $constraintStatus = $constraint->checkConstraint();
95 $this->logConstraintCheck( $constraint, $constraintStatus );
96 $statusValue->merge( $constraintStatus );
107 if ( $status->isOK() ) {
108 $this->logger->debug(
109 'Check for {name} succeeded',
111 'name' => $constraint->
getName(),
116 'Check for {name} failed',
118 'name' => $constraint->
getName(),
if(!defined('MW_SETUP_CALLBACK'))
Back end to process the edit constraints.
addConstraint(EditConstraint $constraint)
Add a constraint to check.
checkAllConstraints()
Run all constraint checks and merge the returned statuses.
addConstraints(EditConstraint ... $constraints)
Add multiple edit constraints to check.
checkConstraints()
Run constraint checks until one fails.
__construct(EditConstraint ... $constraints)
Create a new runner.
Abstract class for all constraints that can prevent edits.
Status returned by edit constraints and other page editing checks.
static newGood( $value=null)
Factory function for good results.