Дайджест интересных новостей и материалов из мира PHP (9 — 23 февраля 2014)
Предлагаем вашему вниманию очередную подборку актуальных новостей, интересных материалов и полезных инструментов.
Новости и релизы
- PHP 5.6.0alpha2 — Второй плановый альфа-релиз с оператором возведения в степень
**
и другими изменениями на борту. - Laravel Envoy — Вышел в свет инструмент управления SSH-задачами для PHP. Аналог Fabric из Python-мира. Подробнее об использовании смотрите в скринкасте по Envoy .
- Pimple 2.0 — Вышла в свет вторая версия DI-контейнера от создателя Symfony.
- Начало конца PEAR — Создатель Symfony Фабьен заявил о прекращении поддержки Pirum. Также отныне не будет обновляться PEAR-версия Twig.
- В Composer была обнаружена проблема безопасности — Благодаря директиве
replace
атакующий может выполнить код на вашей машине. По теме высказался один из авторов Composer, а также более подробное объяснение можно найтитут. К счастью, проблема уже решена. - Codeception 2.0 alpha — Обзор новых возможностей второй версии замечательного фреймворка для тестирования.
PHP
- RFC: Combined Comparison Operator — Предлагается добавить новый оператор
(expr) <=> (expr)
, который возвращает 0, если операнды равны, 1 если левый операнд больше, и -1 если больше правый. - RFC: No php tags — Предложение сделать открывающийся тег
<?php
необязательным. Самому предложению уже почти два года, но, возможно, теперь оно будет внедрено. - Идеи для PHP 6 — Тем временем в php.internals активным образом обсуждается PHP5++. Общее видение оформлено в виде отдельной страницы на официальном сайте. Также рассматриваются варианты реализации поддержки юникода.
Инструменты
- cebe/markdown — Самый быстрый на данный момент markdown-парсер, что подтверждает бенчмарк.
- Uniter — PHP-интерпретатор реализованный на JavaScript. PHP в браузере? Легко!
- Шпаргалки по PHP
- Шпаргалка по Symfony2
- PHP File Converters — Библиотека, упрощающая конвертацию файлов из одних форматов в другие:
doc -> png
и подобные задачи. - SliceableStringy — Работа со строками в стиле Python.
- dplr — Инструмент развертывания в ООП стиле. Простой и очень быстрый.
- Pathogen — Библиотека широкого назначения для работы с любыми путями в PHP: unix и win пути в файловой системе, URI-пути и прочие.
- Embed — Небольшая библиотека для удобного получения метаинформации о страницах (oembed, opengraph, twitter-cards и т.д.)
- Less.php — less.js портированный на PHP.
- Archer — Библиотека для стандартизации процессов модульного тестирования, непрерывной интеграции, а также документирования используя подход convention-over-configuration.
- phpDox — Генератор документации.
- Bakame.csv — Библиотека для манипуляции CSV-данными.
- Pash — Bash-подобный шелл, реализованный на PHP.
- Zidisha: P2P микрофинансирование — Ребята в Zidisha делают платформу P2P кредитования и недавно открыли исходный код.
- PhpDeal — Фреймворк контрактного программирования для PHP.
- Resty.php — Простая библиотека для создания RESTful клиентов. Не требует curl.
- PHP-DI — Dependency Injection контейнер для людей.
- Dater — Отличная библиотека для работы с датой/временем и временными зонами в PHP.
- WhatTheWhat PHP — В случае возникновения исключения, библиотека автоматически найдет в сети информацию о возникшей ошибке и выведет ее вместе со стеком вызовов. Клон пайтоновского What the What.
- PH7 — Embedded реализация PHP.
Кстати, есть идея сделать подробный обзор всех альтернативных реализаций PHP: Parrot, PH7, Phalanger, Quercus, QB и других. Интересна ли эта тема?
Материалы для обучения
- Быстрый роутинг запросов с помощью регулярных выражений — Никита Попов провел очень интересное исследование существующих реализаций роутинга, в частности, библиотеки Pux, которая должна быть сверхпроизводительной, так как реализована в том числе в виде расширения на C. Однако, выяснилось, что благодаря правильным алгоритмам высокой производительности можно достичь средствами PHP. Результат оформлен в виде библиотеки FastRoute, производительность которой выше C-расширения Pux.
- Взгляд на HACK — замену PHP в HHVM, 2 — По сути HACK — это PHP6, разрабатываемый в недрах Facebook, то есть попытка решить существующие проблемы в PHP и добавить новые возможности. На данный момент последняя версия HHVM уже поддерживает HACK, поэтому после прочтения этих статей вы можете опробовать его возможности, например, статическую типизацию.
- Magento и HHVM — Интересный пост с краткими инструкциями по установке и настройке HHVM для работы с Magento, и, конечно, тест производительности на закуску.
- Расширяя границы метапрограммирования в PHP — аспектно-ориентированное программирование — Автор сделал небольшое исследование АОП в PHP. Его вывод: прежде чем писать велосипед, изучите готовые решения, потому что для АОП есть Go! AOP.
- Необычный способ организации вызова PHP-бэкдора — Выявлен заслуживающий внимания PHP-бэкдор, активация которого производится без видимого обращения к таким функциям, как
eval
,exec
,system
,assert
иpreg_replace
. - Держим PHP-код хорошо документированным — Несколько советов о том, как писать эффективную документацию.
- PHP-FIG: автозагрузчики, поправки и «15-ый стандарт» — Интересный пост от одного из самых активных участников PHP-сообщества о планах группы PHP-FIG и о стандартах, над которыми идет работа.
- Стандарты кодирования: люди — не компьютеры — Как следует применять стандарты, и когда это зло.
- S. O. L. I. D — Хорошие туториалы по фундаментальным принципам разработки ПО с примерами на PHP.
- Версионирование правил валидации данных
- Вы реализовываете версионность API неправильно — Прямо не относящийся к PHP, но интересный пост о способах реализации версий API.
- Глубокий обзор RegexIterator — Что такое, как работает и как может быть использован RegexIterator.
- Symfony2 Joboard: Модель данных — Туториал по Symfony 2.
- Кастомные аннотации для контроллеров в Symfony 2 — И соответствующий бандл.
- Индексирование и простой поиск с помощью Elasticsearch и Symfony
- Быстрые сайты: Nginx и PHP — Еще одна подробная инструкция по настройке nginx и PHP.
- Автоматическая инициализация свойств в PHP
- Используем Laravel на Nitrous.io — Облачный хостинг Nitrous.io анонсировал поддержку PHP, по ссылке вводный туториал по его использованию.
- Начинаем работать с Eloquent — Вводная статья по ORM из Laravel.
- Создаем систему комментариев на Laravel и AngularJS
- Создаем блог на Laravel 4 — Серия туториалов для начинающих.
- Книга Learning Laravel доступна для скачивания бесплатно
- Синхронизация файлов между серверами в кластере — Описано решение проблемы синхронизации файлов, которое предоставляет платформа Jelastic.
- Yii — обмен опытом: модели, продолжение
- Типизация (определение свойств) объекта руками пользователей сайта
- Переосмысление Zephir
- Пространства имен в PHP, разъяснение — О пространствах имен в PHP с помощью персонажей Игры престолов, теперь на русском.
- Простая сборка виртуальных машин с помощью PuPHPet — Кстати, в PuPHPet была добавлена поддержка HHVM. Также о преимуществах использования виртуальных дев-машин можно почитать тут .
Если для провизионирования вам больше нравится Ansible, а не Puppet, то можно использовать инструмент Phansible. - PhpStorm — повышаем производительность: клавиатурные сокращения, плагины и темы оформления
Материалы c прошедших конференций
- Ответы на вопросы по Yii для митапа в Лондоне — Александр SamDark Макаров отвечает на актуальные вопросы по фреймворку.
- PHP UK Conference 2014 — Слайды с прошедшей в Лондоне конференции.
- Yoopee cache (op cache internals) — Подробно о том, как устроен OPCache в слайдах core-разработчика и релиз-менеджера PHP 5.5.
Занимательное
- Статистика использования фреймворка Symfony2 и его компонентов
- PHP-инструменты в твите — Набор инструментов, код каждого из которых умещается в 140 символов: роутер, сервис-контейнер, шаблонизатор, наблюдатель (PHP 5.6), фреймворк модульного тестирования.
- Здесь нет группы пользователей PHP! — Краткая инструкция как создать свою группу пользователей и провести первую встречу.
- PHP или ASP.NET: Правильный ли выбор я сделал?
- PHP CEO в Twitter — Пусть такие начальники у нас будут только в Твиттере!
Автор: Роман Понский