#php #компиляция
Вопрос можно ли скомпилировать php для работы на сервере (т.е. не интерпретировать через движок php, а скомпилировать и вызывать)? Дело в том что нашел на хабре статью, сравнивающую twig со smarty и там была табличка с графой компиляция. Вот я не понял как они компилировали и имелось ли ввиду компиляция php скрипта или шаблона в быстрый php скрипт (как это делает смарти). Также заинтересовал возможность компилирования, чтобы продавать под ключ сайты.
Ответы
Ответ 1
Имеется еще такая штука, как говорит википедия Zend Guard (ранее назывался Zend Encoder) — позволяет закодировать скрипт в байт-код, который потом можно использовать точно также как и обычный, за исключением возможности его отредактировать. Предназначено для защиты интересов и интеллектуальной собственности разработчика. Для работы таких скриптов обязательно нужен Zend Optimizer. Zend SafeGuard Suite — то же самое, что и Zend Encoder, только дополнен Zend License Manager, который позволяет создавать лицензии к кодируемым скриптам. Можно задать время (expire) и условия (привязка к IP, MAC, etc) работы. Удобно для Shareware-версий или демоверсий. Zend Optimizer — единственное приложение, распространяемое бесплатно. Являет собой серверный модуль для запуска закодированных с помощью Zend Encoder и Zend SafeGuard Suite скриптов, а также немного их ускоряющий (заявлено, что до 40 %). Подробности о разработках Zend найдете здесь. Цены, правда, запредельные, но как вариант я бы рассмотрел.Ответ 2
В Facebook компилируют PHP в C++, используя HipHop. Вроде как, это наиболее шустрое, из имеющихся на данное время решений. Правда, не поддерживаются некоторые конструкции, например, eval(). По сравнению с PHP+Apache (mod_php), по заявлениям Facebook, экономится около 50% процессорного времени при отдаче веб-интерфейса, и около 30% при отдаче API. Еще был (нынче, можно сказать, помер от нехватки интереса) проект Raven от Roadsend, который компилировал в байт-код LLVM, со всеми вытекающими плюсами оной (переносимость между платформами/архитектурами, JIT и т.д.)Ответ 3
Например - http://www.phpcompiler.org/ со странички phc for PHP programmers (See Manual): Compile PHP source into an (optimized) executable (supports entire PHP standard library). Compile a web application into an (optimized) extension (supports entire PHP standard library). Pretty-print PHP code. Obfuscate PHP code (--obfuscate flag - experimental). Combine many php scripts into a single file (--include flag - experimental). Optimize PHP code using classical compiler optimizations (in the dataflow branch - very experimental). компиляция php в (оптимизированный) исполняемый файл (с полной поддержкой стандартных библитек php) компиляция web-приложения в (оптимизированное) расширение (с полной поддержкой стандартных библитек php) обфускация PHP кода (изменение кода таким образом, чтобы затруднить его анализ и понимание) (экспериментальная версия) комбинирование нескольких php скриптов в один файл оптимизация php скриптов с использованием классических методов оптимизации (экспериментальная версия)Ответ 4
Компиляция это не про php - Это интерпретируемый язык. Его код на сервере как раз и интерпретируется. twig со smarty Сравнивали тк они действительно нужнаются в компиляции (и скорость их обработки разная). И php кстате тоже является шаблонизатором, причем нативным. smfrty и еже с ними призваны углубить (усугубить) принцип MVC, что бы при выводе html кода не возникало соблазна модифицировать данные
Комментариев нет:
Отправить комментарий