Статьи

Резюме Ресурса PHP7

PHP 7 уже в пути. RFC внедряются и совершенствуются, проекты тестируются, библиотеки обновляются. Расширения изменяются, и слово распространяется. Все, что остается, — это получить общие хосты на модернизированной платформе обновления — возможно, самой сложной части улучшения глобального состояния PHP. В этой статье мы рассмотрим некоторые из наиболее важных ресурсов, связанных с PHP 7, и советы, которые вы должны пройти при подготовке к новой версии.

Php7 logo by Vincent Pontier

Изображение через Винсента Понтье

Коробка Расмуса

Несколько месяцев назад Расмус Лердорф создал и загрузил коробку Vagrant для тестирования на PHP 7. Этот короб можно загрузить с Github . В случае, если инструкции сбивают с толку (они не должны быть), см . Пост Роба Аллена . Устройство загружается за считанные минуты и имеет не только включенный PHP 7, но также может очень легко обновиться до самой последней версии PHP 7 и десятков других версий PHP.

Коробка имеет команду newphp которая мгновенно заменяет версию PHP, используемую в настоящее время, на другой двоичный файл, предварительно скомпилированный на коробке. Так, например, ввод newphp 55 в поле переключит с PHP 7 на PHP 5.5., newphp 55 позволит вам быстро запустить код в другой версии. Более того, каждая версия имеет свою собственную папку расширений PHP, так что вы можете легко скомпилировать и установить новые расширения — все они окажутся в нужном месте и не будут конфликтовать с другими двоичными файлами PHP.

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

Для получения дополнительной информации и некоторых интересных тестов различных CMS от самого Расма, см. Его слайд-шоу .

Другие коробки и тестирование

Вы должны проверить свой код на PHP 7. Ранние тесты являются многообещающими, и многие прыгают . Некоторые даже протестировали свои приложения в реальном мире и получили впечатляющие результаты.

Используйте поле Rasmus выше, или, если вы используете PuPHPet , они недавно добавили поддержку PHP7 . Есть некоторые предостережения, но в целом это должно сработать. Vaprobash и Phansible еще не там, но здесь есть надежда.

Если вы хотите накатить свои собственные, эта книга игр Ansible для Ubuntu / Debian может помочь, или просто перейдите в полную оболочку и следуйте этим инструкциям — в этом посте также есть советы по написанию тестов для реальной сборки PHP, так что вы можете внести свой вклад в сам язык!

Если вы не хотите запускать виртуальные машины, вы можете использовать некоторые официальные ночные сборки (также поддерживаемые через Docker ) от Zend, но это также довольно легко сделать в Travis, который теперь включает PHP 7 в свои сборки. Фактически, phpleague / скелет имеет это встроенное . Просто помните — если вы используете результаты Travis для анализа кода Scrutinizer — вы должны разрешить сбои в PHP 7 и, возможно, даже убедиться, что отчет по PHP 7 вообще не будет отправлен.

Тестирование на PHP7 на Travis не только гарантирует, что ваш код работает в последнюю ночь, не заставляя вас вручную обновлять сборку PHP7, но также дает вам некоторый авторитет, которым можно похвастаться — «Мой код готов к PHP7!»

Обновление расширений

Однако библиотеки, пакеты и приложения — не единственные, которые нуждаются в тестировании. Как сказано в мартовском информационном бюллетене (на который вы можете подписаться, используя эту форму , кстати), расширения находятся на переднем крае. Новый API расширения PHP7 достаточно отличается от старых версий тем, что нескольким расширениям потребуются обширные изменения, чтобы оставаться совместимым.

Имея это в виду, страница gophp7-ext была создана для облегчения перехода для большинства разработчиков расширений.

Надеемся, что это поможет таким проектам, как Zephir и недавно выпущенный Phalcon 2, как можно скорее стать 7-дружественными (как говорит команда Phalcon , они уже ищут необходимые обновления PHP7).

Если вы разрабатываете расширения PHP (возможно, вы начали после прочтения некоторых из наших руководств ?) Или знаете людей, которые это делают — укажите им на страницу GoPHP7-ext и попросите их привести свой код в нормальное состояние. Если вы можете заставить их написать о процессе, документируя изменения, которые необходимо было сделать, пожалуйста, укажите им мой путь, и мы опубликуем их выводы (и заплатим им за них), чтобы другие могли извлечь пользу из изучения о процесс.

Важное чтение

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

  • Фил Стерджен начал свою работу с публикацией о замораживании функций PHP7 и текущем состоянии . В нем перечислены некоторые из наиболее важных RFC, но вы должны посмотреть ниже на пост Дэйви для более подробного обзора.

  • Чего ожидать — это первое сообщение, которое вы должны прочитать. Это серия из двух частей от Дэйви Шафика, которая объясняет грядущие изменения практичным образом. Он перечислит все важные принятые RFC и покажет демонстрационный код для каждого, чтобы вы могли увидеть, как они могут повлиять на ваш рабочий процесс на практических примерах.

  • Краткий обзор PHP7 от Zend — еще один отличный обзор. Он включает в себя все перечисленные RFC с их потенциальным влиянием на жизнь разработчика, а также шансы на разрыв BC (в некоторых случаях есть некоторые, но не уверен).

  • Сравнение систем типов PHP7 и Hack реализует одинаковую функциональность с подсказками типов (теперь, когда они переходят на PHP) как в PHP7, так и в Hack. Различия могут вас удивить, и о них стоит помнить. Пост обсуждался на Reddit .

  • Если вас смущают строгие типы, этот пост все еще актуален .

  • Революция PHP7 — возвращаемые типы и удаленные артефакты — это наш собственный предварительный взгляд на PHP7 с тех времен, когда объявление еще не вышло из прессы. (Ссылка добавлена ​​14 мая 2015 г.)

Статистика производительности

  • Zend выпустил эту впечатляющую инфографику о производительности. Тем не менее, он не имеет эталонного исходного кода или подробностей об окружающей среде, так что принимайте его с небольшим количеством соли. (Ссылка добавлена ​​14 мая 2015 г.)

Завершение

Как вы можете видеть, есть много контента, чтобы пройти — и до версии 7 еще несколько месяцев. Мы будем периодически обновлять этот список новыми ресурсами, поэтому обязательно проверяйте время от времени — вновь добавленные сообщения будут помещены в конец соответствующего списка и помечены датой добавления.

Знаете ли вы какие-либо ценные ресурсы, которые мы пропустили? Хотите написать что-нибудь для нас? Дайте нам знать!