/**
  * @param mixed $other
  * @return bool
  */
 public function matches($other)
 {
     $this->validator = new Validator();
     $this->validator->addModel($this->model);
     $valid = $this->validator->validate($this->model->getName(), $other);
     return $valid;
 }
 private function processLibrary(Validator $validator)
 {
     foreach ($this->library as $id => $model) {
         //$this->processModel ($validator, $model);
         $validator->addModel($this->getModel($id));
     }
 }
 /**
  * @test
  */
 public function testSimpleOptionalArray()
 {
     $validator = new Validator();
     $model = Model::make('ArrayModel', array('id' => 'required|int', 'collection' => array('count' => 'int|required', 'items[]?' => 'int')));
     $validator->addModel($model);
     $correctData = array('id' => 1, 'collection' => array('count' => 2, 'items' => array(1, 2, 3)));
     $this->assertTrue($validator->validate('ArrayModel', $correctData));
     $incorrectData = array('id' => 1, 'collection' => array('count' => 2));
     $this->assertTrue($validator->validate('ArrayModel', $incorrectData));
 }
<?php

use CatLab\Validator\Models\Model;
use CatLab\Validator\Validator;
require '../vendor/autoload.php';
$validator = new Validator();
$model = Model::make('ArrayModel', array('id' => 'required|int', 'collection' => array('count' => 'int|required', 'items[]' => 'int')));
$validator->addModel($model);
$correctData = array('id' => 1, 'collection' => array('count' => 2, 'items' => array(1, 2, 3)));
var_dump($validator->validate('ArrayModel', $correctData));