Бесплатные PHP компиляторы. Как работает интерпретатор

Почти все разработчики рано или поздно сталкиваются с необходимостью запустить или быстро проверить какой-то код, но не все знают, что для такой простой задачи совсем не обязательно запускать тяжёлые десктопные IDE или прикладные компиляторы. Достаточно воспользоваться онлайн-инструментами, которые позволяют всё сделать намного быстрее: Ctrl+C, Ctrl+V, Run, вжух - и вывод программы уже перед вашими красноватыми глазами.

Мы отобрали лучшие онлайн-компиляторы: некоторые из них довольно универсальны, другие заточены под строго определённые задачи. В любом случае лишними они не будут.

Koding

Koding.com не является онлайн-компилятором в привычном смысле. Каждый пользователь сервиса может создать в облаке несколько полноценных виртуальных машин под управлением Ubuntu 14.04, на которых может сделать всё, что пожелает, в том числе - скомпилировать код. Все популярные языки поддерживаются по умолчанию, но вы с лёгкостью сможете добавить свои.

Кроме панели управления своим сервером, в интерфейсе доступна удобная IDE и окошко терминала. Koding является самым универсальным средством, далее мы рассмотрим более простые и специализированные варианты.

IdeOne

IdeOne - это онлайн компилятор, а также инструмент отладки, который позволяет прямо в браузере выполнять код на более чем 60 языках программирования и их конкретных версиях.

Для тех, у кого нет девушки, создатели предусмотрели компиляцию кода на языке Brainfuck.

JDoodle

Ещё один онлайн-компилятор, который поддерживает множество языков, в том числе и тех, которые вы не найдете во многих других онлайн-компиляторах. Приятной особенностью JDoodle является возможность совместной работы - просто отправьте ссылку на вашу текущую сессию и плодите баги с двойной скоростью!

jsFiddle

Пусть название вас не обманывает - jsFiddle создан не только для JavaScript. Этот онлайн-редактор для фронтенда позволяет проверить любое сочетание JavaScript, HTML и CSS. Разумеется, есть поддержка разных фреймворков, например, jQuery, Vue, React, TypeScript, а также CSS-препроцессоров вроде SCSS. Для удобства вы можете выбрать привязку клавиш из любимого редактора. Правда, только в том случае, если ваш любимый редактор - Vim, Emacs или Sublime Text.

CodePad

CodePad - минималистичный сервис, в котором можно хранить код, делиться им и запускать с последующим выводом результатов его выполнения. На выбор предоставляется несколько наиболее распространённых языков, но, к сожалению, без выбора конкретных версий интерпретаторов или компиляторов.

Главным его достоинством является простота и лёгкость: сайт будет быстро работать даже при медленном интернете. Предусмотрено автоподключение стандартных заголовков, а также интеграция с Vim или Emacs.

Из минусов можно назвать полное отсутствие подсветки синтаксиса при вводе кода в форму. Впрочем, при просмотре уже сохранённой записи подсветка присутствует.

GCC GodBolt

GCC GodBolt - интерактивный компилятор языка С++. Попал в эту подборку по той причине, что имеет простой интерфейс, а также большое количество настроек, в том числе для опций, регулируемых с помощью ключей.

Выбирать можно из множества версий компиляторов, включая самые последние. Из интересных особенностей можно отметить моментальный перевод кода программы на язык ассемблера.

Компиляция PHP из исходных кодов чаще делается на Unix-подобных систем. Те, кто работает в среде ОС Windows, скорее всего, загрузит и установит PHP из бинарных пакетов. И хотя я не согласен, что это проще в использовании, предварительно скомпилированных решение, даже на системах Unix есть некоторые преимущества, которые могут прийти с составлением двоичной от источника. В общем:

  • У вас есть возможность тонкой настройки конечного продукта при компиляции. Может быть, вы хотите определенное расширение которое компилируется непосредственно в двоичном, а не загружать его в качестве внешней библиотеки. Или, возможно, вы хотите, выключить то что особенностью которого, как правило, доступно по умолчанию.
  • Вы можете сделать хитрость, в процессе компиляции, если нужно, которые могут повысить производительность для конкретной среды (конечно, это предполагает, что вы уже знаете, что вы делаете в этом случае вы бы не читали эту статью !).
  • Компиляция может быть единственным способом заставить вещи работать, если скомпилированные двоичные файлы были построены на более старых версиях с поддержкой программного обеспечения и библиотек, а сейчас Вы работаете на новой системе.

