mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 15:51:48 +03:00
Allow parsers to remove/replace root parameters.
This commit is contained in:
parent
8fe99a9c45
commit
06cfe9d48b
@ -390,6 +390,9 @@ class ApiDocExtractor
|
|||||||
* - Array parameters are recursively merged.
|
* - Array parameters are recursively merged.
|
||||||
* - Non-null default values prevail over null default values. Later values overrides previous defaults.
|
* - Non-null default values prevail over null default values. Later values overrides previous defaults.
|
||||||
*
|
*
|
||||||
|
* However, if newly-returned parameter array contains a parameter with NULL, the parameter is removed from the merged results.
|
||||||
|
* If the parameter is not present in the newly-returned array, then it is left as-is.
|
||||||
|
*
|
||||||
* @param array $p1 The pre-existing parameters array.
|
* @param array $p1 The pre-existing parameters array.
|
||||||
* @param array $p2 The newly-returned parameters array.
|
* @param array $p2 The newly-returned parameters array.
|
||||||
* @return array The resulting, merged array.
|
* @return array The resulting, merged array.
|
||||||
@ -399,9 +402,15 @@ class ApiDocExtractor
|
|||||||
$params = $p1;
|
$params = $p1;
|
||||||
|
|
||||||
foreach ($p2 as $propname => $propvalue) {
|
foreach ($p2 as $propname => $propvalue) {
|
||||||
|
|
||||||
|
if ($propvalue === null) {
|
||||||
|
unset($params[$propname]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!isset($p1[$propname])) {
|
if (!isset($p1[$propname])) {
|
||||||
$params[$propname] = $propvalue;
|
$params[$propname] = $propvalue;
|
||||||
} else {
|
} elseif (is_array($propvalue)) {
|
||||||
$v1 = $p1[$propname];
|
$v1 = $p1[$propname];
|
||||||
|
|
||||||
foreach ($propvalue as $name => $value) {
|
foreach ($propvalue as $name => $value) {
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
<parameter key="nelmio_api_doc.extractor.handler.jms_security.class">Nelmio\ApiDocBundle\Extractor\Handler\JmsSecurityExtraHandler</parameter>
|
<parameter key="nelmio_api_doc.extractor.handler.jms_security.class">Nelmio\ApiDocBundle\Extractor\Handler\JmsSecurityExtraHandler</parameter>
|
||||||
<parameter key="nelmio_api_doc.extractor.handler.sensio_framework_extra.class">Nelmio\ApiDocBundle\Extractor\Handler\SensioFrameworkExtraHandler</parameter>
|
<parameter key="nelmio_api_doc.extractor.handler.sensio_framework_extra.class">Nelmio\ApiDocBundle\Extractor\Handler\SensioFrameworkExtraHandler</parameter>
|
||||||
<parameter key="nelmio_api_doc.extractor.handler.phpdoc.class">Nelmio\ApiDocBundle\Extractor\Handler\PhpDocHandler</parameter>
|
<parameter key="nelmio_api_doc.extractor.handler.phpdoc.class">Nelmio\ApiDocBundle\Extractor\Handler\PhpDocHandler</parameter>
|
||||||
|
|
||||||
|
<parameter key="nelmio_api_doc.parser.collection_parser.class">Nelmio\ApiDocBundle\Parser\CollectionParser</parameter>
|
||||||
</parameters>
|
</parameters>
|
||||||
|
|
||||||
<services>
|
<services>
|
||||||
@ -52,6 +54,10 @@
|
|||||||
<argument type="service" id="nelmio_api_doc.doc_comment_extractor" />
|
<argument type="service" id="nelmio_api_doc.doc_comment_extractor" />
|
||||||
<tag name="nelmio_api_doc.extractor.handler"/>
|
<tag name="nelmio_api_doc.extractor.handler"/>
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service id="nelmio_api_doc.parser.collection_parser" class="%nelmio_api_doc.parser.collection_parser.class%">
|
||||||
|
<tag name="nelmio_api_doc.extractor.parser" />
|
||||||
|
</service>
|
||||||
</services>
|
</services>
|
||||||
|
|
||||||
</container>
|
</container>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user