Skip to content

Commit 30554ec

Browse files
committed
feat: Constructo page improvements
1 parent a8e4028 commit 30554ec

File tree

1 file changed

+33
-26
lines changed

1 file changed

+33
-26
lines changed

src/pages/Constructo.tsx

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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;
111109
use Constructo\\Support\\Set;
112110
use 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

Comments
 (0)