Предупреждение: компиляция может разочаровать, особенно на Windows! Вы должны убедиться, сборка среды настроена правильно, узнаете, как использовать компилятор и другие инструменты для сборки должным образом, и удовлетворить любые библиотеки зависимостей. Надеемся, эта статья ваш первый шаг в преодолении многих из этих препятствий.

Настройка среды сборки

PHP написан на C и поэтому компилятор C необходим, если вы собираетесь построить PHP из исходных кодов. C + + это супер набор C, так что хороший C + + компилятор должен иметь возможность компилировать код C, и хотя это не всегда так. Для Windows, Visual Microsoft, C + + Express (который после будет называться VC + +) в свободном доступе на веб-сайте компании Microsoft . Использовалось издание 2010 года.

При выборе версии компилятора, вы должны иметь в виду, как вы будете работать под управлением PHP. Если вам придется работать с mod_php официально скомпилированных двоичных Apache, и вы хотите, скомпилировать PHP с помощью Visual Studio 6, так как это версия для компиляции Apache. Модуль должен нацелиться на ту же библиотеку времени выполнения, как Apache, в этом случае msvcrt.dll . Если вы строите Apache из исходных кодов, а также, или если вы собираетесь запускать PHP как FastCGI или CLI, то это не проблема, и 2010 год будет работать нормально.

Вы также должны установить программное обеспечение Windows Development Kit (SDK после). SDK дает нам важные файлы заголовков для платформы Windows, которая нам понадобится для успешной компиляции. Это тоже , использовалась версия 7.1.

Установите компилятор, а затем SDK. Я не буду обсуждать установку, так как оба имеют графический мастер установки, проведет вас через весь процесс.

Если у вас есть работающий компилятор создать, загрузить двоичный инструменты и Известные пакеты из windows.php.net . Бинарный пакет инструментов (я использую 20110915 архив) содержит средства разработки, как re2c, зубры, и некоторые дополнительные команды, которые вы должны будете построить PHP. Известные пакет (я использую 5,4 архив, поскольку это совпадает с версией PHP я буду компиляции) содержит минимальные заголовки и библиотеки зависимостей необходимо, например, zlib.h .

Это, вероятно, само собой разумеется, что вы хотите скачать источник PHP, а также от windows.php.net . На момент написания этой статьи, текущая версия PHP 5.4.6, так что этот номер версии вы увидите в примерах.

Это хорошая идея, чтобы создать рабочее пространство, к которому можно распаковать исходный код и компилировать что бы они не влияли на остальную часть Вашей системы. Создайте папку C: \ PHP-Dev , которая будут служить в качестве рабочего каталога, а затем распаковать в ней бинарный архив и инструменты.

Далее, распакуйте содержимое архива, источник PHP в C: \ PHP-Dev теперь у вас есть php5.4 в исходной папке, а затем извлечь его архив deps в одноуровневую папку deps. Структура каталога должна выглядеть примерно так:

Откройте Windows SDK Command Prompt, которая была установлен ​​с SDK (Start => Microsoft Windows SDK => Windows SDK Command Prompt) и выполнить следующие команды:

Setenv /release /xp /x86 cd C:\PHP-Dev bin\phpsdk_setvars.bat

С помощью командной строки консоли SDK желательно перед обычным cmd.exe консоли, как она задает много переменных среды, специфичных для компиляции исходного кода. Компиляции команд позже также должны быть выполнены в этой консоли.

setenv установить некоторые свойства сборки для окружающей среды, в данном случае установлена среда целевой Windows XP 32-разрядной версии сборки. Вы можете попробовать и построить с / x64 , если вы ищете приключений. Определение различных версий Windows, таких как / Vista , скорее всего, проблемы выхода из-за какой-то странной определений в скриптах (PHP по-прежнему хочет быть XP-совместимым). Если вы действительно не знаете, что вы делаете, это, наверное, безопаснее всего придерживаться рекомендуемых значений, которые я использовал выше.

phpsdk_setvars.bat сценарий выходит на некоторые дополнительные переменные окружения, процесс сборки смог найти бинарные инструменты.

Имейте в виду, что все эти переменные настройки только временные сессии в консоли. Если вы всё быстро закроете что бы вернуться к компиляции позже, вам необходимо будет выполнить команду еще раз, а если вы этого не сделаете, вы будете получать ошибки вроде следующего, когда вы позже запустите настроить, вы не сможет продолжить:

