Лучшее из мира PHP за 2013
Безусловно, самым важным событием уходящего года стал выход новой мажорной версии интерпретатора — PHP 5.5. Релиз ожидаемо не был революционным, однако включение опкод кэшера Zend Optimiser+ в состав дистрибутива стало огромным шагом вперед. Кроме этого, релиз содержал ряд полезных нововведений, таких как генераторы, блок finally и ряд других.
Релиз также ознаменовал собой конец эпохи 5.3. Последний регулярный релиз этой ветки уже выпущен.
Не обошлось в уходящем году и без проблем. Это, конечно же, недавний взлом php.net, к счастью быстро обнаруженный и исправленный. А также уход Anthony Ferrara из php-internals, который наряду с Никитой Поповым был ярким представителем прогрессивной части команды разработчиков ядра PHP.
2013 год был успешным для PHP, а выход 5.5 и работа над 5.6 дают возможность с уверенностью говорить об установлении такого желанного PHP-разработчиками предсказуемого цикла релизов.
Вышедший в этом году Laravel 4, вне всяких сомнений, заслуживает звания «прорыв» года. Интернет еще за полгода до финального релиза был полон материалов и туториалов по фреймворку, а уж после анонса их поток не останавливается. Сообществом за год проделана огромная работа, особенно радует количество всевозможных ресурсов на любой случай. Это и еженедельные подборки материалов на laravel.io, и репозиторий расширений — Packalyst, и ресурс скринкастов —Laracasts, архивы сниппетов и трюков для Laravel, подборка сайтов и приложений, сделанных на фреймворке —builtwithlaravel.com.
Также на счет сообщества можно занести две успешно проведенных конференции Laracon в США и Европе.
В этом году сообществу был представлен Yii 2. Сначала в виде превью, а затем и полноценный альфа-релиз, работа над которым велась больше двух лет. Кое-кто даже использует в продакшене. Напомню, что было принято решение в Yii 2 использовать возможности PHP 5.4.
Сообщество Yii Framework в лице samdark присоединилось к группе PHP-FIG. Также периодически стал выходить дев-дайджест по Yii 2.
А в ветке 1.1 состоялся массивный релиз 1.1.14.
Безусловный лидер PHP-фреймворков в этом году обозначился 2.2, 2.4 и, конечно же, релизом с долгосрочной поддержкой — 2.3, которая продлится до 2016 года. На базе фреймворка были выпущены универсальные решения, такие как Symfony CMF и платформа для электронной коммерции Sylius.
Но, конечно же, ничто не сравнится с новостью о €5 миллионах инвестиций на развитие экосистемы Symfony
Команда Facebook, работавшая над HHVM, проделала невероятную работу за этот год. И если раньше HHVM казался хоть и интересным решением, но пригодным лишь для Facebook, то теперь HHVM — это реальный инструмент, в котором практически полностью реализована поддержка PHP 5.4, успешно работают все популярные фреймворки, что уже говорить о невероятной производительности. Установка виртуальной машины доступна любому пользователю, благодаря наличию пакетов для популярных Linux-дистрибутивов и на OS X с помощью Homebrew. Windows пользователи к сожалению пока обделены вниманием.
HHVM можно с легкостью использовать на облачном хостинге Heroku, а с недавних пор и на популярном инструменте непрерывной интеграции Travis CI.
Также, нашумевшей новостью был kPHP от vk.com, который, однако, для нас как PHP-разработчиков пока так и остался лишь новостью.
React — не что иное, как реализация паттерна Reactor на PHP. Библиотека позволяет создавать асинхронные основанные на событиях приложения а-ля Node.js. И, несмотря на скепсис о том, что PHP-скрипты должны умирать, React успешно доказывает практическую применимость PHP для решения такого класса задач. И в этом году было продемонстрировано масса примеров использования PHP в асинхронных приложениях: прежде всего Ratchet, использование с Arduino, создание поисковика на React PHP, риалтайм чат на Laravel и Ratchet и даже управление дроном.
Инструмент, который по праву можно назвать одним из самых революционных в мире PHP, инструмент, который изменил «игру», буквально взорвав PHP-сообщество! Количество библиотек растет как на дрожжах и даже ростом популярности PHP, кажется, больше обязан именно Composer’у, а не каким-либо фреймворкам. PEAR де-факто умер.
В этом году состоялся уже седьмой альфа-релиз версии 1.0.0.
Из других важных событий уходящего года в мире PHP стоит вспомнить:
- Zephir — новый язык от команды разработчиков Phalcon
- Поддержка PHP в Google App Engine
- Приняты PSR-3 и PSR-4
Новости и релизы
- Обновления PHP 5.3.28, 5.4.23 и 5.5.7 — Корректирующие выпуски актуальных веток PHP и ветки 5.3. Исправлены ошибки безопасности в том числе критические. Всем пользователям рекомендуется обновиться.
- HHVM 2.3.0 — Новая версия виртуальной машины PHP c поддержкой FastCGI и Travis CI.
- Laravel 4.1 — Новая версия популярного фреймворка.
- Joomla! Framework — Проект Joomla представил собственный фреймворк для разработки приложений на языке PHP. Для ознакомления можно установить пример приложения.
- Вышел WordPress 3.8 «Parker» — Свет увидела новая версия WordPress. Новая тема, обновленный интерфейс админки и множество других улучшений.
- Bolt 1.4.0 — Свежая версия CMS, построенной на базе фреймворка Silex и компонентов Symfony.
- Piwik 2.0 — Релиз открытого пакета web-аналитики.
- Faker 1.3 — Новая версия отличной библиотеки для генерации тестовых данных.
PHP
- RFC: phpdbg — С невиданным прежде для php-internals единогласием, 40 против 0, предложение включить отладчик в ядро PHP 5.6 принято.
- RFC: Распаковка списков аргументов — Данное предложение также принято.
- RFC: Exceptions in the engine — А вот самое ожидаемое предложение пока было отклонено, как слишком кардинальное. По этому поводу разгорелась острая дискуссия, но подобные изменения будут внесены только в PHP 6.
- ToDo PHP 5.6 — Опубликован план релизов PHP версии 5.6. Итого, первая альфа уже в январе (всего 4 альфы), первая бета — в марте, RC — в мае и финальный релиз ожидается в июне.
Инструменты
- Chute — MapReduce фреймворк для PHP
- php-try — PHP реализация типа Try для обработки исключительных ситуаций. Идея позаимствована из Scala.
- Medoo — Легковесная библиотека для работы с базой.
- php-amqplib — Реализация протокола на чистом PHP.
- ShellWrap — Отличная PHP-обертка для использования утилит командной строки.
- RMT — Release Management Tool — Удобный инструмент, призванный помочь с выпуском новых версий приложений.
- Bedrock — Современный стек для разработки на основе WordPress.
- NotificationPusher — Push-уведомления для мобильных устройств.
- appserver.io — Многопоточный сервер приложений на PHP.
- Resource Watcher — Библиотека, которая позволяет следить за изменениями ресурсов.
- matteosister/GitElephant — Библиотека для работы с git из PHP.
Материалы для обучения
- Эволюция HHVM JIT — О том какой путь прошел HHVM за 4 года.
- Снова о HHVM — Популярно о том, что такое и как устроен HHVM.
- FasterCGI with HHVM — В HHVM реализована поддержка протокола FastCGI. В посте о том, как это работает, а также сравнительный тест WordPress на PHP-FPM и HHVM.
- PHP 5.5 vs HHVM vs Node.js — Небольшой бенчмарк.
- Laravel 4: E-Commerce — Продолжение серии исчерпывающих туториалов по Laravel 4. На этот раз продемонстрирован подход к созданию e-commerce решения. Ранее уже было о риайлтайм чате, пакетах, аутентификации, Access Control List, развертывании и об API.
- Создание простого ToDo-приложения на Laravel 4 — Серия туториалов по Laravel.
- HTTP Middleware в Laravel 4.1 — Начиная с Laravel 4.1, фреймворк использует StackPHP, а значит можно использовать собственные middleware-компоненты для HTTP-слоя.
- StackPHP — Доклад о StackPHP непосредственно от автора.
- Журнал Web & PHP Декабрь 2013
- Создавайте виртуальные машины легко с помощью PuPHPet, 2 — Туториал в двух частях по использованию PuPHPet — онлайн конфигуратора Puppet & Vagrant.
- Глобальная установка PHP-инструментов с помощью Composer — Небольшая заметка с примером установки PHPUnitглобально.
- Создаем простое RESTful приложение с помощью Silex — Туториал по Silex для начинающих.
- Какой из фреймворков легковеснее Silex или Aura.Web_Project? — Сравнение двух (микро)фрейморков: число зависимостей, объем, число классов, число строк кода.
- Полное руководство по отладке и модульному тестированию с помощью PHPStorm — Большая серия туториалов об особенностях использования PHPStorm.
- BDD с помощью Behat — Туториал по использованию популярного инструмента тестирования.
- Тестируем email в PHP — В посте продемонстрировано использование PHPUnit и сервиса Mailcatcher для тестирования писем, отправляемых приложением.
- Тестирование Symfony 2 приложений с помощью Сodeception
- CachingIterator — Пост о довольно редко упоминаемом классе из SPL — CachingIterator и интересном поведении при его использовании.
- Just-In-Time debugging and PHP Exception Breakpoints with PhpStorm and Xdebug — Пост об использовании just-in-time отладки и точек останова в PHPStorm и Xdebug.
- Как отличить DI-контейнер от локатора служб
- SOLID — Принцип единственной обязанности — Туториал об одном из базовых принципов объектно-ориентированного программирования.
- Dependency Injection в Magento 2, 2 — Пара постов о внедрении зависимости в Magento.
- PHP в командной строке с использованием Symfony Console — Туториал по использованию Symfony-компонента для создания скриптов командной строки.
- Dart и PHP — Туториал по совместному использованию PHP на бэкенде и Dart в качестве фронтенд языка на примере создания простой игры.
- Предотвращаем проблемы безопасности в PHP — Еще немного о безопасности в PHP и распространенных уязвимостях.
- Contributing Advent 24 — Автор XDebug, Derick Rethans, подводит итоги своего 24-дневного марафона и пишет о своем вкладе в различные opensource-проекты.
- Phalcon на Windows Azure
- Примеси в PHP (trait) — Еще один пост о трейтах, на этот раз с реальными примерами.
- Интеграция аутентификации Symfony2 и трекера Jira
- Большое руководство по Yiinitializr — Отличный пост об инструменте, предназначенном для быстрого создания проектов на Yii.
- Резервное копирование веб-проектов на Яндекс.Диск, а также без ООП и натурщиц
- История одного бэкдора — Разбор обфусцированного кода небольшого зловреда.
- Laravel: Dependency Injection на практике
- Покупаем билеты на поезд в Новый год — Автор реализовал небольшой скрипт для слежения за интересующими билетами на сайте РЖД.
- Лучшие ресурсы для начала работы с Drupal 8
Занимательное
- Интервью с Cal Evans — Интересное интервью, в котором опытный PHP-разработчик делится советами и рекомендациями.
- Как стать PHP-профессионалом: социальный аспект работы в команде — Несколько советов о том, как найти подход к людям в команде и за ее пределами.
- Будущее PHP — Интересные мысли о процессах в PHP-сообществе и о том, как может HHVM повлиять на ситуацию
- Вся правда о названиях функций в PHP — Оказалось что, эти для странных и несогласованных имен функций была причина — в те времена, когда в PHP было всего около 100 функций, хэширующим алгоритмом был strlen().
Автор: Роман Понский