/** * @return $this * @throws \JBZoo\SimpleTypes\Exception */ public function __invoke() { $args = func_get_args(); $argsCount = count($args); if ($argsCount === 0) { $this->error('Undefined arguments'); } elseif ($argsCount === 1) { $rules = $this->_formatter->getList(); if (array_key_exists($args[0], $rules)) { return $this->convert($args[0]); } else { return $this->set($args[0]); } } elseif ($argsCount === 2) { return $this->set(array($args[0], $args[1])); } throw new Exception($this->_type . ': Too many arguments'); }