Handle the prefix form when parseForm.

Cf. #166 and thanks to @madesst.
This commit is contained in:
Benjamin Laugueux 2013-04-30 16:19:00 +02:00
parent 867f82d97d
commit 6859384983
3 changed files with 97 additions and 97 deletions

View File

@ -73,7 +73,7 @@ class FormTypeParser implements ParserInterface
$form = $this->formFactory->create($type); $form = $this->formFactory->create($type);
return $this->parseForm($form); return $this->parseForm($form, $form->getName());
} }
private function parseForm($form, $prefix = null) private function parseForm($form, $prefix = null)

View File

@ -87,18 +87,18 @@ _create test_
#### Parameters #### #### Parameters ####
a: test_type[a]:
* type: string * type: string
* required: true * required: true
* description: A nice description * description: A nice description
b: test_type[b]:
* type: string * type: string
* required: false * required: false
c: test_type[c]:
* type: boolean * type: boolean
* required: true * required: true
@ -117,18 +117,18 @@ _create test_
#### Parameters #### #### Parameters ####
a: test_type[a]:
* type: string * type: string
* required: true * required: true
* description: A nice description * description: A nice description
b: test_type[b]:
* type: string * type: string
* required: false * required: false
c: test_type[c]:
* type: boolean * type: boolean
* required: true * required: true
@ -156,7 +156,7 @@ _create another test_
#### Parameters #### #### Parameters ####
a: dependency_type[a]:
* type: string * type: string
* required: true * required: true
@ -291,7 +291,7 @@ _Testing return_
#### Response #### #### Response ####
a: dependency_type[a]:
* type: string * type: string
* description: A nice description * description: A nice description

View File

