PHP отличный, и композитор, PHP-FIG, и все различные рамки делают его еще больше. Тем не менее, в самом языке все еще есть унаследованные вещи, которые затрудняют использование PHP, чем должны быть (см. Http://phpsadness.com/ для одного из многих списков).
Zubr - это библиотека обертки, чтобы исправить несоответствия в основных функциях PHP. Он завершает встроенные функции PHP и пытается исправить несколько вещей-продолжать последовательное именование, порядок аргументов и многое другое.
Например, из:
parse_url()
urlencode()
к:
Zubrparse_url()
Zubrurl_encode()
и даже:
htmlentities()
html_entity_decode()
к:
Zubrhtml_entity_encode() // alias to htmlentities(), Zubrhtml_entities()
Zubrhtml_entity_decode()
Функции всегда имеют одинаковое имя, что и встроенные, но они следуют одному и тому же набору правил. Zubr интуитивно понятен для использования, потому что имена функций предсказуемы и похожи на те, к которым вы привыкли.
Идея Zubr появилась в комментировании этого сообщения HN: https://news.ycombinator.com/item?id=14883784
Мы игнорируем PHP <7.0.0. Любая функция, которая устарела и не включена в PHP 7.0.0, не будет найдена в ZubR.
Смотрите: http://phpsadness.com/sad/4
Мы всегда используем smake_case.
Смотрите: http://phpsadness.com/sad/15
Мы добавляем псевдонимы, используя micro -вместо u (что иногда означает user ).
Мы добавляем псевдонимы, используя user вместо u (что иногда означает micro ).
to против 2Смотрите: http://phpsadness.com/sad/48
Мы добавляем псевдонимы, to вместо 2 .
Смотрите: http://phpsadness.com/sad/9 и аналогично.
Сначала мы всегда ставим предмет, затем ключевое слово ( $haystack сначала, затем $needle ).
Например, вы бы сказали «Поиск Google for Dog » (что означает «Поиск $subject для $keyword »).
Большинство функций PHP уже следуют этому соглашению.
Смотрите: http://phpsadness.com/sad/6
Мы всегда ставим обратный вызов в последний раз.
ПРИМЕЧАНИЕ. Если параметры, приведенные функции, не являются тем, что она ожидает, например, передача массива, где ожидается строка, возвращаемое значение функции не определен. В этом случае он, вероятно, вернет нуль, но это просто соглашение, и на это нельзя полагаться. http://php.net/manual/en/functions.internal.php
Мы хотели бы исправить вышеприведенное в> 1,0 выпусках.
Версия 1.0 будет содержать все встроенные функции PHP.
Затем мы могли бы продолжить внедрение частной системы плагинов для добавления комплексных расширений в 2.0, и сделать систему плагина публичной, чтобы любой мог реализовать обертки для внешних расширений в версии 3.0.
У нас есть подробные вехи со всеми функциями, которые будут реализованы до версии 1.0 по адресу https://github.com/nkkollaw/zubr/milestones.
Приглашаются запросы.
Взгляните на файл appling.md.
Электронные письма можно найти в файле composer.json .