Skip to content

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 opcionais
  • Result<T, E> — sucesso/erro tipados sem exceções como controle de fluxo
  • Schema — parsing e validação imutáveis
  • DTO — mapeamento validado de objetos de entrada
  • Async — 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/maybe

Primeiros 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 null e 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