Как бы вы перешли с PHP на Hack?
Facebook представил новый язык программирования, который выглядит в основном как расширение PHP. Они назвали это Hack, и это работает на их двигателе HHVM.
Посмотрев их сайт и немного почитав об этом, я подумал, насколько плавной может быть миграция с PHP на Hack.
Давайте основывать это обсуждение на веб-приложении, уже развернутом в стеке LEMP или LAMP.
Некоторые из моих первоначальных мыслей и список действий включают в себя:
- Как запустить как PHP, так и Hack в процессе переноса базы кода?
- Миграция с nginx/Apache на HHVM
- Мигрировать кодовую базу итеративно
Итак, как бы вы подошли к этому?
2 ответа
Я инженер в Facebook, который работал над Hack. В частности, я написал несколько частей инструментов преобразования, а затем применил их к базе кода Facebook. Это, вероятно, должно быть несколько вопросов - это зависит от того, как именно ваш проект настроен, какие функции PHP вы используете, и так далее. Некоторые хорошие стартовые ресурсы включают в себя:
- Установите HHVM. Прямо сейчас Hack доступен только в том случае, если вы используете ночные пакеты (доступны только для Debian и Ubuntu) или если вы компилируете из нашего источника на github, поэтому убедитесь, что вы делаете один или другой.
- Запустите ваш код на HHVM с помощью nginx и fastcgi. Это должно быть довольно просто - HHVM должен запускать код PHP из коробки. Если это не так, это ошибка.
- Включите проверку типов Hack в вашем проекте. Это мало что даст, так как весь ваш код на PHP.
- Начните использовать наши инструменты для конвертации и получите больше кода Hack в своей базе кода. Мы беспрепятственно взаимодействуем с PHP, поэтому вы можете делать столько, сколько вам нужно, так быстро или так медленно, как вы хотите. Отсюда вы золотые - делайте все, что имеет смысл для вашего проекта!
Это то, что вам нужно, чтобы начать. Конкретные наблюдения лучше всего задавать как отдельный вопрос. Я постараюсь следить за СО и ответить, где смогу, чтобы помочь людям начать! Вы также можете присоединиться к нам на IRC, #hhvm на Freenode.
Судя по звукам, это будет почти незаметно для перехода. Из проводной статьи об этом:
Адерманн говорит, что хак будет особенно привлекательным для существующих магазинов PHP. "По иронии судьбы, - говорит он, - его главное преимущество в том, насколько мало он отличается от PHP". Подобно Facebook, эти магазины могут постепенно переносить свои операции с одного языка на другой.