Дайджест интересных новостей и материалов из мира PHP за последние две недели №24 (11.08.2013 — 25.08.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Обновления PHP 5.4.18 [1] и 5.5.2 [2], а также 5.4.19 и 5.5.3 [3] — Релизы включают в себя целый ряд исправлений, в том числе ошибок безопасности. Всем пользователям рекомендуется обновиться до последних версий. Полный список изменений тут [4].
Релиз PHP 5.5.2 включает в себя также реализацию механизма защищённых сессий [5].
- Вышел в свет Yii 1.1.14 [6] — Масштабное обновление ветки 1.1, включающее в себя более 80 исправлений и более 60 улучшений. Подробный обзор новых возможностей доступен в анонсе релиз-кандидата [7] .
- The League of Extraordinary Packages [8] — Новая организация в сообществе PHP-разработчиков, цель которой выделить PHP-пакеты высочайшего качества. Участники соблюдают стандарты PHP-FIG, следуют лучшим практикам [9] и используют самые современные решения.
- Поддержка JSON убрана в PHP 5.5 [10] — Оригинальный пост [11] наделал много шума, так как некоторые пользователи, прочитав только заголовок поста и не вникнув в суть вопроса, бросились сеять панику на всех социальных площадках. На самом деле, конечно же, поддержка JSON осталась на месте, разве что поменялась реализация. По ссылке подробный комментарий по данной теме.
- Черновик нового стандарта PSR-4 [12] — Пост в Reddit коротко описывает суть нового стандарта, который перешел в статус черновика и вероятно скоро будет принят. Так же, как и PSR-0 новый стандарт касается автозагрузки.
- PHP побеждает с результатом 96.5% [13] — Статистика распределения сервер-сайд языков программирования среди сайтов использующих русский язык.
- Продукты Zend бесплатно для open-source PHP-проектов [14] — Кампания от Zend, в ходе которой контрибьюторам популярных PHP-проектов бесплатно предоставляются Zend Server Enterprise Edition и Zend Studio.
PHP
- PHP из будущего [15] — Небольшой но интересный пост, в котором автор делает попытку предсказания дальнейшей судьбы языка и экосистемы.
- RFC: Constant Scalar Expressions [16] — Данное предложение предполагает возможность использования скалярных выражений там, где сейчас возможно использование только статических значений: объявления констант, объявления свойств, аргументы функций по умолчанию. Например так
const FOO = 1 + 1;
или так static $bar = 1 << 2;
или так function foo($a = 1 | 2) {}
.
- Генераторы в действии [17] — Подробно о новой возможности из PHP 5.5. Примеры прилагаются.
Инструменты
- PHP DebugBar [18] — Универсальная отладочная панель для PHP. Подобные инструменты есть в Symfony, Zend Framework, Yii и других фреймворках, но теперь есть и независимое решение! Панель отображает информацию о времени выполнения скрипта, используемой памяти, параметрах запросов, исключениях, профилирование запросов к базе и другое. Посмотрите на панель в действии прям на главной странице проекта.
- Строим сложные регулярные выражения с помощью VerbalExpressions [19] — VerbalExpressions — это PHP-библиотека, которая позволяет описывать регулярные выражения с помощью конструкций естественного языка. Например описание URL выглядит так:
$regex->startOfLine()->then("http")->maybe("s")->then("://")->maybe("www.")->anythingBut(" ")->endOfLine();
- Конвертируем HTML в PDF при помощи Dompdf [20] — Хабраперевод туториала по использованию библиотеки Dompdf [21].
- Модули для ZF2 в изобилии! [22] — Автор реализовал и описал целый ряд полезных модулей для Zend Framework 2.
- 10 отличных инструментов для PHP-разработчиков [23] — Некоторые инструменты из списка вам будут наверняка знакомы как например Phalcon или Pinba, но возможно что-то из списка будет новинкой, как например Munee [24].
- Инструменты для тестирования REST API [25] — Хоть и не относящийся непосредственно к PHP, но тем не менее очень актуальный вопрос всплыл на Reddit: какие существуют инструменты для отладки/тестирования REST API? Среди предложенных вариантов были следующие: Postman [26], SoapUI [27], Advanced REST Client for Chrome [28], Dev HTTP Client [29], hurl.it [30], Frisby [31], Runscope [32], встроенный REST клиент из PHPStorm [33]. Также были предложены Guzzle [34], Codeception с REST модулем [35]. Кроме этого рекомендую обратить внимание на Swagger-UI [36] (демо [37]) и вообще на проект Swagger [38] и Swagger-PHP [39] в частности.
- Отладочная панель для Yii 1.1 портированная из Yii 2 [40] — В Yii2 появилась нативная отладочная панель, которую автор успешно перенес в Yii 1.1. Напомню также, что для Yii 1.1 есть альтернативная отладочная панель [41].
Материалы для обучения
- Перехват выполнения системных функций в PHP [42] — В последней версии библиотеки Go! AOP [43] была добавлена возможность перехвата системных функций. По ссылке пост с демонстрацией применения этой возможности.
- Добавляем возможность оплаты с помощью Bitcoin на вашем сайт [44] — В туториале немного о том, что такое и как работает bitcoin, а также пример приложения на микрофреймворке Slim с реализацией оплат через процессор BIPS [45].
- Использование Facebook Realtime Updates [46] — Realtime Updates позволяют вашему приложению подписываться на интересующую информацию о пользователе и получать уведомления, когда происходит обновление, а не делать периодические запросы самостоятельно. Об этой возможности и идет речь в туториале. Пример реализован с помощью SlimBootstrap [47].
- Использование встроенного веб-сервера PHP в Behat-тестах [48] — Некоторое время назад автор уже писал о том, как использовать встроенный в PHP (≥ 5.4) веб-сервер в тестах на PHPUnit [49]. На этот раз небольшая заметка о том, как использовать веб-сервер в приемочных тестах на Behat.
- Создаем BDD-фреймворк на PHP [50] — Автор хотел найти аналог Jasmine [51] только для PHP, но не нашел и решил реализовать нечто подобное самостоятельно. В посте небольшая демонстрация идеи.
- Переключаемся с TDD на BDD с помощью Behat и Symfony2 [52] — В одном из своих проектов на Symfony 2 автор решил опробовать концепцию BDD используя Behat [53], Mink [54] и PHPSpec [55], а в посте описывает полученный опыт.
- Yii, непрерывная интеграция — как не сломать все [56] — В посте автор делится опытом налаживания процесса непрерывной интеграции и контроля качества кода в большом проекте.
- Управляем инстансами Amazon EC2 с помощью PHP [57] — Автор демонстрирует как используя AWS SDK можно создавать EC2-инстансы прямо из PHP всего в нескольких строках кода.
- Структуры данных, PHP [58] — Хороший хабраперевод серии статей о структурах данных для PHP-разработчиков [59]. Переведены части о стеке, очереди и о деревьях. Ждем продолжения о куче и о графах.
- Прогресс в PHP-FIG [60] — Группа PHP-FIG уже существует 4 года и за это время было опубликовано 4 стандарта. Однако с января никаких новых стандартов принято не было, а группу покинул [61] Matthew Weier O'Phinney, архитектор и лидер проекта Zend Framework. В посте о том, что происходит «за сценой» и о планах группы.
- Аутентификация API-запросов с помощью Query Auth [62] — Пост с множеством примеров использования библиотеки автора QueryAuth [63], предназначенной для аутентификации API-запросов.
- «D» не значит Dependency Injection [64] — Автор пишет о весьма популярном заблуждении. В концепции SOLID, вопреки распространенному мнению, «D» означает не Dependency Injection, а Dependency Inversion, что, конечно же, более широкое понятие.
- HipHop VM: разведка боем под Debian 7 + Nginx + Symfony2 [65] — Инструкция по установке и настройке HHVM. Хоть Symfony запустить и не удалось, но немного тестов производительности виртуальной машины прилагается.
- HHVM: тестирование производительности и совместимости с Joomla, Битрикс и WordPress [66] — В продолжение темы еще тесты производительности HHVM.
- Не имеет значения какой PHP-фреймворк выбирать [67] — Первое, на что обращают внимание многие разработчики при выборе фреймворка — это скорость. Однако автор считает, что это далеко не главный критерий и объясняет почему.
- «Новости по теме» с помощью PHP, phpmorphy и MySQL [68] — Небольшой хабрапост, в котором описан вариант реализации выборки похожих записей.
- Laravel Weekly [69] — В официальном блоге Laravel еженедельно публикуется подборка интересных материалов. Некоторые из них попадают и в дайджесты, но если вам интересен фреймворк, то рекомендую также следить за выпусками Laravel Weekly.
- Как начать использовать DI [70] — Простая демонстрация концепции DI.
- Готовимся к техническому докладу [71] — Полезные советы и рекомендации от PHP-разработчика из core-команды и опытного докладчика, Anthony Ferrara.
- Интеграция phpBB в Yii framework [72] — Собственно, пошаговая инструкция о том, как быстро интегрировать форум phpBB в ваш сайт, написанный на Yii framework.
- Push-уведомления с помощью Prowl [73] — Prowl — это Growl клиент для iOS. Вариант использования: вам нужно быстро реализовать отправку каких-либо уведомлений себе или группе пользователей без мороки с созданием и публикацией собственного приложения.
- Laravel 4: Аутентификация [74] — Большой и подробный туториал по Laravel 4 на примере реализации аутентификации пользователей.
- Кодирование и декодирование PHP кода [75] — Интересная статья об обфускации и, соответственно, деобфускации PHP-кода.
- Деобфускация одного зловредного кода [76] — А в этом посте уже конкретный пример анализа обфусцированного скрипта.
- Защищаем логин-формы от брутфорс-атак с помощью очередей [77] — Автор описывает интересный способ защиты от брутфорс-атак. С помощью очереди он ограничивает число возможных попыток в секунду.
- Статический анализ PHP-кода в Sublime Text [78] — Автор описывает как настроить инструменты статического анализа кода в редакторе Sublime Text.
- Zephir в действии [79] — Скринкаст с демонстрацией работы альфа-версии языка Zephir [80], разрабатываемого командой Phalcon.
Материалы c прошедших конференций
- Введение в Silex [81] — Видеозапись отличного доклада от Igor Wiedler.
- Reacting with ReactPHP [82] — Слайды доклада о ReactPHP и Ratchet от автора React.
- Northeast PHP 2013 [83] — Слайды 25 докладов с масштабной конференции полностью посвященной PHP и прошедшей недавно в Бостоне.
Быстрый поиск по всем дайджестам [84]
← Предыдущий выпуск [85]
Автор: pronskiy
Источник [86]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/41740
Ссылки в тексте:
[1] 5.4.18: http://php.net/archive/2013.php#id2013-08-15-1
[2] 5.5.2: http://php.net/archive/2013.php#id2013-08-16-1
[3] 5.4.19 и 5.5.3: http://php.net/archive/2013.php#id2013-08-22-1
[4] тут: http://www.php.net/ChangeLog-5.php
[5] механизма защищённых сессий: https://wiki.php.net/rfc/strict_sessions
[6] Вышел в свет Yii 1.1.14: http://habrahabr.ru/post/189820/
[7] анонсе релиз-кандидата: http://habrahabr.ru/post/186596/
[8] The League of Extraordinary Packages: http://www.thephpleague.com/
[9] лучшим практикам: http://www.phptherightway.com/
[10] Поддержка JSON убрана в PHP 5.5: http://philsturgeon.co.uk/blog/2013/08/fud-cracker-php-55-never-lost-json-support
[11] пост: http://iteration99.com/2013/php-json-removed-from-php-5-5/
[12] Черновик нового стандарта PSR-4: http://www.reddit.com/r/PHP/comments/1kvr1f/the_new_autoloading_standard_psr4_passes_entrance/
[13] PHP побеждает с результатом 96.5%: http://w3techs.com/technologies/segmentation/cl-ru-/programming_language
[14] Продукты Zend бесплатно для open-source PHP-проектов: http://updates.zend.com/lp/
[15] PHP из будущего: http://www.sitepoint.com/a-php-from-the-future/
[16] RFC: Constant Scalar Expressions: https://wiki.php.net/rfc/const_scalar_expressions
[17] Генераторы в действии: http://habrahabr.ru/post/189796/
[18] PHP DebugBar: http://phpdebugbar.com/
[19] Строим сложные регулярные выражения с помощью VerbalExpressions: http://www.codediesel.com/php/constructing-hard-regular-expressions-with-verbalexpressions/
[20] Конвертируем HTML в PDF при помощи Dompdf: http://habrahabr.ru/post/190364/
[21] Dompdf: https://github.com/dompdf/dompdf
[22] Модули для ZF2 в изобилии!: http://www.spiffyjr.me/2013/08/23/zf2-modules-galore/
[23] 10 отличных инструментов для PHP-разработчиков: http://codegeekz.com/10-best-php-tools-for-developers/
[24] Munee: http://mun.ee/
[25] Инструменты для тестирования REST API: http://www.reddit.com/r/PHP/comments/1kg515/tools_to_test_a_rest_api
[26] Postman: https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm?hl=en
[27] SoapUI: http://sourceforge.net/projects/soapui/files/
[28] Advanced REST Client for Chrome: https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo
[29] Dev HTTP Client: https://chrome.google.com/webstore/detail/dev-http-client/aejoelaoggembcahagimdiliamlcdmfm/details?hl=en
[30] hurl.it: http://www.hurl.it/
[31] Frisby: http://frisbyjs.com/
[32] Runscope: http://www.runscope.com/
[33] встроенный REST клиент из PHPStorm: http://blog.jetbrains.com/webide/2013/02/using-the-rest-client-within-phpstorm/
[34] Guzzle: http://guzzlephp.org/
[35] Codeception с REST модулем: http://codeception.com/docs/10-WebServices#REST
[36] Swagger-UI: https://github.com/wordnik/swagger-ui
[37] демо: http://petstore.swagger.wordnik.com/
[38] Swagger: https://developers.helloreverb.com/swagger/
[39] Swagger-PHP: https://github.com/zircote/swagger-php
[40] Отладочная панель для Yii 1.1 портированная из Yii 2: https://github.com/Zhuravljov/yii2-debug
[41] альтернативная отладочная панель: https://github.com/malyshev/yii-debug-toolbar
[42] Перехват выполнения системных функций в PHP: http://go.aopphp.com/blog/2013/08/24/intercepting-execution-of-system-functions-in-php/
[43] Go! AOP: https://github.com/lisachenko/go-aop-php
[44] Добавляем возможность оплаты с помощью Bitcoin на вашем сайт: http://net.tutsplus.com/tutorials/javascript-ajax/adding-bitcoin-payment-processing-to-your-website/
[45] BIPS: https://bips.me/
[46] Использование Facebook Realtime Updates: http://www.sitepoint.com/using-facebooks-realtime-updates-and-subscription-api/
[47] SlimBootstrap: https://github.com/tboronczyk/SlimBootstrap
[48] Использование встроенного веб-сервера PHP в Behat-тестах: http://tech.vg.no/2013/08/16/using-phps-built-in-web-server-in-behat-tests/
[49] как использовать встроенный в PHP (≥ 5.4) веб-сервер в тестах на PHPUnit: http://tech.vg.no/2013/07/19/using-phps-built-in-web-server-in-your-test-suites/
[50] Создаем BDD-фреймворк на PHP: http://gonzalo123.com/2013/08/19/building-a-bdd-framework-with-php/
[51] Jasmine: http://pivotal.github.io/jasmine/
[52] Переключаемся с TDD на BDD с помощью Behat и Symfony2: http://www.ftassi.com/blog/2013/08/12/switching-from-tdd-to-bdd-with-behat-and-symfony2/
[53] Behat: http://behat.org/
[54] Mink: http://mink.behat.org/
[55] PHPSpec: http://www.phpspec.net/
[56] Yii, непрерывная интеграция — как не сломать все: http://habrahabr.ru/post/191210/
[57] Управляем инстансами Amazon EC2 с помощью PHP: http://blogs.aws.amazon.com/php/post/TxMLFLE50WUAMR/Provision-an-Amazon-EC2-Instance-with-PHP
[58] Структуры данных, PHP: http://habrahabr.ru/post/190176/
[59] серии статей о структурах данных для PHP-разработчиков: http://www.sitepoint.com/series/data-structures-for-php-devs/
[60] Прогресс в PHP-FIG: http://philsturgeon.co.uk/blog/2013/08/progress-in-the-phpfig
[61] покинул: http://www.mwop.net/blog/2013-02-27-resigned-from-php-fig.html
[62] Аутентификация API-запросов с помощью Query Auth: http://jeremykendall.net/2013/08/13/api-query-authentication-with-query-auth/
[63] QueryAuth: https://github.com/jeremykendall/query-auth
[64] «D» не значит Dependency Injection: http://www.brandonsavage.net/the-d-doesnt-stand-for-dependency-injection
[65] HipHop VM: разведка боем под Debian 7 + Nginx + Symfony2: http://habrahabr.ru/post/189960/
[66] HHVM: тестирование производительности и совместимости с Joomla, Битрикс и WordPress: http://habrahabr.ru/post/190566/
[67] Не имеет значения какой PHP-фреймворк выбирать: http://www.gregfreeman.org/2013/your-php-framework-choice-doesnt-matter/
[68] «Новости по теме» с помощью PHP, phpmorphy и MySQL: http://habrahabr.ru/post/190034/
[69] Laravel Weekly: http://laravel.io/topic/45/laravel-weekly-20
[70] Как начать использовать DI: http://habrahabr.ru/post/191168/
[71] Готовимся к техническому докладу: http://blog.ircmaxell.com/2013/08/preparing-tech-presentations.html
[72] Интеграция phpBB в Yii framework: http://habrahabr.ru/post/190868/
[73] Push-уведомления с помощью Prowl: http://www.sitepoint.com/push-notifications-with-prowl/
[74] Laravel 4: Аутентификация: https://medium.com/on-coding/e8d93c9ce0e2
[75] Кодирование и декодирование PHP кода: http://habrahabr.ru/post/191176/
[76] Деобфускация одного зловредного кода: http://habrahabr.ru/post/190682/
[77] Защищаем логин-формы от брутфорс-атак с помощью очередей: http://www.dreamincode.net/forums/topic/326807-securing-login-forms-from-brute-force-attacks-using-queues/
[78] Статический анализ PHP-кода в Sublime Text: http://philsturgeon.co.uk/blog/2013/08/php-static-analysis-in-sublime-text
[79] Zephir в действии: http://vimeo.com/72990303
[80] Zephir: http://blog.phalconphp.com/post/57161129440/phalcon-2-0-the-future
[81] Введение в Silex: http://www.youtube.com/watch?v=RDVtnsoOysE
[82] Reacting with ReactPHP: http://catch404.net/2013/08/reacting-with-reactphp/
[83] Northeast PHP 2013: https://joind.in/event/view/1328/slides#event-tabs
[84] Быстрый поиск по всем дайджестам: http://pronskiy.github.io/php-digest/
[85] Предыдущий выпуск: http://habrahabr.ru/company/zfort/blog/189734/
[86] Источник: http://habrahabr.ru/post/191320/
Нажмите здесь для печати.