Дайджест интересных новостей PHP (май 2014)
После небольшого перерыва PHP-дайджест снова в деле! Вашему вниманию подборка со ссылками на новости и материалы.
Новости и релизы
- PHPNG — Разработчики представили интерпретатор PHP нового поколения. А все началось с сообщения Дмитрия Стогова в php.internals и соответствующей ветки в репозитории. Анализ работы интерпретатора при выполнении реальных приложений показал, что проблема производительности кроется в методах работы с памятью и организацией хранения структур данных. Именно поэтому PHPNG представляет собой оптимизированный Zend Engine, в котором реализованы новые структуры данных. Проведенный рефакторинг уже позволил увеличить производительность на 10-30% в реальных приложениях. Вероятно, PHPNG ляжет в основу PHP 5++, а пока это лишь начало и проект развивается очень динамично.
Подробнее о PHPNG можно услышать из первых уст в докладе автора на предстоящей конференции DevConf 2014 – «Отдай свой PHP на прокачку — PHPNG — движок нового поколения» . - Бета релизы PHP 5.6.0: beta 2 и beta 3 — Обновления содержат всего лишь набор исправлений, а значит, финального релиза осталось ждать совсем недолго. Тем не менее ожидается еще одна бета и пара-тройка релиз-кандидатов, а пока можно ознакомиться со списком новых возможностей или посмотреть десятиминутный ролик с их демонстрацией.
- Релизы PHP: 5.5.12, 5.5.13, 5.4.28, 5.4.29 — Регулярные обновления актуальных веток интерпретатора. Содержат ряд исправления в том числе проблем безопасности, как, например, уязвимость PHP-FPM, позволяющая локальному пользователю, имеющему доступ к UNIX-сокету php-fpm, по умолчанию создаваемому с правами 0666, выполнить произвольный PHP-код с правами работающего пула процессов FastCGI.
- Новый PHP на Heroku — На популярнейшей облачной платформе Heroku была добавлена поддержка HHVM и соответственно Hack.
- Доступна бета версия Mooha — нодового интерфейса для PHP — В прошлом году на Хабре был пост об интересном проекте Mooha, который по словам автора должен был стать визуальным конструктором PHP-приложений. Тестовая версия инструмента теперь доступна всем желающим.
- Apigility 1.0.0 — Первый стабильный релиз инструмента автоматического создания RESTful-приложений на основе Zend Framework 2.
- Laravel Forge — На прошедшей недавно конференции Laracon автором фреймворка Laravel был представлен инструмент Forge, который сам Тейлор охарактеризовал как «PHP-платформа мгновенного приготовления в облаке на ваш выбор». Forge позволяет в считанные минуты развернуть приложение с Nginx 1.6, PHP 5.5, MySQL/Postgres, Redis, Memcached, Beanstalk на любом популярном облачном хостинге. Доступны расширения для Forge, туториалы, а также серия подробных скринкастов по использованию Forge . За удобство придется заплатить 10 $ в месяц.
- Релиз Symfony 2.5.0 — Полный список изменений тут.
- Релиз Laravel 4.2 — Отныне фреймворк требует PHP версии не ниже 5.4.
- DevConf 2014 — Напомню, что уже через две недели в Москве состоится масштабная конференция, посвященная веб-разработке. Секция PHP радует интересными докладами о phpng, Yii 2, Laravel, AOP, Codeception.
PHP
- RFC: Отлавливаемый «call to a member function of a non-object» — Реализация этого предложения позволит обрабатывать ошибки, а не генерировать фатальные, при вызове методов у null:
$x = null; $x->method();
- RFC: loop_else — Предложение добавить возможность использовать в циклах else-блок, который будет выполняться в случае, если условие цикла не выполняется ни разу, то есть при невхождении в тело цикла.
Инструменты
- Link — Хороший роутер для PHP.
- RequirePHP — Внедрение зависимости а-ля RequireJS.
- Karma — Инструмент командной строки для управления конфигурациями окружений.
- BowerPHP — Хотите иметь возможность использовать менеджер зависимостей Bower, но при этом не устанавливать node.js? BowerPHP как раз создан для таких случаев.
- Dora — Генератор форм с рядом полезных возможностей.
- JIT-Fu — PHP-расширение, предоставляющее JIT-интерфейс для PHP на основе libjit.
- Yandex Translate API — Оболочка для Яндекс.Перевод
- Pomander — Еще один PHP-инструмент для развертывания приложений.
- rss-bridge — Фид для сайтов у которых его нет: Twitter, GoogleSearch, Instagram, Pinterest и другие.
- Monga — Простой и быстрой слой абстракции для работы с MongoDB.
- glip — Git-библиотека для PHP, позволяет осуществлять доступ к репозиторию из PHP даже без установленного Git.
- atoum — Простой современный фреймворк модульного тестирования для PHP.
- TimeTraveler — Инструмент позволяет задавать текущую дату вручную, соответствующим образом менять результат всех последующих вызовов функций работы с датой временем.
Материалы для обучения
- Задушите ваши API вызовы: RateLimitBundle — Автор реализовал бандл для Symfony RateLimitBundle, который позволяет ограничить число вызовов метода API, указав параметр в аннотации
@ratelimit
к контроллеру или экшну. В посте об особенностях реализации, плюсах и минусах решения. - Безопасно ли ваше OAuth 2.0 приложение — Немного о нашумевшей недавно уязвимости скрытого перенаправления (covert redirect) в OAuth и OpenID.
- Аутентификация токеном в Silex-приложениях
- Используем Solarium и SOLR для реализации полнотекстового поиска
- Использование сессий в Zend Framework 2, ч.2 — Туториал для начинающих.
- Использование Bats для тестирования инструментов командной строки — Не PHP, но интересный обзор инструмента тестирования Bats.
- Как использовать интерфейс JsonSerializable
- Введение в сессии в Symfony2
- Рефакторинг легаси-кода: сложные условия
- Управление аутентификацией в Composer — В популярном менеджере зависимостей была реализована возможность удобной работы с защищенными репозиториями.
- IronMQ и Laravel — Туториал о реализации очереди задач.
- Вскрываем Laravel: компоненты Session, Auth и Cache
- Как использовать «yield» в PHP 5.5 — Немного о генераторах с примером.
- Начинаем работать с Phpspec
- PHPSpec и Magento — Как использовать SpecBDD-фреймворк для PHP совместно с Magento.
- Magento: основы, цикл обработки запроса, стандарты и лучшие практики
- Сообщество Hack — С момента официального релиза Hack прошлом совсем немного времени, а уже формируется сообщество и специфические инструменты, как, например, фреймворки BeatBox и hack-mvc
- Временная сложность алгоритмов — Об оценке алгоритмов с примерами на PHP.
- PHP и непрерывная интеграция с помощью Travis CI
- Как использовать ZFTool Diagnostics, чтобы быть уверенным в работоспособности модулей на любом окружении
- Обзор инструментов статического анализа PHP-кода — В посте рассмотрены: PHP_CodeSniffer, the PHP Mess Detector и PHP Copy & Paste Detector.
- Модульное тестирование с помощью GuzzlePHP
- Как писать модульные тесты для моделей в Phalcon
- RESTful удаление, восстановление и ревизии — В посте автор рассматривает способы реализации нетривиальных методов в парадигме REST.
- Реализация быстрого импорта из Excel на PHP
- Ускоряем PHP (с ReactPHP)
- Асинхронный Php extension для работы с бд Cassandra без Thrift
- Правильный подход к использованию API Вконтакте
- Бенчмарк 14 алгоритмов сортировки на массивах с разной размерностью и содержанием
- Sypex Geo 2.2 — теперь с GeoNames и ОКАТО — Обзор новой версии очень быстрого алгоритма определения города по IP.
- Создаём сайт, используя Laravel и Recurly. Часть 2
- Введение в JadePHP — О PHP-шаблонизаторе JadePHP, порте популярного Javascript-движка Jade.
- Отладка электронной почты при помощи MailCatcher — Более подробно использование MailCatcher рассмотрено в посте о тестировании электронной почты в PHP.
- Опасный getimagesize() или Zip Bomb для PHP — Небольшой обзор уязвимости в распространённом движке фотогалереи на PHP и о том, как можно положить любой сайт, использующий getimagesize(), с помощью бородатой zip-бомбы (или пета-бомбы).
- RESTful API на Yii framework с RBAC и тестами
- Автодокументация мобильных веб-сервисов на примере Yii
- 25 Laravel Tips and Tricks
- PHPCI: Система непрерывной интеграции для PHP-проектов
- Пишем свою IDE со встроенным дизайнером интерфейсов на PHP и ExtJS
Материалы c прошедших конференций
- Видеозаписи докладов с PHP South Africa
- phpDay 2014 — Слайды докладов с прошедшей в Италии конференции.
- php[tek] 2014 — Слайды 35 докладов.
Аудио и видеоматериалы
- Создание повторно используемых форм в Symfony 2 — Продолжение серии скринкастов о Symfony 2. Ранее были:основы, роутинг, контроллеры и шаблоны.
Занимательное
Автор: Роман Понский