Skip to content

Referência de API

Assinaturas completas de cada tipo público, atualizadas para a 0.4.0. Para prosa e exemplos, siga os guias por módulo; esta página é a consulta rápida.

Option<T>

Maybe\Option\Option — um valor opcional, Some ou None.

MembroAssinaturaDescrição
Option::somesome($value): Option<T>Envolve um valor presente (nunca null).
Option::nonenone(): Option<mixed>O option vazio.
Option::fromNullablefromNullable($value): Option<T>nullNone, senão Some.
mapmap(callable $fn): OptionTransforma o valor; resultado null colapsa para None.
flatMapflatMap(callable $fn): OptionEncadeia operação que retorna Option.
filterfilter(callable $predicate): OptionMantém o valor só se o predicado for verdadeiro.
matchmatch(callable $onSome, callable $onNone)Trata os dois ramos, retorna o resultado.
unwrapunwrap()O valor, ou lança UnwrapNoneException em None.
unwrapOrunwrapOr($default)O valor, ou fallback imediato.
unwrapOrElseunwrapOrElse(callable $fn)O valor, ou fallback lazy.
expectexpect(string $message)O valor, ou lança com sua mensagem.
okOrokOr($error): ResultSomeOk, NoneErr($error).
okOrElseokOrElse(callable $fn): ResultComo okOr, erro calculado lazy.
isSome / isNone(): boolInspeciona a variante.

Result<T, E>

Maybe\Result\Result — um sucesso (Ok) ou uma falha tipada (Err).

MembroAssinaturaDescrição
Result::okok($value): Result<T,mixed>Um sucesso.
Result::errerr($error): Result<mixed,E>Uma falha tipada.
mapmap(callable $fn): ResultTransforma o valor de sucesso.
mapErrmapErr(callable $fn): ResultTransforma o valor de erro.
andThenandThen(callable $fn): ResultEncadeia op falível; curto-circuita em Err.
orElseorElse(callable $fn): ResultRecupera de Err; passa Ok adiante.
matchmatch(callable $onOk, callable $onErr)Trata os dois ramos.
unwrapunwrap()O valor, ou lança UnwrapErrException em Err.
unwrapErrunwrapErr()O erro, ou lança UnwrapOkException em Ok.
unwrapOrunwrapOr($default)O valor, ou fallback imediato.
unwrapOrElseunwrapOrElse(callable $fn)O valor, ou fallback calculado do erro.
expectexpect(string $message)O valor, ou lança com sua mensagem.
okOptionokOption(): OptionOk(v)Some(v), ErrNone.
errOptionerrOption(): OptionErr(e)Some(e), OkNone.
isOk / isErr(): boolInspeciona a variante.

Schema

Maybe\Schema\Schema — builders de validadores imutáveis. Todo modificador retorna uma nova instância.

BuilderAssinatura
Schema::stringstring(): StringSchema
Schema::intint(): IntSchema
Schema::boolbool(): BoolSchema
Schema::datedate(): DateSchema
Schema::enumerationenumeration(array $allowedValues): EnumSchema
Schema::arrayOfarrayOf(SchemaInterface $itemSchema): ArraySchema
Schema::shapeshape(array $shape): ObjectSchema
Schema::optionoption(SchemaInterface $inner): OptionSchema

Modificadores: StringSchema: ->trimmed(), ->min(int), ->max(int), ->regex(string). IntSchema: ->min(int), ->max(int). DateSchema: ->format(string), ->min(DateTimeImmutable), ->max(DateTimeImmutable). ObjectSchema: ->allowUnknown().

Pontos de entrada (todos os schemas): ->safeParse($input): Result<T, ValidationErrorBag> (nunca lança) e ->parse($input): T (lança ValidationException). ->transform(callable): SchemaInterface.

Erros de validação (0.4.0)

Value objects Tell-Don't-Ask — não existem getters path(), message(), code(), all() ou first().

