Дайджест интересных новостей и материалов из мира PHP (20 октября — 10 ноября 2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Новости и релизы
- php.net был скомпрометирован — 24 октября Google пометил сайт php.net как содержащий угрозу и позднее факт взлома был подтвержден. К счастью работоспособность ресурса была быстро восстановлена. Подробный анализ проблемы и зловредного кода можно найти тут.
- Новый PhpStorm 7: за пределами языка — Свежий релиз лучшей IDE для PHP.
- WordPress 3.7 “Basie” — Свет увидела новая версия WordPress с автообновлениями на борту.
- Joomla 3.2 — Также обновилась другая популярная CMS.
- Backdrop — Форк Drupal 7, цель создания которого сохранить аудиторию пользователей Drupal, для которых простота изучения и использования важнее архитектурной гибкости.
- Bolt 1.3 — Свежая версия CMS, построенной на базе фреймворка Silex и компонентов Symfony.
PHP
- RFC: Engine Exceptions — Самое долгожданное предложение! Наконец-то вместо фатальных ошибок станет возможным использование исключений.
- RFC: Ripples — Предложение добавить поддержку еще одного способа обработки ошибок помимо исключений. Пока без патча, а лишь с целью выяснить целесообразность.
- RFC: list_reference_assignment — Предложено также небольшое улучшение, дающее возможность делать присваивание по ссылке в списке:
$array = [1, 2]; list($a, &$b) = $array;
- RFC: Расширенная поддержка ключевых слов — С результатом 11 против 5 предложение отклонено.
- Функции в PHP 5.6 — что нового? — Отличный обзор уже принятых предложений для PHP 5.6 и тех, которые еще находятся в обсуждении.
Инструменты
- Deployer — Простой и удобный инструмент для развертывания приложений, написанный на PHP.
- phpsh — Продвинутый REPL для PHP от Facebook. Написан на Python
- Samsui — Библиотека генерации объектов c тестовыми данными. Автора вдохновляли Rosie для JavaScript и factory_girl для Ruby.
- Flysystem — Библиотека, абстрагирующая работу с файлами, что позволяет легко использовать как локальную файловой систему так и удаленную не изменяя код приложения. Кроме локальной уже поддерживаются S3, Dropbox, FTP и SFTP.
- Respect\Validation — Отличная библиотека валидации для PHP.
- Idiorm — Легковесная ORM для PHP. Также доступны реализации Active Record на основе Idiorm: Paris и Granada.
- 5 самых популярных KNP-библиотек в PHP/Symfony сообществе
- Intervention Image Class — Удобная оболочка над библиотекой GD.
- iniscan — Сканер безопасности для php.ini. Просматривает заданный php.ini файл на предмет наличия потенциально опасных настроек.
- esoTalk — Быстрый и легкий форум на PHP с поддержкой плагинов.
- Sculpin — Генератор статических сайтов реализованный на PHP.
- forp — Простой и ненавязчивый профайлер для PHP.
- php-daemon — Небольшая библиотека, позволяющая легко превратить ваш PHP-скрипт в демон.
- phpcs-security-audit — Набор правил для PHP_CodeSniffer, которые помогают обнаружить потенциально небезопасные участки кода.
- Инструменты рефакторинга для PHP — Rephactor, Scisr, PHP Refactoring Browser.
- phpmig — Отличная реализация миграций на PHP.
- PHP-VCR — Инструмент, благодаря которому можно забыть о создании моков для внешних сервисов. Просто делайте реальные запросы к API, а VCR запишет их, после чего записанные ответы можно использовать в тестах. Инструмент основан на VCR для Ruby и nock для Node.js.
- php-extsample — Mikko Koppanen, поддерживающий множество популярных PHP-расширений таких, как imagick и php-zmq, создал небольшое учебное расширение, которое станет отличной отправной точкой для создания своего полноценного расширения. Также если вас интересует разработка расширений, рекомендую обратить внимание наPHP-CPP — C++ библиотеку специально предназначенную для разработки PHP-расширений.
- Symfony skeleton: набор для быстрого старта — Seed-приложение для Symfony 2 проекта с набором компонентов из коробки.
- Gutscript — Язык программирования транслируемый в PHP, позволяющий сократить синтаксические конструкции и упростить код. Короче говоря, CoffeeScript для PHP на Go.
Материалы для обучения
- GitPHP в Badoo — История о решении проблем производительности в GitPHP.
- Используйте массивы в PHP правильно — Отлаживая PHP-код часто приходится иметь дело с массивами. Автор дает рекомендации по их правильному использованию с тем, чтобы упростить отладку.
- Yii: Active Record, маршруты и кэширование — Туториал раскрывает использование Active Record, управление URL и кэширования в Yii Framework 1.1 на примере создания простого приложения.
- Картографический сервис с помощью PHP и MongoDB — Туториал по созданию простого картографического сервиса. Для хранения данных используется MongoDB с его spatial-возможностями, а само приложение реализовано на Silex. Для работы с картой автор использует Leaflet.js.
- Карты с помощью Geocoder PHP и Leaflet.js — В продолжение туториал по совместному использованию библиотекGeocoder PHP и Leaflet.js для создания интерактивных карт.
- Трассировка Silex с помощью DTrace, Трассировка PHPUnit теста для примера использования функционального программирования в PHP — Продолжение серии постов (1, 2, 3) об использовании DTrace с PHP.
- Совместим ли мой код с PHP 5.4 или 5.5? — Пост содержит список изменений в новых версиях, а также инструкцию по использованию PHP_CodeSniffer и дополнительных правил для проверки совместимости вашего кода.
- Безопасные случайные числа для PHP разработчиков — Взгляд на доступные способы генерации случайных последовательностей в PHP и в частности на использование
/dev/(u)random
. Особенно актуально в свете недавно опубликованной демонстрации предсказуемости mt_rand(). - За пределами наследования — В своем предыдущем посте Энтони Феррара анализировал использование паттернов проектирования. На этот раз автор подробно останавливается на концепции наследования, рассматривая слабые стороны классического наследования.
- Введение в Gearman — распределенные задачи на PHP — Вводный туториал по установке, настройке и использованию Gearman в PHP.
- Использование Google Translate API в PHP, 2 — Подробный туториал по использованию API для получения переводов на лету.
- Symfony standard edition на HHVM — Туториал, в котором показано как кофигурировать вебсервер HHVM для запускаsymfony standard edition. Также имеется пара постов 1, 2 с тестами производительности Symfony на HHVM.
- Отладка PHP-приложений с помощью HHVM — Туториал по использованию HHVM в отладочном режиме. Показано как пошагово выполнять код, устанавливать и управлять точками останова, инспектировать переменные.
- HHVM на Heroku — Использование HHVM теперь возможно на популярной облачной платформе Heroku.
- Создаем веб-приложение на Symfony 2 — Серия из трех постов с полным циклом создания современного веб-приложения.
- Обзор Symfony2-компонентов: EventDispatcher — Продолжение серии небольших постов о базовых компонентах из Symfony2. Ранее уже были: Routing, HttpFoundation и HttpKernel.
- Пошаговое руководство по конфигурированию сервера для PHP (Symfony 2) проекта — Подробная инструкция по установке и настройке всех компонентов окружения: nginx, PHP, MySQL, Capifony и некоторых других.
- Symfony 2 приложения на OpenShift, 2 — Пара постов о разворачивании и использовании Symfony 2 приложений на популярной облачной платформе.
- Разворачиваем Symfony-проект на Amazon Elastic Beanstalk
- Понимаем Zend Framework 3… пока он не вышел! — В посте автор приводит ресурсы, на которых можно получать актуальную информации по грядущему релизу ZF3, а также пишет о том, почему полезно за ними следить.
- Динамическая автогенерация свойств для ваших классов с помощью магических методов и рефлексии — Пара способов реализации аксессоров в PHP.
- Мокинг файловой системы с помощью php-vfs — Интересный пост о написании модульных тестов для функционала использующего файловую систему.
- Signaling PHP — Свежая электронная мини-книга, в которой идет речь об использовании PHP для создания инструментов командной строки.
- Продаем электронные (скачиваемые) товары с помощью Stripe и Laravel — Туториал по созданию простого приложения на Laravel с реализацией оплат через Stripe.
- Google App Engine для PHP с помощью PhpStorm — Туториал и скринкаст по использованию PHPStorm для работы с облачной платформой от Google.
- Играемся с диспетчером событий и Silex. Отправляем логи на удаленный сервер — Продолжение поста об использовании Symfony-компонента EventDispatcher в Silex-приложении.
- Отладка на PHP с помощью Kint — Небольшая заметка по использованию простого отладочного инструмента для PHP —Kint.
- Журнал Web & PHP Ноябрь 2013
- Git Branching Model — Описание простой модели использования Git от Igor Wiedler.
- Создавайте API которые вы не будете ненавидеть: Часть 1 Заполнение базы — Пример использования Faker для заполнения базы случайными данными.
- Реализация двухфакторной аутентификации — Пост описывает пример реализации собственной системы двухфакторной аутентификации. Для отправки SMS используется Twilio.
- Laravel 4: Real Time Chat — Продолжение серии исчерпывающих туториалов по Laravel 4. На этот раз рассмотрено создание приложения реального времени с использованием ReactPHP. Ранее уже было о пакетах, аутентификации,Access Control List, развертывании и об API.
- RabbitMQ, 2, 3, 4, 5 — Переводы туториалов c примерами на PHP (1-2 на Python).
- Как мы подружились с PayPal — Использование REST API от PayPal.
- Pimple? Не… Не слышал — Об использовании простого, но удобного DI-контейнера для PHP.
- Расширение возможностей массива в PHP — Полезные примеры использования ArrayObject.
- Создание виджета «Счет Live» используя PHP Web Sockets — Перевод туториала по созданию небольшого приложения с использованием библиотеки Ratchet.
- Публичные свойства, геттеры и сеттеры или магические методы? — Существуют различные мнения по поводу способов получения доступа к свойствам классов. Автор рассматривает преимущества и недостатки использования каждого из подходов.
- Active Record против Data Mapper-а для сохранения данных — Сравнение двух популярных паттернов проектирования, достоинства и недостатки каждого.
- PHP RUtils — небольшая библиотека для обработки русского текста — Автор реализовал порт библиотеки pytils на PHP и получил отличный результат!
- Новый сертификат ZCPE от Zend на основе PHP 5.5 — О процессе тестирования и подготовке к сертификации.
Материалы c прошедших конференций
- True North PHP 2013 — Слайды докладов с прошедшей в Торонто конференции.
- PyConZA 2013: «PHP interpreter using PyPy technology» — Интересный доклад о создании высокопроизводительного PHP-интерпретатора с помощью инструментария PyPy.
- Symfony CAMP UA 2013 — Видеозаписи докладов с прошедшей в Киеве конференции.
- International PHP Conference 2013 — Слайды докладов с прошедшей в Берлине конференции.
- CodeConnexx 2013 — Слайды докладов с прошедшей в Маастрихте конференции.
- Интервью с Расмусом Лердорфом — Небольшое интервью с отцом PHP, взятое во время его пребывания в Киеве на конференции IDCEE.
- Northeast PHP Conference 2013 — Видеозаписи докладов с прошедшей в Бостоне конференции.
Занимательное
- Возрождение инициативы GoPHP5 — В 2007 году активисты PHP-сообщества выступали с инициативой GoPHP5, призывая разработчиков переходить со все еще популярной на тот момент PHP 4 на PHP 5. Похожая ситуация сложилась и сейчас. Не смотря на то, что поддержка PHP 5.3 уже фактически прекращена, версию 5.4 используют всего лишь 10% сайтов согласно статистике от w3tech. В PHP-FIG обсуждается идея запуска кампании по популяризации актуальных версий PHP.
- Требуемые версии PHP на Packagist — Статистика по версиям PHP, указанным в качестве требуемых на Packagist.
- Symfony2: так же хорош как становится PHP? — По традиции немного критики в адрес PHP.
- Интервью с Michael Wallner — фул-тайм core-PHP-разработчиком — Интересное интервью с разработчиком, который был нанят компанией SmugMug специально для работы на ядром PHP.
- PHP 2.0 ретроспектива — Обзор всего, что было в PHP в далеком 1997 году.
Автор: Роман Понский