86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
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 {
|
|
|
|
|
|
|