Merge pull request #408 from jonmchan/ParamDefaults

Add default values support for form types
This commit is contained in:
William Durand 2014-06-26 17:54:22 +02:00
commit a2a4782af5
7 changed files with 129 additions and 4 deletions

View File

@ -73,6 +73,7 @@ abstract class AbstractFormatter implements FormatterInterface
'dataType' => $info['dataType'], 'dataType' => $info['dataType'],
'readonly' => array_key_exists('readonly', $info) ? $info['readonly'] : null, 'readonly' => array_key_exists('readonly', $info) ? $info['readonly'] : null,
'required' => $info['required'], 'required' => $info['required'],
'default' => array_key_exists('default', $info) ? $info['default'] : null,
'description' => array_key_exists('description', $info) ? $info['description'] : null, 'description' => array_key_exists('description', $info) ? $info['description'] : null,
'format' => array_key_exists('format', $info) ? $info['format'] : null, 'format' => array_key_exists('format', $info) ? $info['format'] : null,
'sinceVersion' => array_key_exists('sinceVersion', $info) ? $info['sinceVersion'] : null, 'sinceVersion' => array_key_exists('sinceVersion', $info) ? $info['sinceVersion'] : null,

View File

@ -86,6 +86,9 @@ class MarkdownFormatter extends AbstractFormatter
if (isset($parameter['description']) && !empty($parameter['description'])) { if (isset($parameter['description']) && !empty($parameter['description'])) {
$markdown .= sprintf(" * description: %s\n", $parameter['description']); $markdown .= sprintf(" * description: %s\n", $parameter['description']);
} }
if (isset($parameter['default']) && !empty($parameter['default'])) {
$markdown .= sprintf(" * default value: %s\n", $parameter['default']);
}
$markdown .= "\n"; $markdown .= "\n";
} }

View File

@ -96,6 +96,7 @@ class FormTypeParser implements ParserInterface
foreach ($form as $name => $child) { foreach ($form as $name => $child) {
$config = $child->getConfig(); $config = $child->getConfig();
if ($prefix) { if ($prefix) {
$name = sprintf('%s[%s]', $prefix, $name); $name = sprintf('%s[%s]', $prefix, $name);
} }
@ -148,6 +149,7 @@ class FormTypeParser implements ParserInterface
$parameters[$name] = array( $parameters[$name] = array(
'dataType' => 'string', 'dataType' => 'string',
'actualType' => 'string', 'actualType' => 'string',
'default' => $config->getData(),
'required' => $config->getRequired(), 'required' => $config->getRequired(),
'description' => $config->getAttribute('description'), 'description' => $config->getAttribute('description'),
'readonly' => $config->getDisabled(), 'readonly' => $config->getDisabled(),
@ -163,6 +165,7 @@ class FormTypeParser implements ParserInterface
'dataType' => $bestType, 'dataType' => $bestType,
'actualType' => $actualType, 'actualType' => $actualType,
'subType' => $subType, 'subType' => $subType,
'default' => $config->getData(),
'required' => $config->getRequired(), 'required' => $config->getRequired(),
'description' => $config->getAttribute('description'), 'description' => $config->getAttribute('description'),
'readonly' => $config->getDisabled(), 'readonly' => $config->getDisabled(),

View File

@ -26,6 +26,7 @@ class TestType extends AbstractType
->add('a', null, array('description' => 'A nice description')) ->add('a', null, array('description' => 'A nice description'))
->add('b') ->add('b')
->add($builder->create('c', 'checkbox')) ->add($builder->create('c', 'checkbox'))
->add('d','text',array( 'data' => 'DefaultTest'))
; ;
} }

View File

@ -97,6 +97,12 @@ c:
* type: boolean * type: boolean
* required: true * required: true
d:
* type: string
* required: true
* default value: DefaultTest
### `POST` /tests.{_format} ### ### `POST` /tests.{_format} ###
@ -125,6 +131,12 @@ c:
* type: boolean * type: boolean
* required: true * required: true
d:
* type: string
* required: true
* default value: DefaultTest
## /tests2 ## ## /tests2 ##
@ -523,6 +535,12 @@ c:
* type: boolean * type: boolean
* required: true * required: true
d:
* type: string
* required: true
* default value: DefaultTest
### `ANY` /z-return-selected-parsers-output ### ### `ANY` /z-return-selected-parsers-output ###

View File

@ -111,6 +111,7 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -119,6 +120,7 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => false, 'required' => false,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -127,6 +129,16 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true,
'description' => '',
'readonly' => false,
),
'd' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'default' => "DefaultTest",
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -158,6 +170,7 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -166,6 +179,7 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => false, 'required' => false,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -174,6 +188,16 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true,
'description' => '',
'readonly' => false,
),
'd' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'default' => "DefaultTest",
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -208,6 +232,7 @@ class SimpleFormatterTest extends WebTestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -509,6 +534,7 @@ With multiple lines.',
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -997,6 +1023,7 @@ With multiple lines.',
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -1005,6 +1032,7 @@ With multiple lines.',
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => false, 'required' => false,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -1013,6 +1041,16 @@ With multiple lines.',
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true,
'description' => '',
'readonly' => false,
),
'd' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'default' => "DefaultTest",
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,

View File

