PHP es excelente y compositor, PHP-FIG, y todos los diferentes marcos lo hacen aún mayor. Sin embargo, todavía hay cosas heredadas en el lenguaje en sí que hace que PHP sea más difícil de usar de lo que debería ser (ver http://phpsadness.com/ para una de muchas listas).
Zubr es una biblioteca de envoltorio para solucionar inconsistencias en las funciones centrales de PHP. Envuelve las funciones incorporadas de PHP e intenta arreglar algunas cosas: iniciar con nombres consistentes, orden de argumentos y más.
Por ejemplo, de:
parse_url()
urlencode()
a:
Zubrparse_url()
Zubrurl_encode()
E incluso:
htmlentities()
html_entity_decode()
a:
Zubrhtml_entity_encode() // alias to htmlentities(), Zubrhtml_entities()
Zubrhtml_entity_decode()
Las funciones siempre tienen el mismo nombre que las incorporadas, pero siguen el mismo conjunto de reglas. Zubr es intuitivo de usar, porque los nombres de funciones son predecibles y similares a los que está acostumbrado.
La idea de Zubr vino de comentar esta publicación HN: https://news.ycombinator.com/item?id=14883784
Estamos ignorando PHP <7.0.0. Cualquier función que esté en desuso y que no esté incluida en PHP 7.0.0 no se encontrará en Zubr.
Ver: http://phpsadness.com/sad/4
Siempre usamos Snake_Case.
Ver: http://phpsadness.com/sad/15
Agregamos alias usando micro en lugar de u (lo que a veces significa user ).
Agregamos alias usando user en lugar de u (lo que a veces significa micro ).
to vs. 2Ver: http://phpsadness.com/sad/48
Agregamos alias usando to lugar de 2 .
Ver: http://phpsadness.com/sad/9 y similar.
Siempre ponemos el tema primero, luego la palabra clave ( $haystack primero, luego $needle ).
Por ejemplo, diría "Busque en Google para el perro " (que significa "Buscar $subject por $keyword ").
La mayoría de las funciones de PHP ya siguen esta convención.
Ver: http://phpsadness.com/sad/6
Siempre ponemos la devolución de llamada al final.
Nota: Si los parámetros dados a una función no son lo que espera, como pasar una matriz donde se espera una cadena, el valor de retorno de la función no está definido. En este caso, probablemente devolverá nulo, pero esto es solo una convención, y no se puede confiar en la que no se puede confiar. http://php.net/manual/en/functions.internal.php
Nos gustaría arreglar las versiones anteriores en> 1.0.
La versión 1.0 contendrá todas las funciones integradas de PHP.
Luego, podríamos implementar un sistema de complementos privados para agregar extensiones agrupadas en 2.0, y hacer público el sistema de complementos para que cualquiera pueda implementar envolturas a extensiones externas en la versión 3.0.
Tenemos hitos detallados con todas las características que se implementarán hasta la Versión 1.0 en https://github.com/nkkollaw/zubr/milestones.
Las solicitudes de extracción son bienvenidas.
Eche un vistazo al archivo contribuyente.md.
Los correos electrónicos se pueden encontrar en el archivo composer.json .