Maybe\Schema\ValidationErrorBag — coleção de primeira classe, Countable e iterável.

MembroAssinaturaDescrição
countcount(): intNúmero de erros (Countable).
isEmptyisEmpty(): boolSe não há erros.
iteraçãoforeach ($bag as $error)Entrega itens ValidationError.
describedescribe(): string[]Uma linha "path: message" por erro.
summarysummary(): stringPrimeira linha mais "(and N more…)".
toArraytoArray(): array[]Fronteira de serialização: linhas ['path','message','code'].
withError / merge(...): selfAdição / combinação imutável.

Maybe\Schema\ValidationError: describedAs(): string, underField(string): self, underIndex(int): self, toArray(): array{path,message,code}. Crie um com um Path: new ValidationError(Path::field('email'), 'message', 'code').

Maybe\Schema\Path: Path::root(): self, Path::field(string): self, ->underField(string): self, ->underIndex(int): self, ->toString(): string.

DTO

Maybe\DTO\DTO — base abstrata que mapeia input validado em um objeto tipado.

MembroAssinaturaDescrição
schemaabstract static schema(): ObjectSchemaDefine a forma.
fromValidatedabstract static protected fromValidated(array): staticConstrói a instância a partir dos dados validados.
fromArraystatic fromArray(array $input): Result<static, ValidationErrorBag>Valida, nunca lança.
parsestatic parse(array $input): staticValida, lança em input inválido.

Async

Maybe\Async\Async e AsyncFuture — concorrência via processos filhos (proc_open).

MembroAssinaturaDescrição
asyncasync(callable $task, array $args = [], array $options = []): AsyncFutureInicia uma task. options: ['timeout' => 2.5]. Envolve Async::run.
awaitawait($futureOrArray)Resolve um future, ou um array via Async::all.
Async::runrun(callable $task, array $args = [], array $options = []): AsyncFutureIgual a async(), chamado direto na classe.
Async::allall(array $futures): arrayEspera todos (chaves preservadas).
Async::racerace(array $futures)O primeiro a terminar vence.
Async::poolpool(array $tasks, int $limit = 5, array $options = []): arrayConcorrência limitada.
Async::setDefaultTempDirsetDefaultTempDir(string $tempDir): voidSobrescreve onde os arquivos temporários do worker são escritos.
Async::setDefaultTimeoutsetDefaultTimeout(?float $seconds): voidTimeout padrão por task quando options['timeout'] é omitido.
Async::setDefaultPollIntervalsetDefaultPollInterval(int $microseconds): voidIntervalo de polling padrão usado ao esperar um future.
Async::setDefaultMaxInputBytessetDefaultMaxInputBytes(?int $bytes): voidLimite padrão de entrada serializada; null desativa.
Async::setDefaultMaxOutputBytessetDefaultMaxOutputBytes(?int $bytes): voidLimite padrão de saída serializada; null desativa.
AsyncFuture->then(fn), ->catch(fn), ->finally(fn)Registra callbacks.
->resolve()Bloqueia até terminar (ou timeout).
->pending(): bool, ->cancel()Checagem não bloqueante / mata o processo.

As opções de tamanho da Async são max_input_bytes (16 MiB por padrão), max_output_bytes (64 MiB por padrão) e include_remote_trace (desativado por padrão). Um limite pode ser null para uma carga confiável e explicitamente limitada.

Maybe\Async\Exception\PayloadTooLargeException informa qual direção do IPC excedeu o limite. TaskFailedException::remoteTrace() fica vazio por padrão; ative include_remote_trace somente em diagnósticos confiáveis.

Funções helper globais

Auto-carregadas (namespace Maybe\): some(), none(), fromNullable(), ok(), err(), stringSchema(), intSchema(), boolSchema(), dateSchema(), enumSchema(), arraySchema(), objectSchema(), optionSchema(), async(), await().

Escrevendo código com um assistente de IA? Aponte-o para o llms.txt para as mesmas assinaturas em formato amigável a LLM.