/** * ORM\PrePersist() * ORM\PreUpdate() */ public function populate() { $i = 0; $fieldsCollection = new \Doctrine\Common\Collections\ArrayCollection(); $outFieldsCollection = new \Doctrine\Common\Collections\ArrayCollection(); $fields = array(); $out_fields = array(); preg_match_all('/%[a-z_.\\-]+%/', $this->getUri(), $find1); $fields = array_merge($fields, $find1[0]); preg_match_all('/%[a-z_.\\-]+%/', $this->getHeader(), $find2); $fields = array_merge($fields, $find2[0]); preg_match_all('/%[a-z_.\\-]+%/', $this->getExample(), $find3); $fields = array_merge($fields, $find3[0]); if (count($fields) > 0) { foreach ($fields as $field_name) { $field = new Field(); $field->setService($this); $field->setOrderField($i++); $field->setField($field_name); if (isset($this->_input[$field_name])) { $field->setRequired($this->_input[$field_name]->getRequired()); $field->setDescription($this->_input[$field_name]->getDescription()); } else { if ($field_name == '%token%') { $field->setRequired('SI'); $field->setDescription("Token restituito dall'autenticazione"); } } $fieldsCollection->add($field); } $this->setFields($fieldsCollection); } preg_match_all('/%[a-z_.\\-]+%/', $this->getOutput(), $find4); $out_fields = array_merge($out_fields, $find4[0]); if (count($out_fields) > 0) { foreach ($out_fields as $field_name) { $field = new OutField(); $field->setField($field_name); $field->setService($this); $field->setOrderField($i++); if (isset($this->_output[$field_name])) { $field->setRequired($this->_output[$field_name]->getRequired()); $field->setDescription($this->_output[$field_name]->getDescription()); } else { if ($field_name == '%token%') { $field->setRequired('SI'); $field->setDescription("Token restituito dall'autenticazione da usare nell'header nelle chiamate future"); } } $outFieldsCollection->add($field); } $this->setOutFields($outFieldsCollection); } preg_match_all('/<\\/[a-z_.\\-]+>[^<]+[.]{3}/', $this->getOutput(), $find5); $out_fields = $find5[0]; if (count($out_fields) > 0) { foreach ($out_fields as $field_name) { $field_name = trim(str_replace(array('/', '...'), array('', ''), $field_name)); $field = new OutField(); $field->setField($field_name); $field->setService($this); $field->setOrderField($i++); if (isset($this->_output[$field_name])) { $field->setRequired($this->_output[$field_name]->getRequired()); $field->setDescription($this->_output[$field_name]->getDescription()); } else { $field->setRequired('Ripetibile'); $field->setDescription("il tag {$field_name} si può ripetere"); } $outFieldsCollection->add($field); } $this->setOutFields($outFieldsCollection); } }