Descrição Closure é uma biblioteca que visa superar as limitações do PHP em relação à serialização de encerramentos, fornecendo um wrapper que tornará todos os encerramentos serializáveis.
Os principais recursos da biblioteca:
Serialize qualquer fechamento
Serialize objetos arbitrários
Não usa eval
para serialização ou desserialização de fechamento
Funciona com qualquer versão do PHP que tenha suporte para encerramentos
Suporta sintaxe PHP 7
Lida com todas as variáveis referenciadas/importadas em use()
e agrupa automaticamente todos os encerramentos referenciados/importados para serialização adequada
Lida com fechamentos recursivos
Lida com constantes mágicas como __FILE__
, __DIR__
, __LINE__
, __NAMESPACE__
, __CLASS__
, __TRAIT__
, __METHOD__
e __FUNCTION__
.
Resolve automaticamente todos os nomes de classes, nomes de funções e nomes de constantes usados dentro do encerramento
Rastreie a fonte residente do fechamento usando a diretiva #trackme
Analisador simples e muito rápido
Qualquer erro ou exceção que possa ocorrer ao executar um fechamento não serializado pode ser capturado e tratado adequadamente
Você pode serializar/desserializar qualquer encerramento vezes ilimitadas, mesmo aqueles previamente desserializados (isso é possível porque eval()
não é usado para desserialização)
Lida com fechamentos estáticos
Suporta fechamentos assinados criptograficamente
Fornece um refletor que pode fornecer informações sobre o fechamento serializado
Fornece um analisador para a biblioteca SuperClosure
Detecta automaticamente quando o escopo e/ou o objeto vinculado de um encerramento precisa ser serializado para que o encerramento funcione após a desserialização
A documentação completa desta biblioteca pode ser encontrada aqui.
Opis Closure é licenciado sob a Licença MIT (MIT).
PHP^5.4 || ^7,0 || ^8,0
A descrição do Closure está disponível no Packagist e pode ser instalada a partir de uma interface de linha de comando usando o Composer.
compositor requer opis/fechamento
Ou você pode referenciá-lo diretamente em seu arquivo composer.json
como uma dependência
{"require": {"opis/closure": "^3.5"} }
Caso seu projeto precise suportar PHP 5.3 você pode continuar usando a versão 2.x
do Opis Closure . Caso contrário, supondo que você não esteja usando uma das classes ou recursos removidos/refatorados (consulte CHANGELOG), migrar para a versão 3.x
é simplesmente uma questão de atualizar seu arquivo composer.json
.
Opis Closure segue especificações de versionamento semântico.
Adicionamos esse recurso para poder oferecer suporte à serialização do objeto vinculado de um encerramento. A implementação está longe de ser perfeita e é muito difícil fazê-la funcionar perfeitamente. Tentaremos melhorar isso, mas não podemos garantir nada. Portanto, nosso conselho em relação às funções OpisClosureserialize|unserialize
é usá-las com cautela.