/** * Pobla los atributos de la clase o objeto especificado con los parametros provenientes en el request actual * * Si el primer parametro es una clase el colector crea un instancia de esta. * Si el primer paremtro es un objeto lo usa para poblar segun los parametros del request. * * @param string/object $class clase u objeto a poblar * @param array $matcher un array con el macheo de parametros que no conciden con los atributos de la clase. ejemplo array('nombre'=>'nombre_c') en el ejemplo nombre es el parametro que viene en el request y nombre_c el que esta en la clase, el colector pone el valor de nombre en nombre_c * @return mixed */ public function collector($class, $matcher = array()) { $classTo = $class; if (!is_object($classTo)) { $alias = new ItemList(explode(':', $classTo)); if ($alias->size() > 1) { $classTo = $alias->get(0); $namespace = $this->getStore()->getManager()->getConfiguration()->getEntityNamespace($classTo); $namespace .= '\\' . $alias->get(1); $classTo = $namespace; } $classTo = new $classTo(); } return Collector::run($classTo, new ItemList($this->app->request()->params()), $matcher); }