Могу ли я использовать 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 вхождений.