PHP 7, следующая версия самого популярного в мире языка программирования, была выпущена. Мы хотели бы снимать фейерверки и напиваться с нашей вновь обретенной мощью (серьезно, язык теперь в настоящей высшей лиге, функциональности и производительности ), но мы уверены, что остальная часть интернета сделает это за нас. Вместо этого мы сконцентрируемся на составлении (постоянно обновляемого) списка ресурсов, чтобы начать работу с версией 7 — публикациях, описывающих новые возможности, книгах, которые помогут вам начать работу, и многом другом. Давайте доберемся до этого!
Что случилось с PHP 6?
Когда нам говорят, что следующая основная версия — 7, когда мы до сих пор работали на 5+, многие задаются вопросом, что же случилось с версией 6. Это длинная история, поэтому, чтобы не запутаться, когда речь идет об этом, вот некоторые интересные обсуждения и сообщения по мере необходимости:
- https://philsturgeon.uk/php/2014/07/23/neverending-muppet-debate-of-php-6-v-php-7/
- https://wiki.php.net/rfc/php6
- https://news.ycombinator.com/item?id=8786919
Короче говоря, проблемы с юникодом, которые должны были быть решены в версии 6, в конечном итоге потерпели неудачу, со слишком большим количеством дополнительных сложностей, и такого рода разрушенные вещи для всех. Было решено, что представитель версии 6 слишком поврежден, чтобы поддерживать его, и был сделан переход на PHP 7.
Новые особенности
Ранее мы кратко говорили о новых функциях, но вот более полный список ссылок на информацию о них — сейчас самое время погрузиться и подготовиться.
Чтобы узнать о том, что произойдет, и какое влияние это может оказать на вас:
- Официальный список новых функций
- Супер полный список на Github
- Чего ожидать серии
- PHP7 с первого взгляда
- Взгляд DigitalOcean на новые функции
- 5 малоизвестных функций Колина О’Делла , всего одна из нескольких очень полезных статей PHP 7
Если вы любите видео уроки и не возражаете платить за них, два сайта освещают одно и то же:
- Кодовый курс по адресу https://www.codecourse.com/library/lessons/php-7-new-features
- Laracasts на https://laracasts.com/series/php7-up-and-running
Чтобы узнать о системе типов, возможно, самое большое изменение, и как это можно сравнить с взломом:
- http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems
- https://medium.com/the-white-hat-elephpant/php7-more-strict-but-only-if-you-want-it-to-be-78d6690f2090
Начало работы с PHP 7
- Если вы не относитесь к категории виртуальных машин, для установки PHP 7 на самую последнюю версию OS X см. Http://php-osx.liip.ch/
- Однако если у вас есть PHP Start Environment — книга по-настоящему вашей, отредактированная и рецензированная почтенным Россом Таком . Это небольшая книга о том, как начать работу с кодом — узнать о запросах, ответах, виртуальных машинах и всех других важных настройках сервера и локальной машины разработки. Книга помогает подготовить вас к написанию кода, не зависящего от платформы, и дает возможность другим просто войти в вашу команду с прихотью.
- Платный вводный курс от Zend — хорошо для людей, знакомых с PHP 5, которые не против выплачивать деньги
- Официальное руководство по миграции с 5.x
- Отличный пост Эрики на DigitalOcean
Доступны различные средства проверки и преобразования совместимости:
- PHP7MAR (Migration Assistant Report) сообщит о любых несоответствиях между вашей текущей кодовой базой и PHP 7, так что вы сможете планировать и планировать свой путь обновления
- php7ize — это исправитель кода, который пытается автоматически добавлять функции PHP 7 в базу кода PHP 5.
- php7cc (Compatibility Checker) попытается сделать то же самое, что и MAR выше — сравнить свои результаты для получения наиболее надежных результатов.
Следует отметить, что ни один из вышеперечисленных инструментов не является заменой хорошего набора тестов — единственный способ быть на 100% уверенным в том, что никаких ошибок не осталось, — покрыть ваш код тестами, чтобы его можно было легко проверить и проверить во время миграции.
И последнее, но не менее важное: PHPToday собрал совершенно фантастический список выступлений, который вы можете посмотреть здесь .
Инструменты, тестирование и хостинг
Вокруг новой версии уже появилось много полезных инструментов:
-
PhpStorm , как и прежде, уже поставляется с полным режимом PHP 7.
-
Phan — это статический анализатор, о функциях которого вам лучше всего прочитать здесь . У нас есть полное учебное пособие для любопытных.
-
Exakat это еще один анализатор
-
Тули — еще один, но развитие несколько остановлено. Если кто-то хочет написать сравнительный пост, нацеленный на все три, дайте нам знать!
-
Андреа Фолдс выпустила несколько интересных эксклюзивных пакетов PHP 7, на которые стоит взглянуть!
-
Ящик Vagrant от Rasmus Lerdorf — это ящик, который можно использовать при тестировании на нескольких версиях PHP, и его можно скачать здесь . Учебник по его использованию здесь .
-
Travis CI уже некоторое время поддерживает PHP 7. Настроить проект на 7-й тест легко, просто сделайте так, чтобы ваш файл
.travis.yml
language: php php: - 5.6 - 7.0 - hhvm # This triggers builds to run on the new TravisCI infrastructure. # See: http://docs.travis-ci.com/user/workers/container-based-infrastructure/ sudo: false matrix: allow_failures: - php: 7.0 before_script: - travis_retry composer self-update - travis_retry composer install --no-interaction --prefer-source script: - phpunit --coverage-text --coverage-clover=coverage.clover after_script: - if [[ $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover; fi
Все вышеперечисленное было вдохновлено скелетом PhpLeague — готовым пакетом для PHP 7, поэтому, если вы начинаете новый , вот где искать базовую линию.
-
Прямо сейчас, хостинговое пространство довольно мало для PHP 7, но следите за http://phpversions.info/php-7/ — список будет обновляться по мере поступления новой информации.
Разнообразный
Что касается ресурсов по разработке расширений для PHP 7 (с API расширений все немного по-другому), http://gophp7.org/gophp7-ext/ по-прежнему остается популярным сайтом.
Чтобы присоединиться к сообществу и обсудить вопросы или обратиться за помощью, некоторые из следующих могут быть полезны, в порядке популярности:
- На IRC будет полезна группа ## php на freenode
- Для тех, кто предпочитает более статичную среду, субреддит PHP может быть не только местом знаний, но и минным полем. Действуй осторожно.
- Если вы не относитесь к IRC или Reddit, но, тем не менее, любите живое обсуждение, есть PHP Slack Channel и PHP-чат StackOverflow
- Чтобы присоединиться к группе пользователей для некоторой офлайновой тусовки, проверьте http://php.ug/
Вывод
Есть больше ресурсов, чтобы поделиться? Дайте нам знать! Платные или нет, мы рассмотрим все, что вы нам бросаете, и, возможно, включите это.
С выходом PHP 7 вы собираетесь конвертировать свои приложения / пакеты в ближайшее время? Если нет, то почему? Дайте нам знать ваши мысли и чувства ниже! И не забывайте — новая версия не была бы возможна без тяжелой работы всех основных участников. Не все они могут видеть друг друга, но когда они объединяют свои ресурсы и стремятся к общей цели, небо — предел. Вот вам, чемпионы, спасибо за сохранение веб-эпопеи!