Checking for bison.exe ... ERROR: bison is required

Убедившись, что у вас есть правильная среда построения, необходимые источники, и никаких зависимостей самая сложная часть процесса. Так что теперь ваша среда настроена из исходного кода и зависимостей в своем месте, пришло время компиляции!

Компиляция PHP

В командной строке SDK, перейдите в папку источник PHP и запустить buildconf. Команда отвечает за генерацию конфигурационных файлов, которые будут созданы Makefile для управления процессом компиляции.

После buildconf завершает (это займет всего секунду), выполните настройку configure --help - и изучить помощь, какие функции вы хотите включить / выключить, а затем снова запустите configure (настройки) с любой желаемой опцией. Это хорошая идея, чтобы проверить выходные перед переходом, поскольку он предупредит вас, если любой из необходимых зависимостей не доступны. Если это произойдет, вы можете либо установить зависимости и повторно запустить настройку еще раз или отрегулируйте вызова для отключения расширений, которые в них нуждаются.

Наконец, запустите NMAKE , чтобы начать компиляции.

Cd C:\PHP-Dev\php5.4 buildconf configure nmake nmake test

Если любая конфигурация или NMAKE не удается, проблема одна из двух: Первая, среда не настроена правильно, второе вы включили функцию, которая зависит от внешних библиотек и библиотеки не установлены в вашей системе. Дважды проверьте, что вы создали окружающую среду в соответствии с инструкциями выше, и что любые дополнительные библиотеки, которые могут потребоваться в основе, параметры конфигурации были настроены.

Когда первый NMAKE процесса компиляции завершен вы найдете свой ​​новенькие PHP файлы в папке Release_TS. NMAKE тест запускает новые двойные через ёмкость ошибка тестов, чтобы убедиться, что все работает как и должно быть. Результаты тестов NMAKE направляются в QA команда, которая зависит от них, чтобы улучшить PHP, так что это может занять несколько минут, для работы, это ответственное дело.

На этом этапе вы также можете воспользоваться дополнительным шагом ведения NMAKE оснастки, которая создаст ZIP архивы и двоичные файлы, которые можно скопировать вокруг.

Компиляция extensions

Есть два пути для компиляции PHP extensions (расширений): статически и динамически. Статически скомпилированные расширение компилируется в бинарный PHP, в то время как динамически скомпилированных один отдельный DLL, которые могут быть загружены позже через php.ini файл. Расширения, как правило, составлен по состоянию DLL, хотя есть некоторые преимущества для статической компиляции, а также, в конечном итоге это зависит от ваших потребностей.

Для компиляции PHP extensions (расширений) на Windows, экстракт расширение исходного кода папку, в ext папку вашу директорию-источник PHP. Затем, заново настроить скрипт, запустив buildconf--force и перекомпиляции PHP, используя соответствующие пункты, чтобы включить расширение.

В качестве примера, давайте компиляции расширение AOP статически. Скачать исходный код из PECL , и распакуйте его в папку, в ext . Затем выполните следующие действия:

Cd C:\PHP-Dev\php5.4 buildconf --force configure --enable-aop nmake

Опцией --force, buildconf сила ей восстановить конфигурационный скрипт. Затем, запустите configure --help и вы должны увидеть вариант включить новое расширение на выходе. В этом случае, это --enable-AOP.

Когда nmake finishes заканчивается, вы должны будете недавно построенный PHP двоичный PHP с AOP.

Расширения будут доступны как DLL, а не испеченный в PHP, вы можете выполнить те же действия, что и выше, но определять "shared" (общие) в качестве значения для настройки, позволяет вариант.

Buildconf --force configure --enable-aop=shared

В результате DLL будет в папке Release_TS вместе с двоичным PHP компиляция закончится, в данном случае имя php_aop.dll .

P.S.

Компиляция в Windows, все еще ​​немного сложна, особенно когда дело доходит до расширения. Возможность компилировать исходный код хороший навык, особенно если впоследствии вы захотите изменить PHP.

Статья подготовлена для вас, коллективом сайта
Оригинал статьи:
Перевел: Виктор Клим

Все бесплатные компиляторы PHP, которые представлены здесь, могут пересобирать PHP скрипты в машинный код, способный работать на компьютере без загрузки специального PHP интерпретатора, или компилировать их в интерфейс командной строки байт-кода (для установки необходим NET или Mono framework или Java байт-кода (где требуется виртуальная машина Java для установки)).

