O PHP é ótimo e o compositor, PHP-FIG e todas as diferentes estruturas o tornam ainda maior. No entanto, ainda há coisas herdadas no idioma em si que dificulta o uso do PHP do que deveria (consulte http://phpsadness.com/ para uma das muitas listas).
O ZUBR é uma biblioteca de wrapper para corrigir inconsistências nas funções principais do PHP. Ele envolve as funções internas do PHP e as tentativas de corrigir algumas coisas-iniciando com nomeação consistente, ordem de argumentos e muito mais.
Por exemplo, de:
parse_url()
urlencode()
para:
Zubrparse_url()
Zubrurl_encode()
e até:
htmlentities()
html_entity_decode()
para:
Zubrhtml_entity_encode() // alias to htmlentities(), Zubrhtml_entities()
Zubrhtml_entity_decode()
As funções sempre têm o mesmo nome que as embutidas, mas seguem o mesmo conjunto de regras. O ZUBR é intuitivo de usar, porque os nomes de funções são previsíveis e semelhantes aos que você está acostumado.
A ideia de Zubr veio de comentar este post hn: https://news.ycombinator.com/item?id=14883784
Estamos ignorando o PHP <7.0.0. Qualquer função que seja obsoleta e não incluída no Php 7.0.0 não será encontrada no ZUBR.
Veja: http://phpsadness.com/sad/4
Sempre usamos Snake_Case.
Veja: http://phpsadness.com/sad/15
Adicionamos aliases usando micro em vez de u (que às vezes significa user ).
Adicionamos aliases usando user em vez de u (que às vezes significa micro ).
to vs. 2Veja: http://phpsadness.com/sad/48
Adicionamos aliases usando to vez de 2 .
Veja: http://phpsadness.com/sad/9 e similar.
Sempre colocamos o assunto em primeiro lugar, depois a palavra -chave ( $haystack em primeiro lugar, depois $needle ).
Por exemplo, você diria "Pesquise o Google por cachorro " (que significa "Pesquisar $subject para $keyword ").
A maioria das funções PHP já segue esta convenção.
Veja: http://phpsadness.com/sad/6
Sempre colocamos o retorno de chamada em último.
NOTA: Se os parâmetros fornecidos a uma função não forem o que espera, como passar uma matriz em que uma string é esperada, o valor de retorno da função é indefinido. Nesse caso, provavelmente retornará nulo, mas isso é apenas uma convenção e não pode ser confiado. http://php.net/manual/en/functions.internal.php
Gostaríamos de corrigir o exposto em> 1.0 lançamentos.
A versão 1.0 conterá todas as funções internas do PHP.
Podemos então implementar um sistema de plug -in privado para adicionar extensões agrupadas em 2.0 e tornar o sistema de plug -in que qualquer pessoa possa implementar invólucros a extensões externas na versão 3.0.
Temos marcos detalhados com todos os recursos que serão implementados até a versão 1.0 em https://github.com/nkkollaw/zubr/milestones.
Solicitações de tração são bem -vindas.
Dê uma olhada no arquivo contribuinte.md.
Os e -mails podem ser encontrados no arquivo composer.json .