Могу ли я использовать hiphop Facebook с такими фреймворками, как Zend Framework, cakephp, symfony
Вчера Facebook запустил HipHop, исходный код-конвертер с php на С++. Набор php-функций и конструкций более ограничен, чем в стандартном php.
Совместимы ли текущие популярные php-фреймы (ZF, CakePHP, symfony) с HipHop? Если нет, то какие части этих фреймворков непригодны для использования?
Ответы
Ответ 1
Если я не ошибаюсь, HipHop еще не выпущен - даже страница wiki, связанная с Facebook annoucement вчера еще не встал.
Итак, сейчас будет немного сложно ответить.
Я полагаю, что все это будет зависеть от:
- Функции, используемые Frameworks - как уже говорилось здесь и там, такие вещи, как
eval
, не поддерживаются HipHop
- Расширения PHP, используемые Frameworks: только несколько из них были перенесены Facebook на HipHop.
- В зависимости от структуры и ваших конкретных потребностей возможно, возможно, будут поддерживаться некоторые подмножества используемых вами Framework, даже если не все доступные компоненты... Я полагаю, что время покажет, что; -)
Ответ 2
По крайней мере, ZF и Symfony используются для приложений уровня предприятия, скорее всего, они будут работать с HipHop. Если не сейчас, то рано или поздно. Однако вопрос заключается не столько в том, что они могут работать с этими фреймворками, сколько в том, как выглядит ваша поддерживающая ИТ-архитектура.
HipHop предназначен для масштабирования больших многосайтовых сайтов с высоким трафиком, таких как Facebook. В своем обычном веб-приложении вы, скорее всего, не получите никакого преимущества. Просто продолжайте использовать memcache и APC.
См. следующие статьи:
Ответ 3
Хотя я уверен, что большинство из нас интересуется, что такое HipHop, я знаю, что это не будет замена PHP - это очень нишевой продукт: если вы не используете большую ферму серверов, преимущества по сравнению с эксплуатационными расходами просто не оправдали бы его.
Возможно, это может быть интересной альтернативой использованию кодированного PHP для некоторых людей, но опять же это приводит к еще большему количеству накладных расходов на обслуживание. Единственный сценарий с низким объемом, в котором скомпилированный PHP, по-видимому, имеет большой смысл, - это встроенные устройства (там, где программное обеспечение существует для поддержки аппаратного обеспечения, а не наоборот) и для очень высоких установок безопасности (где это не очень хорошая идея для имеется переводчик).
Пока рано говорить о том, с чем будет работать программное обеспечение PHP. Однако даже после того, как это было установлено, я хотел бы видеть твердую приверженность любого поставщика, что они будут явно поддерживать HipHop в будущем, прежде чем я переключился.
С.
Ответ 4
Я не буду повторять то, что уже было сказано, я просто добавлю, что как только HipHop будет выпущен, вы можете рассчитывать на сообщество openource, чтобы отправлять исправления для вашей любимой среды для повышения совместимости с HipHop.
Кроме того, один хороший способ проверить, совместим ли ваш любимый фреймворк или нет, - запустить тестовый набор с помощью HPHPi (тогда вы знаете, где сосредоточить усилия на исправлении;).
Ответ 5
Поиск "eval" дает много ложных срабатываний, так как вы получаете хиты для слова "оценивать" в комментариях или escapeValue, если поиск не чувствителен к регистру и т.д.
Если вы ищете 'eval (' в ZF 1.11, вы найдете один раз в Zend/Serializer/Adapter/PhpCode.php в строке 59 в методе, который неэтериализует сохраненный PHP-код. Этот метод не является частью архитектуры MVC, компонент db и фактически не используется нигде в структуре (Zend_Serializer_Adapter_PhpCode не создается нигде в базе кода).
Итак, если eval разбивает ваше приложение ZF-Hip Hop, не используйте Zend_Serializer_Adapter_PhpCode или eval в своем потребительском коде.
Ответ 6
Простой ответ: я не думаю, что это было бы.
Просто увидел это на странице hiphop: https://github.com/facebook/hiphop-php/wiki/
"Вы продолжаете кодирование в более простом PHP, тогда HipHop выполняет ваш исходный код семантически эквивалентным образом и жертвует некоторыми редко используемыми функциями, такими как eval(), в обмен на улучшенную производительность".
Был поиск "eval" на ZF 1.9 и было более 100 вхождений.