Такие компиляторы могут быть полезны для различных целей: они могут ускорять выполнение вашего скрипта, поскольку больше не интерпретируются во времени выполнения; или благодаря им, вы можете распространять свои приложения, не выявляя исходного кода (что требуют другие коммерческие скрипты). Я предполагаю, что они также подходят в случае, когда кто-то хочет написать интернет-зависимые программы PHP и распространять их с функцией запуска на рабочем столе (в отличие от обычных веб-приложений, которые выполняются на сервере), это всё возможно потому, что PHP является лёгким в обучении языком программирования и базово содержит в себе множество встроенных функций с доступом к интернету. (В этом случае, вам либо придется распространять приложения с встроенным веб-сервером или используйте компилятор, который компилирует сервер в ваше приложение.)

Кстати, если вы хотите использовать обфускацию в своём коде, то знайте, что и это возможно при использовании PHP ускорителя . Такие ускорители тоже предполагают увеличение скорости выполнения вашего подлинника.

Полезная информация для тех, кто ещё не знает, что официальную версию PHP-переводчика можно скачать на сайте PHP: Hypertext Processor.

Бесплатные компиляторы PHP для составления скриптов native code, .NET или Java байт-кода.

Bambalam (новинка)

Эта программа производит самостоятельные Windows приложения EXE для вашего PHP исходного кода. Это не совсем компилятор для native code, поскольку он просто кодирует исходный код и встраивает интерпретатор PHP, но эта программа, безусловно, подходит людям, которые ищут компиляторы для native и byte-code. К тому времени, как вся программа была написана, средой её выполнения была встроенная версия PHP 4.4.4 (программа не обновлялась с 2006 года). Исходный код для Bambalam находится в открытом доступе.

Phalanger (для.NET)

Phalanger компилирует ваш PHP код в байт-код CLI (.exe или.dll). Эту программу можно запустить через.NET 4.0 или Mono frameworks. Ваш PHP код может использовать любые объекты.NET и дополнительные библиотеки стандартного расширения PHP. Получившаяся NET-сборка может быть как подписанной, так и скрытой. Данная программа также выпускает шаблоны, позволяющие вам создавать приложения PHP с помощью Visual Studio. Программа выпущена под лицензией Apache.

HipHop for PHP (для native code)

HipHop переводит ваш PHP код на код С++, который позже компилируется, используя компилятор GNU C++, в исполняемый двоичный код. Компилятор поддерживает все функции версии PHP 5.3 (конечно, за исключением такой вещи, как eval() ). Он работает и компилирует код для 64 битной версии Linux и FreeBSD. Так как программа распространяется в форме исходного кода, вам придётся компилировать вручную (самостоятельно). Она выпускается под лицензией PHP Licence.

Roadsend PHP (для native code).

Компилятор Roadsend PHP производит машинные двоичные (исполняемые) файлы для Windows и Linux. Ваши скрипты не ограничиваются программами консоли (командными строками): они могут быть построены с помощью встроенных веб-серверов, позволяющих им работать тем способом, которым они работают на веб-сайте, пусть и на вашей конечно пользовательской системе. Компилятор выпущен под лицензией GNU GPL и выполняется под GNU LGPL. К несчастью, программа остановила своё активное развитие.

Project Zero (для Java)

(Замечание: похоже, это программное обеспечение является ныне несуществующим. Сайт вот уже как пол года является недосягаемым.) Project Zero включает в себя компилятор и среду CLR, которые могут прокомпилировать ваш PHP код в Java bytecode и исполнять его. Заметьте, что Project Zero является чем-то большим, чем просто PHP компилятором/средой выполнения; он представляет собой развитую среду, которая позволяет вам совершенствовать веб-приложения, используя PHP или Groovy (другой скрипт-язык). Этот компилятор доступен для Windows, Mac OS X и Linux. Для того, чтобы работать с этим компилятором, вам понадобиться скачать Java Development Kit.

А какой из предложенных компиляторов предпочитаете вы? Или у вас есть другой любимый переводчик? Оставляйте свои замечания и комментарии ниже, мы с радостью их прочитаем и намотаем на ус.

Теги: PHP компиляторы, перевод скриптов





Copyright © 2023 Базовые компьютерные навыки.