Le fichier Zend/Soap/Wsdl/Strategy/DefaultComplexType.php a été modifié pour générer la documentation automatiquement. /** * Traitement éléments de documentation à placer dans le WSDL * Supprime les retours chariots. * Récupére les éléments de documentation */ $comment = ''; $docBlock = preg_replace('/\n/', '', $property->getDocComment() ); if (preg_match('/\/\*\*(.+) \* @var\s+[^\s]+/m', $docBlock, $docBlockMatches)) { $comment.= preg_replace( array('/\r/', '/\t\s\*/', '/@ref\s+[^\s]+/'), array('', '', ''), $docBlockMatches[1] ); } if (preg_match('/@var\s+[^\s]+\s+(.+)/m', $docBlock, $docBlockMatches)) { $comment.= preg_replace( array('/\r/', '/\t\s\*/', '/@ref\s+[^\s]+/'), array('', '', ''), $docBlockMatches[1] ); } /** * Traitement des références * @ref fichier:titre:nom_du_fichier * => http://vhost/ref/fichier/ * @ref mysql:titre:db.table(col1,col2,....) * => http://vhost/ref/table/ */ if (preg_match_all('/@ref\s+(fichier|mysql):([^\s]+):([^\s]+)/m', $property->getDocComment(), $refMatches, PREG_SET_ORDER)){ $host = $_SERVER['SERVER_NAME']; $urlFichier = '/ref/fichier/'; $urlMysql = '/ref/table/'; $comment.= 'Référence(s) : '; foreach ($refMatches as $ref){ switch ($ref[0]){ case 'fichier': $comment.= $ref[1].'('.$host.$urlFichier.'?q='.$ref[2].')'; break; case 'mysql': $comment.= $ref[1].'('.$host.$urlMysql.'?q='.base64_encode($ref[2]).')'; break; } $comment.= ', '; } } /** * Ajout des éléments de documentation au WSDL */ if (!empty($comment)){ $annotation = $dom->createElement('xsd:annotation'); $documentation = $dom->createElement('xsd:documentation', trim($comment)); $annotation->appendChild($documentation); $element->appendChild($annotation); } ===============================================================================> Le fichier Zend/Soap/AutoDiscover.php a été modifié function _addFunctionToWsdl $sequenceElement = array( 'name' => $param->getName(), 'type' => $wsdl->getType($param->getType()), 'desc' => $param->getDescription() ); ===============================================================================> Le fichier Zend/Soap/Wsdl.php a été modifié function _parseElement } elseif ($key == 'desc') { if (!empty($value)) { $annotation = $this->_dom->createElement('xsd:annotation'); $documentation = $this->_dom->createElement('xsd:documentation', trim($value)); $annotation->appendChild($documentation); $elementXml->appendChild($annotation); } } else {