@ -25,34 +25,34 @@ class SimpleFormatterTest extends WebTestCase
restore_error_handler(); restore_error_handler();
$result = $container->get('nelmio_api_doc.formatter.simple_formatter')->format($data); $result = $container->get('nelmio_api_doc.formatter.simple_formatter')->format($data);
$expected = array ( $expected = array(
'/tests' => '/tests' =>
array ( array(
0 => 0 =>
array ( array(
'method' => 'GET', 'method' => 'GET',
'uri' => '/tests.{_format}', 'uri' => '/tests.{_format}',
'description' => 'index action', 'description' => 'index action',
'filters' => 'filters' =>
array ( array(
'a' => 'a' =>
array ( array(
'dataType' => 'integer', 'dataType' => 'integer',
), ),
'b' => 'b' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'arbitrary' => 'arbitrary' =>
array ( array(
0 => 'arg1', 0 => 'arg1',
1 => 'arg2', 1 => 'arg2',
), ),
), ),
), ),
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -63,30 +63,30 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
1 => 1 =>
array ( array(
'method' => 'GET', 'method' => 'GET',
'uri' => '/tests.{_format}', 'uri' => '/tests.{_format}',
'description' => 'index action', 'description' => 'index action',
'filters' => 'filters' =>
array ( array(
'a' => 'a' =>
array ( array(
'dataType' => 'integer', 'dataType' => 'integer',
), ),
'b' => 'b' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'arbitrary' => 'arbitrary' =>
array ( array(
0 => 'arg1', 0 => 'arg1',
1 => 'arg2', 1 => 'arg2',
), ),
), ),
), ),
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -97,29 +97,29 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
2 => 2 =>
array ( array(
'method' => 'POST', 'method' => 'POST',
'uri' => '/tests.{_format}', 'uri' => '/tests.{_format}',
'host' => 'api.test.dev', 'host' => 'api.test.dev',
'description' => 'create test', 'description' => 'create test',
'parameters' => 'parameters' =>
array ( array(
'a' => 'test_type[a]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
), ),
'b' => 'test_type[b]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => false, 'required' => false,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
), ),
'c' => 'test_type[c]' =>
array ( array(
'dataType' => 'boolean', 'dataType' => 'boolean',
'required' => true, 'required' => true,
'description' => '', 'description' => '',
@ -127,9 +127,9 @@ class SimpleFormatterTest extends WebTestCase
), ),
), ),
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -140,29 +140,29 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
3 => 3 =>
array ( array(
'method' => 'POST', 'method' => 'POST',
'uri' => '/tests.{_format}', 'uri' => '/tests.{_format}',
'host' => 'api.test.dev', 'host' => 'api.test.dev',
'description' => 'create test', 'description' => 'create test',
'parameters' => 'parameters' =>
array ( array(
'a' => 'test_type[a]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
), ),
'b' => 'test_type[b]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => false, 'required' => false,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
), ),
'c' => 'test_type[c]' =>
array ( array(
'dataType' => 'boolean', 'dataType' => 'boolean',
'required' => true, 'required' => true,
'description' => '', 'description' => '',
@ -170,9 +170,9 @@ class SimpleFormatterTest extends WebTestCase
), ),
), ),
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -184,16 +184,16 @@ class SimpleFormatterTest extends WebTestCase
), ),
), ),
'others' => 'others' =>
array ( array(
0 => 0 =>
array ( array(
'method' => 'POST', 'method' => 'POST',
'uri' => '/another-post', 'uri' => '/another-post',
'description' => 'create another test', 'description' => 'create another test',
'parameters' => 'parameters' =>
array ( array(
'a' => 'dependency_type[a]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
@ -205,7 +205,7 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
1 => 1 =>
array ( array(
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/any', 'uri' => '/any',
'description' => 'Action without HTTP verb', 'description' => 'Action without HTTP verb',
@ -214,14 +214,14 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
2 => 2 =>
array ( array(
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/any/{foo}', 'uri' => '/any/{foo}',
'description' => 'Action without HTTP verb', 'description' => 'Action without HTTP verb',
'requirements' => 'requirements' =>
array ( array(
'foo' => 'foo' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -232,7 +232,7 @@ class SimpleFormatterTest extends WebTestCase
'deprecated' => false, 'deprecated' => false,
), ),
3 => 3 =>
array ( array(
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/authenticated', 'uri' => '/authenticated',
'https' => false, 'https' => false,
@ -245,59 +245,59 @@ class SimpleFormatterTest extends WebTestCase
'uri' => '/jms-input-test', 'uri' => '/jms-input-test',
'description' => 'Testing JMS', 'description' => 'Testing JMS',
'parameters' => 'parameters' =>
array ( array(
'foo' => 'foo' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'bar' => 'bar' =>
array ( array(
'dataType' => 'DateTime', 'dataType' => 'DateTime',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => true, 'readonly' => true,
), ),
'number' => 'number' =>
array ( array(
'dataType' => 'double', 'dataType' => 'double',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'arr' => 'arr' =>
array ( array(
'dataType' => 'array', 'dataType' => 'array',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'nested' => 'nested' =>
array ( array(
'dataType' => 'object (JmsNested)', 'dataType' => 'object (JmsNested)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
'children' => 'children' =>
array ( array(
'foo' => 'foo' =>
array ( array(
'dataType' => 'DateTime', 'dataType' => 'DateTime',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => true, 'readonly' => true,
), ),
'bar' => 'bar' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'baz' => 'baz' =>
array ( array(
'dataType' => 'array of integers', 'dataType' => 'array of integers',
'required' => false, 'required' => false,
'description' => 'Epic description. 'description' => 'Epic description.
@ -306,57 +306,57 @@ With multiple lines.',
'readonly' => false, 'readonly' => false,
), ),
'circular' => 'circular' =>
array ( array(
'dataType' => 'object (JmsNested)', 'dataType' => 'object (JmsNested)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'parent' => 'parent' =>
array ( array(
'dataType' => 'object (JmsTest)', 'dataType' => 'object (JmsTest)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
'children' => 'children' =>
array ( array(
'foo' => 'foo' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'bar' => 'bar' =>
array ( array(
'dataType' => 'DateTime', 'dataType' => 'DateTime',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => true, 'readonly' => true,
), ),
'number' => 'number' =>
array ( array(
'dataType' => 'double', 'dataType' => 'double',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'arr' => 'arr' =>
array ( array(
'dataType' => 'array', 'dataType' => 'array',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'nested' => 'nested' =>
array ( array(
'dataType' => 'object (JmsNested)', 'dataType' => 'object (JmsNested)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
'readonly' => false, 'readonly' => false,
), ),
'nested_array' => 'nested_array' =>
array ( array(
'dataType' => 'array of objects (JmsNested)', 'dataType' => 'array of objects (JmsNested)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
@ -367,7 +367,7 @@ With multiple lines.',
), ),
), ),
'nested_array' => 'nested_array' =>
array ( array(
'dataType' => 'array of objects (JmsNested)', 'dataType' => 'array of objects (JmsNested)',
'required' => false, 'required' => false,
'description' => 'No description.', 'description' => 'No description.',
@ -384,9 +384,9 @@ With multiple lines.',
'uri' => '/jms-return-test', 'uri' => '/jms-return-test',
'description' => 'Testing return', 'description' => 'Testing return',
'response' => 'response' =>
array ( array(
'a' => 'dependency_type[a]' =>
array ( array(
'dataType' => 'string', 'dataType' => 'string',
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
@ -405,15 +405,15 @@ With multiple lines.',
'documentation' => 'This method is useful to test if the getDocComment works. 'documentation' => 'This method is useful to test if the getDocComment works.
And, it supports multilines until the first \'@\' char.', And, it supports multilines until the first \'@\' char.',
'requirements' => 'requirements' =>
array ( array(
'id' => 'id' =>
array ( array(
'dataType' => 'int', 'dataType' => 'int',
'description' => 'A nice comment', 'description' => 'A nice comment',
'requirement' => '', 'requirement' => '',
), ),
'page' => 'page' =>
array ( array(
'dataType' => 'int', 'dataType' => 'int',
'description' => '', 'description' => '',
'requirement' => '', 'requirement' => '',
@ -430,9 +430,9 @@ And, it supports multilines until the first \'@\' char.',
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/secure-route', 'uri' => '/secure-route',
'requirements' => 'requirements' =>
array ( array(
'_scheme' => '_scheme' =>
array ( array(
'requirement' => 'https', 'requirement' => 'https',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -447,9 +447,9 @@ And, it supports multilines until the first \'@\' char.',
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/yet-another/{id}', 'uri' => '/yet-another/{id}',
'requirements' => 'requirements' =>
array ( array(
'id' => 'id' =>
array ( array(
'requirement' => '\\d+', 'requirement' => '\\d+',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -464,9 +464,9 @@ And, it supports multilines until the first \'@\' char.',
'method' => 'GET', 'method' => 'GET',
'uri' => '/z-action-with-query-param', 'uri' => '/z-action-with-query-param',
'filters' => 'filters' =>
array ( array(
'page' => 'page' =>
array ( array(
'requirement' => '\\d+', 'requirement' => '\\d+',
'description' => 'Page of the overview.', 'description' => 'Page of the overview.',
), ),
@ -480,9 +480,9 @@ And, it supports multilines until the first \'@\' char.',
'method' => 'POST', 'method' => 'POST',
'uri' => '/z-action-with-request-param', 'uri' => '/z-action-with-request-param',
'parameters' => 'parameters' =>
array ( array(
'param1' => 'param1' =>
array ( array(
'required' => true, 'required' => true,
'dataType' => 'string', 'dataType' => 'string',
'description' => 'Param1 description.', 'description' => 'Param1 description.',
@ -495,16 +495,16 @@ And, it supports multilines until the first \'@\' char.',
), ),
), ),
'/tests2' => '/tests2' =>
array ( array(
0 => 0 =>
array ( array(
'method' => 'POST', 'method' => 'POST',
'uri' => '/tests2.{_format}', 'uri' => '/tests2.{_format}',
'description' => 'post test 2', 'description' => 'post test 2',
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',
@ -516,16 +516,16 @@ And, it supports multilines until the first \'@\' char.',
), ),
), ),
'/tests2' => '/tests2' =>
array ( array(
0 => 0 =>
array ( array(
'method' => 'POST', 'method' => 'POST',
'uri' => '/tests2.{_format}', 'uri' => '/tests2.{_format}',
'description' => 'post test 2', 'description' => 'post test 2',
'requirements' => 'requirements' =>
array ( array(
'_format' => '_format' =>
array ( array(
'requirement' => '', 'requirement' => '',
'dataType' => '', 'dataType' => '',
'description' => '', 'description' => '',