@ -42,7 +42,8 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false 'readonly' => false,
'default' => null
), ),
'b' => array( 'b' => array(
'dataType' => 'string', 'dataType' => 'string',
@ -50,7 +51,8 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false,
'default' => null
), ),
'c' => array( 'c' => array(
'dataType' => 'boolean', 'dataType' => 'boolean',
@ -58,7 +60,17 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false,
'default' => null
),
'd' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'required' => true,
'description' => '',
'readonly' => false,
'default' => "DefaultTest"
) )
) )
), ),
@ -68,15 +80,16 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'collection_type[a]' => array( 'collection_type[a]' => array(
'dataType' => 'array of strings', 'dataType' => 'array of strings',
'actualType' => DataTypes::COLLECTION, 'actualType' => DataTypes::COLLECTION,
'subType' => DataTypes::STRING, 'subType' => DataTypes::STRING,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'default' => null,
'readonly' => false 'readonly' => false
), ),
'collection_type[b][][a]' => array( 'collection_type[b][][a]' => array(
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'default' => null,
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
@ -86,6 +99,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false
@ -93,6 +107,16 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'collection_type[b][][c]' => array( 'collection_type[b][][c]' => array(
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'default' => null,
'subType' => null,
'required' => true,
'description' => '',
'readonly' => false
),
'collection_type[b][][d]' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'default' => "DefaultTest",
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
@ -109,6 +133,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'a' => array( 'a' => array(
'dataType' => 'array of strings', 'dataType' => 'array of strings',
'actualType' => DataTypes::COLLECTION, 'actualType' => DataTypes::COLLECTION,
'default' => null,
'subType' => DataTypes::STRING, 'subType' => DataTypes::STRING,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
@ -117,6 +142,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'b[][a]' => array( 'b[][a]' => array(
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'default' => null,
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
@ -125,6 +151,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'b[][b]' => array( 'b[][b]' => array(
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'default' => null,
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
@ -133,10 +160,20 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'b[][c]' => array( 'b[][c]' => array(
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'default' => null,
'subType' => null, 'subType' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false
),
'b[][d]' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'default' => "DefaultTest",
'required' => true,
'description' => '',
'readonly' => false
) )
) )
), ),
@ -150,6 +187,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'array of strings', 'dataType' => 'array of strings',
'actualType' => DataTypes::COLLECTION, 'actualType' => DataTypes::COLLECTION,
'subType' => DataTypes::STRING, 'subType' => DataTypes::STRING,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false
@ -158,6 +196,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false 'readonly' => false
@ -166,6 +205,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'string', 'dataType' => 'string',
'actualType' => DataTypes::STRING, 'actualType' => DataTypes::STRING,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false
@ -174,6 +214,16 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'boolean', 'dataType' => 'boolean',
'actualType' => DataTypes::BOOLEAN, 'actualType' => DataTypes::BOOLEAN,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true,
'description' => '',
'readonly' => false
),
'b[][d]' => array(
'dataType' => 'string',
'actualType' => DataTypes::STRING,
'subType' => null,
'default' => "DefaultTest",
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false 'readonly' => false
@ -187,6 +237,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'datetime', 'dataType' => 'datetime',
'actualType' => DataTypes::DATETIME, 'actualType' => DataTypes::DATETIME,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => 'A nice description', 'description' => 'A nice description',
'readonly' => false, 'readonly' => false,
@ -196,6 +247,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'datetime', 'dataType' => 'datetime',
'actualType' => DataTypes::DATETIME, 'actualType' => DataTypes::DATETIME,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -205,6 +257,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'datetime', 'dataType' => 'datetime',
'actualType' => DataTypes::DATETIME, 'actualType' => DataTypes::DATETIME,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -214,6 +267,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'datetime', 'dataType' => 'datetime',
'actualType' => DataTypes::DATETIME, 'actualType' => DataTypes::DATETIME,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -222,6 +276,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'datetime', 'dataType' => 'datetime',
'actualType' => DataTypes::DATETIME, 'actualType' => DataTypes::DATETIME,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -230,6 +285,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'date', 'dataType' => 'date',
'actualType' => DataTypes::DATE, 'actualType' => DataTypes::DATE,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -238,6 +294,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'date', 'dataType' => 'date',
'actualType' => DataTypes::DATE, 'actualType' => DataTypes::DATE,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -247,6 +304,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'choice', 'dataType' => 'choice',
'actualType' => DataTypes::ENUM, 'actualType' => DataTypes::ENUM,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -256,6 +314,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'array of choices', 'dataType' => 'array of choices',
'actualType' => DataTypes::COLLECTION, 'actualType' => DataTypes::COLLECTION,
'subType' => DataTypes::ENUM, 'subType' => DataTypes::ENUM,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -265,6 +324,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'choice', 'dataType' => 'choice',
'actualType' => DataTypes::ENUM, 'actualType' => DataTypes::ENUM,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,
@ -273,6 +333,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
'dataType' => 'choice', 'dataType' => 'choice',
'actualType' => DataTypes::ENUM, 'actualType' => DataTypes::ENUM,
'subType' => null, 'subType' => null,
'default' => null,
'required' => true, 'required' => true,
'description' => '', 'description' => '',
'readonly' => false, 'readonly' => false,