@@ -105,9 +105,7 @@ const Constructo = () => {
105105 title : "Serialização" ,
106106 description :
107107 "Apenas defina os tipos dos argumentos do construtor que sua classe deve receber e deixa o resto com o Builder" ,
108- code : `<?php
109- # ...
110- use Constructo\\Core\\Serialize\\Builder;
108+ code : `use Constructo\\Core\\Serialize\\Builder;
111109use Constructo\\Support\\Set;
112110use Constructo\\Type\\Timestamp;
113111
@@ -201,33 +199,42 @@ echo sprintf("# Data de Nascimento: %s\\n", $set->get('birth_date'));
201199 {
202200 id : "validation" ,
203201 title : "Validação" ,
204- description : "Valide dados com regras flexíveis baseadas em atributos" ,
205- code : `<?php
206- use Devitools\\Constructo\\Validator;
207- use Devitools\\Constructo\\Rules\\{Required, Email, MinLength};
202+ description :
203+ "Simplesmente utilize as propriedades da classe que receberá os dados para gerar as regras de validação para sua `action`" ,
204+ code : `use Constructo\\Factory\\ReflectorFactory;
205+ use Constructo\\Type\\Timestamp;
206+
207+ use function array_export;
208208
209- class UserRegistration extends Validator
209+ // Defina sua entidade informando os valores das propriedades no construtor
210+ readonly class User
210211{
211- #[Required, MinLength(2)]
212- public string $name;
213-
214- #[Required, Email]
215- public string $email;
216-
217- #[Required, MinLength(8)]
218- public string $password;
212+ public function __construct(
213+ public int $id,
214+ public string $name,
215+ public Timestamp $birthDate,
216+ public bool $isActive = true,
217+ public array $tags = [],
218+ ) {
219+ }
219220}
220221
221- $registration = new UserRegistration();
222- $registration->name = 'João';
223- $registration->email = '[email protected] '; 224- $registration->password = 'senha123';
225-
226- if ($registration->isValid()) {
227- // Dados válidos, prosseguir
228- } else {
229- $errors = $registration->getErrors();
230- }` ,
222+ // Crie o reflector e obtenha o schema da entidade
223+ $schema = ReflectorFactory::createFrom()->make()->reflect(User::class);
224+
225+ echo "# Regras de validação \\n";
226+ echo array_export($schema->rules(), 1);
227+ echo "\\n";
228+
229+ # Regras de validação
230+ [
231+ 'id' => ['required', 'integer'],
232+ 'name' => ['required', 'string'],
233+ 'birth_date' => ['required', 'date'],
234+ 'is_active' => ['sometimes', 'required', 'boolean'],
235+ 'tags' => ['sometimes', 'required', 'array'],
236+ ]
237+ ` ,
231238 } ,
232239 {
233240 id : "testing" ,
0 commit comments