Primeiros Passos
Maybe é uma biblioteca PHP para lógica de negócio explícita e previsível. Ela combina cinco blocos:
Option<T>— fluxo seguro para valores opcionaisResult<T, E>— sucesso/erro tipados sem exceções como controle de fluxoSchema— parsing e validação imutáveisDTO— mapeamento validado de objetos de entradaAsync— execução concorrente via processos (proc_open), com foco em PHP 7.4 + Windows + CodeIgniter 3
Requisitos
- PHP
>= 7.4 - Composer
Instalação
bash
composer require gabrielalmir/maybePrimeiros passos
Se você trabalha em ambiente corporativo ou legado, comece por Schema, DTO e Result antes de adotar Async:
php
use Maybe\Schema\Schema;
$schema = Schema::shape([
'email' => Schema::string()->trimmed()->min(5),
'age' => Schema::int()->min(18),
]);
$result = $schema->safeParse([
'email' => ' user@example.com ',
'age' => 23,
]);
$result->match(
fn (array $data) => saveUser($data),
fn ($errors) => respondWithErrors($errors->toArray())
);Helpers funcionais
As seguintes funções com namespace são carregadas automaticamente:
- Option/Result:
some(),none(),fromNullable(),ok(),err() - Schema:
stringSchema(),intSchema(),boolSchema(),dateSchema(),enumSchema(),arraySchema(),objectSchema(),optionSchema() - Async:
async(),await()
Próximos passos
- Tutorial — construa um fluxo validado de cadastro de cliente de ponta a ponta
- Por que Maybe? — o argumento contra
nulle exceções, e como o Maybe se compara - Referência de API — todas as assinaturas em um lugar
- Option — valores opcionais sem checagens de null
- Result — tratamento de erros como dados
- Schema — validação e parsing
- DTO — objetos de entrada validados
- Async — concorrência baseada em processos
- CodeIgniter 3 — integração com apps CI3 legados
- Migração Incremental — adotando Maybe em uma base existente