Esempio n. 1
0
 public function isValid($value)
 {
     $result = new Result(['value' => true]);
     foreach ($this->validators as $validator) {
         if ($result && method_exists($validator, 'getSkipOnPass') && $validator->getSkipOnPass()) {
             continue;
         }
         if (!$result && method_exists($validator, 'getSkipOnFail') && $validator->getSkipOnFail()) {
             continue;
         }
         $validatorResult = $validator->isValid($value);
         if (!$validatorResult->getValue()) {
             $result->setValue(false);
             foreach ($validatorResult->getMessages() as $message) {
                 $result->addMessage($message);
             }
             if (method_exists($validator, 'getHaltOnFail') && $validator->getHaltOnFail()) {
                 return $result;
             }
         }
         if (method_exists($validator, 'getHaltOnPass') && $validator->getHaltOnPass()) {
             return $result;
         }
     }
     return $result;
 }
Esempio n. 2
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (is_string($value)) {
         $value = trim($value);
     }
     if (!isset($value) || $value === null || $value === '') {
         $result->setValue(false);
         $result->addMessage('required');
     }
     if (is_array($value) && count($value) == 0) {
         $result->setValue(false);
         $result->addMessage('required');
     }
     return $result;
 }
Esempio n. 3
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!$this->length->isValid($value)->getValue()) {
         $result->setValue(false);
         $result->addMessage('passwordLength');
     }
     if (!preg_match($this->containAlphaRegEx, $value)) {
         $result->setValue(false);
         $result->addMessage('passwordAlpha');
     }
     if (!preg_match($this->containNumRegEx, $value)) {
         $result->setValue(false);
         $result->addMessage('passwordNum');
     }
     return $result;
 }
Esempio n. 4
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!preg_match($this->regex, $value)) {
         $result->setValue(false);
         $result->addMessage('alpha');
     }
     return $result;
 }
Esempio n. 5
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!$value instanceof \DateTime) {
         $result->setValue(false);
         $result->addMessage('date');
     }
     return $result;
 }
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!preg_match('/^\\d{1,2}$/', $value['month']) || !preg_match('/^\\d\\d\\d\\d$/', $value['year'])) {
         $result->setValue(false);
         $result->addMessage('creditCardExpiry');
         return $result;
     }
     $month = (int) $value['month'];
     $year = (int) $value['year'];
     $compareYear = date('Y');
     $compareMonth = date('n');
     if ($month < 1 || $month > 12 || $year < $compareYear || $year == $compareYear && $month < $compareMonth) {
         $result->setValue(false);
         $result->addMessage('creditCardExpiry');
     }
     return $result;
 }
Esempio n. 7
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!($value < $this->compare)) {
         $result->setValue(false);
         $result->addMessage('lessThan');
     }
     return $result;
 }
Esempio n. 8
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!($value === $this->compare && !$value instanceof \DateTime) && !($value instanceof \DateTime && $this->compare instanceof \DateTime && $value == $this->compare)) {
         $result->setValue(false);
         $result->addMessage('equal');
     }
     return $result;
 }
Esempio n. 9
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!is_numeric($value)) {
         $result->setValue(false);
         $result->addMessage('float');
     }
     return $result;
 }
Esempio n. 10
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if ($value !== true && $value !== false) {
         $result->setValue(false);
         $result->addMessage('boolean');
     }
     return $result;
 }
Esempio n. 11
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!is_string($value)) {
         $result->setValue(false);
         $result->addMessage('string');
     }
     return $result;
 }
Esempio n. 12
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     if (!preg_match('/' . $this->regex . '/', $value)) {
         $result->setValue(false);
         $result->addMessage(['regex', $this->regex]);
     }
     return $result;
 }
Esempio n. 13
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     $length = strlen($value);
     if ($length < $this->min || $length > $this->max) {
         $result->setValue(false);
         $result->addMessage(['length', $this->min, $this->max]);
     }
     return $result;
 }
Esempio n. 14
0
 public function isValid($value)
 {
     $result = new Result(["value" => true]);
     $value = preg_replace('/[- ]/', '', $value);
     foreach ($this->cardInfo as $regex) {
         if (preg_match('/^' . $regex . '$/', $value)) {
             return $result;
         }
     }
     $result->setValue(false);
     $result->addMessage('creditCard');
     return $result;
 }
Esempio n. 15
0
 /**
  * PHPca's main method. Returns a result object holding
  * error and warning messages for all the files that have been analyzed.
  *
  * @param string $pathToPhpExecutable path to PHP executable for lint check
  * @param string $fileOrDirectory     path to file or directory to check
  * @return object
  */
 public function run($pathToPhpExecutable, $fileOrDirectory, Configuration $configuration = null)
 {
     if ($pathToPhpExecutable == '') {
         throw new Exception('No path to PHP executable specified');
     }
     if ($fileOrDirectory == '') {
         throw new Exception('No file or directory to analyze');
     }
     if (!is_null($configuration)) {
         $this->configuration = $configuration;
     }
     // Define our own additionl T_* token constants
     Constants::init();
     // Set up the lint checker and make sure that given path points to a PHP binary
     $linter = new Linter($pathToPhpExecutable);
     // Create result object that collects the error and warning messages
     $this->result = new Result();
     // Create a list of all rules to enforce
     $this->rules = $this->loadRules($this->configuration->getRules());
     // List all PHP files in given path
     $phpFiles = $this->listFiles($fileOrDirectory, $this->configuration->getExtensions());
     if (sizeof($phpFiles) == 0) {
         throw new Exception('No PHP files to analyze');
     }
     $this->numberOfFiles = sizeof($phpFiles);
     foreach ($phpFiles as $phpFile) {
         // Remember that we have processed this file,
         // even if it generates no message at all.
         $this->result->addFile($phpFile);
         if ($this->isSkipped($phpFile)) {
             $this->result->addMessage(new Skipped($phpFile, 'Skipped'));
         } else {
             if ($linter->runLintCheck($phpFile)) {
                 $file = Tokenizer::tokenize($phpFile, file_get_contents($phpFile));
                 $this->result->addNamespaces($phpFile, $file->getNamespaces());
                 $this->result->addClasses($phpFile, $file->getClasses());
                 $this->result->addFunctions($phpFile, $file->getFunctions());
                 $this->enforceRules($phpFile, $file);
             } else {
                 $this->result->addMessage(new LintError($phpFile, $linter->getErrorMessages()));
             }
         }
         // Notify the progress printer that we have analyzed a file
         if (is_object($this->progressPrinter)) {
             $this->progressPrinter->showProgress($phpFile, $this->result, $this);
         }
         unset($phpFile);
     }
     // Return the result object containing all error and warning messages
     return $this->result;
 }
Esempio n. 16
0
 /**
  * @covers spriebsch\PHPca\Result::addMessage
  * @covers spriebsch\PHPca\Result::getNumberOfRuleErrors
  */
 public function testGetNumberOfRuleErrors()
 {
     $result = new Result();
     $result->addFile('testfile');
     $error = new RuleError('testfile', 'error message');
     $result->addMessage($error);
     $this->assertEquals(1, $result->getNumberOfRuleErrors('testfile'));
 }