Об этом проекте

PHP — это скриптовый язык общего назначения, ориентированный на веб-разработку. Этот репозиторий, php/php-src, содержит официальный исходный код интерпретатора PHP и распространяется под лицензией Modified BSD License (BSD-3-Clause). Файл README ссылается на официальное руководство на сайте php.net/docs для получения документации. Для пользователей, которые не хотят собирать из исходников, доступны готовые пакеты и бинарные файлы: бинарные файлы для Windows доступны на windows.php.net, а руководства по установке для других систем описаны в главе «Установка» руководства. Сборка из исходников требует наличия autoconf, bison и re2c для минимальной сборки; для сборки по умолчанию дополнительно требуются libxml2 и libsqlite3. В README перечислены команды установки пакетов для Ubuntu, Fedora, macOS через Homebrew и macOS через MacPorts. Процесс сборки выглядит следующим образом: выполните ./buildconf для генерации configure, затем запустите ./configure (с опцией --enable-debug, рекомендуемой для разработки), после чего выполните make -j4, где количество потоков должно совпадать с числом доступных ядер, как указано в выводе nproc. Пользователям Windows предлагается отдельное пошаговое руководство по сборке в вики PHP. Тестирование обеспечивается обширным встроенным набором тестов, который запускается командой make test после успешной компиляции. По умолчанию тесты выполняются параллельно с использованием до 10 обнаруженных логических процессоров; количество потоков можно переопределить с помощью -jN в TEST_PHP_ARGS или TESTS, а также можно указать конкретные каталоги, например, make TESTS=tests/lang/ test. Сайт qa.php.net предоставляет дополнительную информацию о тестировании и обеспечении качества. После успешной сборки и тестирования команда make install устанавливает PHP, что может потребовать прав суперпользователя в зависимости от префикса и разрешений. Расширения добавляют функциональность за пределами множества необходимых встроенных расширений. Дополнительные расширения перечислены на странице PIE Extensions в Packagist и могут быть установлены с помощью PIE (PHP Installer for Extensions) или устаревшего PECL. Вклад в разработку приветствуется через форк репозитория и создание pull-запросов. Обсуждение проходит на GitHub и также может вестись в списке рассылки разработчиков internals@lists.php.net. Для новых функций требуется принятый RFC, подробности можно найти на страницах вики об RFC и голосованиях; для исправления ошибок RFC не требуется. В сообщениях коммитов следует ссылаться на задачи GitHub в формате GH-NNNNNN или на старые билеты трекера в формате #NNNNNN. README содержит ссылки на дополнительные документы для участников: CONTRIBUTING.md, CODING_STANDARDS.md, внутреннюю документацию, правила списков рассылки и процесс выпуска. Страница с благодарностями перечисляет участников.