From 1d24a1a336386ba76dc03338d5ed58ab8fb032d7 Mon Sep 17 00:00:00 2001 From: Bruno Date: Tue, 7 Sep 2021 10:12:59 -0300 Subject: [PATCH] updating example --- index.php | 4 +- model.php | 125 ++++++++++++++++++++++++++++-------------------------- post.php | 3 +- 3 files changed, 68 insertions(+), 64 deletions(-) diff --git a/index.php b/index.php index 9e6f082..dcbeac0 100644 --- a/index.php +++ b/index.php @@ -11,8 +11,8 @@ // For example, this builds HTML using Bootstrap as CSS and the Vue framework. $composer = FrameworkComposer::create(['HTML', 'Bootstrap']); -// in real code you would pre-generate this and cache instead of runtime. -$model = Model::fromStruct(modelData()); +// get your model data. +$model = modelData(); // get a button dynamically $submitButton = $composer->element( diff --git a/model.php b/model.php index d349dfe..9336e70 100644 --- a/model.php +++ b/model.php @@ -1,8 +1,11 @@ 'TestModel', - 'fields' => [ - 'myString' => [ - 'datatype' => 'string', - 'validators' => [ - MinLength::class => [ - 'value' => 3, - ], - MaxLength::class => [ - 'value' => 10, - ], - Datatype::REQUIRED => [ - 'value' => true, - ] - ], - 'renderable' => [ - Renderable::LABEL => 'This is some string', - Renderable::COMMENT => 'At least 3 characters but no more than 10', - Renderable_string::NO_AUTOCOMPLETE => true, - Renderable::PLACEHOLDER => "Type here", - Renderable::ICON_PACK => 'fas', - Renderable::ICON => 'fa-check' - ] + $modelData = new Model( + 'TestModel', + ); + $modelData->appendField(new Field( + 'myString', + Datatype_string::class, + [ + Renderable::LABEL => 'This is some string', + Renderable::COMMENT => 'At least 3 characters but no more than 10', + Renderable_string::NO_AUTOCOMPLETE => true, + Renderable::PLACEHOLDER => "Type here", + Renderable::ICON_PACK => 'fas', + Renderable::ICON => 'fa-check' + ], + [ + MinLength::class => [ + 'value' => 3, ], - 'someInteger' => [ - 'datatype' => 'integer', - 'validators' => [ - Min::class => [ - 'value' => 4, - ], - Max::class => [ - 'value' => 30, - ], - Datatype::REQUIRED => [ - 'value' => true, - ] - ], - 'renderable' => [ - Renderable_number::STEP => 2, - Renderable_string::NO_AUTOCOMPLETE => true, - Renderable::LABEL => 'Some integer', - Renderable::COMMENT => 'Between 4 and 30', - Renderable::PLACEHOLDER => "Type here" - ] + MaxLength::class => [ + 'value' => 10, ], - 'myaaaaa' => [ - 'datatype' => 'aaaaa', - 'validators' => [ - Datatype::REQUIRED => [ - 'value' => true, - ] - ], - 'renderable' => [ - Renderable::LABEL => 'This is a custom datatype', - Renderable::COMMENT => 'Fill this with aaaaa to validate properly', - Renderable_string::NO_AUTOCOMPLETE => true, - Renderable::PLACEHOLDER => "Type aaaaa here" - ] + Datatype::REQUIRED => [ + 'value' => true, + ] + ], + ))->appendField(new Field( + 'someInteger', + 'integer', + [ + Renderable_number::STEP => 2, + Renderable_string::NO_AUTOCOMPLETE => true, + Renderable::LABEL => 'Some integer', + Renderable::COMMENT => 'Between 4 and 30', + Renderable::PLACEHOLDER => "Type here" + ], + [ + Min::class => [ + 'value' => 4, ], - ] - ]; + Max::class => [ + 'value' => 30, + ], + Datatype::REQUIRED => [ + 'value' => true, + ] + ], + ))->appendField(new Field( + 'myaaaaa', + 'aaaaa', + [ + Renderable::LABEL => 'This is a custom datatype', + Renderable::COMMENT => 'Fill this with aaaaa to validate properly', + Renderable_string::NO_AUTOCOMPLETE => true, + Renderable::PLACEHOLDER => "Type aaaaa here" + ], + [ + Datatype::REQUIRED => [ + 'value' => true, + ] + ], + )); return $modelData; -} \ No newline at end of file +} diff --git a/post.php b/post.php index efad06b..0552d85 100644 --- a/post.php +++ b/post.php @@ -8,8 +8,9 @@ // set your framework composition $framework = FrameworkComposer::create(['HTML', 'Bootstrap']); + // build the model -$model = Model::fromStruct(modelData()); +$model = modelData(); // validate some data $validation = $model->validate($_POST);