/** * @test */ public function shouldReturnComplexType() { //when $parser = new ComplexTypeParser('string', 'name'); //then $this->assertEquals('string', $parser->getType()); }
/** * @param string $types * @return ComplexTypeParser[] */ public static function create($types) { preg_match_all('#@(\\((?:.+)\\)|(?:.+?))(?: |$)#', $types, $matches); $typesArray = $matches[1]; $obj = array_map(function ($type) { if (ComplexTypeParser::isReflectionType($type)) { $type = str_replace(array('(', ')'), '', $type); } else { $type = str_replace('=', ' ', $type); } $parser = new ParameterParser($type, ''); return $parser->parse(); }, $typesArray); return $obj; }
public function complexTypes() { if (!$this->isComplex()) { throw new ParameterParserException("This parameter is not complex type."); } preg_match("#(@.+)#", $this->_parameter, $complexTypes); return ComplexTypeParser::create($complexTypes[1]); }