diff --git a/Formatter/AbstractFormatter.php b/Formatter/AbstractFormatter.php index f84a9a1..0789aed 100644 --- a/Formatter/AbstractFormatter.php +++ b/Formatter/AbstractFormatter.php @@ -73,6 +73,7 @@ abstract class AbstractFormatter implements FormatterInterface 'dataType' => $info['dataType'], 'readonly' => array_key_exists('readonly', $info) ? $info['readonly'] : null, 'required' => $info['required'], + 'default' => array_key_exists('default', $info) ? $info['default'] : null, 'description' => array_key_exists('description', $info) ? $info['description'] : null, 'format' => array_key_exists('format', $info) ? $info['format'] : null, 'sinceVersion' => array_key_exists('sinceVersion', $info) ? $info['sinceVersion'] : null, diff --git a/Formatter/MarkdownFormatter.php b/Formatter/MarkdownFormatter.php index 1700656..2fa0cac 100644 --- a/Formatter/MarkdownFormatter.php +++ b/Formatter/MarkdownFormatter.php @@ -86,6 +86,9 @@ class MarkdownFormatter extends AbstractFormatter if (isset($parameter['description']) && !empty($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"; } diff --git a/Parser/FormTypeParser.php b/Parser/FormTypeParser.php index 14a4028..a507fc2 100644 --- a/Parser/FormTypeParser.php +++ b/Parser/FormTypeParser.php @@ -96,6 +96,7 @@ class FormTypeParser implements ParserInterface foreach ($form as $name => $child) { $config = $child->getConfig(); + if ($prefix) { $name = sprintf('%s[%s]', $prefix, $name); } @@ -148,6 +149,7 @@ class FormTypeParser implements ParserInterface $parameters[$name] = array( 'dataType' => 'string', 'actualType' => 'string', + 'default' => $config->getData(), 'required' => $config->getRequired(), 'description' => $config->getAttribute('description'), 'readonly' => $config->getDisabled(), @@ -163,6 +165,7 @@ class FormTypeParser implements ParserInterface 'dataType' => $bestType, 'actualType' => $actualType, 'subType' => $subType, + 'default' => $config->getData(), 'required' => $config->getRequired(), 'description' => $config->getAttribute('description'), 'readonly' => $config->getDisabled(), diff --git a/Tests/Fixtures/Form/TestType.php b/Tests/Fixtures/Form/TestType.php index 65ec99b..1628ee2 100644 --- a/Tests/Fixtures/Form/TestType.php +++ b/Tests/Fixtures/Form/TestType.php @@ -26,6 +26,7 @@ class TestType extends AbstractType ->add('a', null, array('description' => 'A nice description')) ->add('b') ->add($builder->create('c', 'checkbox')) + ->add('d','text',array( 'data' => 'DefaultTest')) ; } diff --git a/Tests/Formatter/MarkdownFormatterTest.php b/Tests/Formatter/MarkdownFormatterTest.php index aa7934d..bc82c6b 100644 --- a/Tests/Formatter/MarkdownFormatterTest.php +++ b/Tests/Formatter/MarkdownFormatterTest.php @@ -97,6 +97,12 @@ c: * type: boolean * required: true +d: + + * type: string + * required: true + * default value: DefaultTest + ### `POST` /tests.{_format} ### @@ -125,6 +131,12 @@ c: * type: boolean * required: true +d: + + * type: string + * required: true + * default value: DefaultTest + ## /tests2 ## @@ -523,6 +535,12 @@ c: * type: boolean * required: true +d: + + * type: string + * required: true + * default value: DefaultTest + ### `ANY` /z-return-selected-parsers-output ### diff --git a/Tests/Formatter/SimpleFormatterTest.php b/Tests/Formatter/SimpleFormatterTest.php index 55ec84e..b84463f 100644 --- a/Tests/Formatter/SimpleFormatterTest.php +++ b/Tests/Formatter/SimpleFormatterTest.php @@ -111,6 +111,7 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -119,6 +120,7 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => false, 'description' => '', 'readonly' => false, @@ -127,6 +129,16 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'boolean', 'actualType' => DataTypes::BOOLEAN, 'subType' => null, + 'default' => null, + 'required' => true, + 'description' => '', + 'readonly' => false, + ), + 'd' => array( + 'dataType' => 'string', + 'actualType' => DataTypes::STRING, + 'subType' => null, + 'default' => "DefaultTest", 'required' => true, 'description' => '', 'readonly' => false, @@ -158,6 +170,7 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -166,6 +179,7 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => false, 'description' => '', 'readonly' => false, @@ -174,6 +188,16 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'boolean', 'actualType' => DataTypes::BOOLEAN, 'subType' => null, + 'default' => null, + 'required' => true, + 'description' => '', + 'readonly' => false, + ), + 'd' => array( + 'dataType' => 'string', + 'actualType' => DataTypes::STRING, + 'subType' => null, + 'default' => "DefaultTest", 'required' => true, 'description' => '', 'readonly' => false, @@ -208,6 +232,7 @@ class SimpleFormatterTest extends WebTestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -509,6 +534,7 @@ With multiple lines.', 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -997,6 +1023,7 @@ With multiple lines.', 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -1005,6 +1032,7 @@ With multiple lines.', 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => false, 'description' => '', 'readonly' => false, @@ -1013,6 +1041,16 @@ With multiple lines.', 'dataType' => 'boolean', 'actualType' => DataTypes::BOOLEAN, 'subType' => null, + 'default' => null, + 'required' => true, + 'description' => '', + 'readonly' => false, + ), + 'd' => array( + 'dataType' => 'string', + 'actualType' => DataTypes::STRING, + 'subType' => null, + 'default' => "DefaultTest", 'required' => true, 'description' => '', 'readonly' => false, diff --git a/Tests/Parser/FormTypeParserTest.php b/Tests/Parser/FormTypeParserTest.php index cf9c872..aee673b 100644 --- a/Tests/Parser/FormTypeParserTest.php +++ b/Tests/Parser/FormTypeParserTest.php @@ -42,7 +42,8 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'subType' => null, 'required' => true, 'description' => 'A nice description', - 'readonly' => false + 'readonly' => false, + 'default' => null ), 'b' => array( 'dataType' => 'string', @@ -50,7 +51,8 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'subType' => null, 'required' => true, 'description' => '', - 'readonly' => false + 'readonly' => false, + 'default' => null ), 'c' => array( 'dataType' => 'boolean', @@ -58,7 +60,17 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'subType' => null, 'required' => true, '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( 'dataType' => 'array of strings', 'actualType' => DataTypes::COLLECTION, - 'subType' => DataTypes::STRING, 'required' => true, 'description' => '', + 'default' => null, 'readonly' => false ), 'collection_type[b][][a]' => array( 'dataType' => 'string', 'actualType' => DataTypes::STRING, + 'default' => null, 'subType' => null, 'required' => true, 'description' => 'A nice description', @@ -86,6 +99,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false @@ -93,6 +107,16 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'collection_type[b][][c]' => array( 'dataType' => '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, 'required' => true, 'description' => '', @@ -109,6 +133,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'a' => array( 'dataType' => 'array of strings', 'actualType' => DataTypes::COLLECTION, + 'default' => null, 'subType' => DataTypes::STRING, 'required' => true, 'description' => '', @@ -117,6 +142,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'b[][a]' => array( 'dataType' => 'string', 'actualType' => DataTypes::STRING, + 'default' => null, 'subType' => null, 'required' => true, 'description' => 'A nice description', @@ -125,6 +151,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'b[][b]' => array( 'dataType' => 'string', 'actualType' => DataTypes::STRING, + 'default' => null, 'subType' => null, 'required' => true, 'description' => '', @@ -133,10 +160,20 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'b[][c]' => array( 'dataType' => 'boolean', 'actualType' => DataTypes::BOOLEAN, + 'default' => null, 'subType' => null, 'required' => true, 'description' => '', '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', 'actualType' => DataTypes::COLLECTION, 'subType' => DataTypes::STRING, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false @@ -158,6 +196,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false @@ -166,6 +205,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false @@ -174,6 +214,16 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'boolean', 'actualType' => DataTypes::BOOLEAN, 'subType' => null, + 'default' => null, + 'required' => true, + 'description' => '', + 'readonly' => false + ), + 'b[][d]' => array( + 'dataType' => 'string', + 'actualType' => DataTypes::STRING, + 'subType' => null, + 'default' => "DefaultTest", 'required' => true, 'description' => '', 'readonly' => false @@ -187,6 +237,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'datetime', 'actualType' => DataTypes::DATETIME, 'subType' => null, + 'default' => null, 'required' => true, 'description' => 'A nice description', 'readonly' => false, @@ -196,6 +247,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'datetime', 'actualType' => DataTypes::DATETIME, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -205,6 +257,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'datetime', 'actualType' => DataTypes::DATETIME, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -214,6 +267,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'datetime', 'actualType' => DataTypes::DATETIME, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -222,6 +276,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'datetime', 'actualType' => DataTypes::DATETIME, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -230,6 +285,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'date', 'actualType' => DataTypes::DATE, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -238,6 +294,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'date', 'actualType' => DataTypes::DATE, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -247,6 +304,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'choice', 'actualType' => DataTypes::ENUM, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -256,6 +314,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'array of choices', 'actualType' => DataTypes::COLLECTION, 'subType' => DataTypes::ENUM, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -265,6 +324,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'choice', 'actualType' => DataTypes::ENUM, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false, @@ -273,6 +333,7 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase 'dataType' => 'choice', 'actualType' => DataTypes::ENUM, 'subType' => null, + 'default' => null, 'required' => true, 'description' => '', 'readonly' => false,