Дайджест интересных новостей и материалов из мира PHP за последние две недели №22 (15.07.2013 — 28.07.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- AspectMock — тестируем любой PHP код [1] — Замечательное применение библиотеки Go! AOP [2], благодаря возможностям которой, тестировать в PHP теперь можно буквально все! При этом код становится даже проще. Доступен скринкаст с демонстрацией AspectMock [3]. Отлично!
- Вышел PHP 5.5.1 [4] — Спустя месяц после релиза 5.5 вышло первое обновление, которое включает около 20 исправлений, в том числе безопасности XML парсера, а также ошибок в опкэше, веб-сервере, PDO, Phar и другие.
- KPHP от ВКонтакте [5] — На своей странице Дуров рассказал о переводе всего кода ВКонтакте на компилируемый язык программирования — KPHP, что, как стало известно позже, требовало полного избавления от ООП. Вскоре на Хабре появились ответы на вопросы и комментарии от разработчиков из ВКонтакте [6] . Что ж, дождемся появления KPHP в открытом доступе.
- Slim Framework 2.3.0 [7] — Обновился популярный микрофреймворк.
- Командная строка WordPress [8] — Весьма полезный инструмент для разработчиков использующих WordPress.
- Gerar PHP [9] — Автор загорелся идеей реализовать систему управления конфигурациями вроде Chef или Puppet, но на PHP, поскольку ему, как PHP-разработчику, удобно было бы работать с PHP-синтаксисом. Результатом стал Gerar PHP [10].
PHP
- Развитие синтаксиса [11] — Интереснейший пост от Igor Wiedler, core-разработчика PHP, автора React [12] и Stack [13]. Описана идея реализации механизма синтаксической абстракции в PHP. Вдохновившись макросами в Лиспе [14] и использовав PHP Parser [15], автор создал демонстрацию своей идеи и портировал возможности PHP 5.4 на версию 5.3.
- Cинтаксический сахар для PHP [16] — Автор хабрапоста начал создавать проект PHP Mirror [17], который предполагает добавление целого ряда полезных возможностей в PHP. На данный момент уже реализовано приведение типов.
- RFC: Импорт функций из пространств имен [18] — На данный момент PHP позволяет импортировать из пространств имен отдельные типы (классы/интерфейсы/трейты) с помощью оператора
use
. Автор RFC предлагает добавить возможность импортировать отдельные функции с помощью конструкции use function
и константы — use const
.
Материалы для обучения
- Интернационализация на PHP с помощью gettext [19] — Отличный большой и подробный туториал по использованию библиотеки gettext [20] .
- Laravel 4 — расширяем легко [21] — Автор вынужден был помочь в использовании Laravel 4 на shared-хостинге с не самой свежей версией PHP. В посте он демонстрирует, как благодаря компонентной архитектуре фреймворка его можно легко расширять и модифицировать, например, чтобы снизить требования к версии PHP.
- Масштабируем PHP на EC2 до 30,000 пользователей на сервер [22] — В посте автор приводит несколько рекомендаций по оптимизации производительности PHP-приложения, запущенного на серверах от Amazon. Большинство рекомендаций универсальны и будут актуальны для любых платформ.
- PHP взрывает Google App Engine [23] — Чуть больше двух месяцев назад Google анонсировал [24] поддержку PHP на своей облачной платформе App Engine. По ссылке интервью с менеджером проекта App Engine, который кроме прочего говорит о намерениях Google конкурировать с Amazon, Microsoft и другими игроками на рынке облачных платформ.
Также немного мыслей [25] по теме.
- Использование встроенного веб-сервера PHP в ваших тестах [26] — Начиная с версии 5.4 PHP поставляется со встроенным веб-сервером. Автор поста демонстрирует способ конфигурации PHPUnit для запуска веб сервера перед выполнением набора тестов, и завершением его работы после окончания тестирования.
- Структуры данных для PHP-разработчиков: Куча [27] — Продолжение серии постов для молодых и начинающих разработчиков. Читайте также о деревьях [28], стеке и очереди [29].
- Использование третьесторонних библиотек в проектах с Composer [30] — Небольшой совет о том, как подключать библиотеки не поддерживающие Composer в проектах использующих его.
- Yiistrap и Yiiwheels [31] — Пара отличных расширений для Yii, позволяющих значительно сократить время на реализацию фронт-енд задач.
- Двойники на PHP с помощью Prophecy [32] — В посте речь идет об использовании библиотеки Prophecy [33] для реализации тестовых двойников: dummy-объектов, заглушек, mock-объектов.
- Работаем с многобайтными строками [34] — Полноценную поддержку UTF-8 в PHP обещают не раньше чем в версии 6.0, а пока можно использовать возможности mbstring. В туториале по ссылке найдете немного теории по кодировкам и информации об использовании расширения mbstring.
- Создаем достойный API [35] — Ряд советов и рекомендаций для PHP-разработчиков по проектированию и реализации API.
- Beanstalkd и очереди из Laravel 4 [36] — Небольшой туториал по использованию очередей в Laravel 4, и о том, как организовать фоновое выполнение задач из очереди с помощью Beanstalkd [37].
- Получаем доступ к приватным свойствам объектов в PHP без рефлексии [38] — Хабраперевод поста, в котором автор был не доволен слишком низкой скоростью работы ReflectionClass и ReflectionProperty, и продемонстрировал более эффективный способ с использованием метода Closure::bind [39].
- Создаем приложение на Laravel на AppFog [40] — Скринкаст о развертывании Laravel 3 на популярном PaaS-хостинге.
- Интернационализация в 5 самых популярных PHP-фреймворках [41] — Обзор реализаций возможностей интернационализации в CakePHP, CodeIgniter, Symfony, Zend Framework и Yii.
- Symfony2 подписка на динамические события [42] — Автор хабрапоста описывает один из вариантов реализации обработчика событий, имя которых не известно заранее.
- Переходим к разработке в облаке [43] — Небольшой пост о том, как организовать процесс разработки с помощью облачных инструментов. Из доступных IDE автор остановил свой выбор на Cloud9 [44], возможности которой действительно впечатляют как для IDE работающей в браузере.
- Выполняем HTTP-запросы параллельно [45] — Небольшой пост об использовании функций curl_multi_* [46]. Также автор рекомендует к использованию библиотеку Guzzle [47], которая упрощает создание RESTful-клиентов на PHP.
- Пишем SOAP клиент-серверное приложение на PHP [48] — Большой и подробный хабрапост о создании SOAP-сервиса с примером реализации на PHP.
- Планы на ближайшие релизы Phalcon [49] — Маленький обзор того, что следует ожидать разработчикам в версиях 1.3/1.4.
- PHP и блокировка файлов сессий [50] — Проблема, описанная в посте, известна давно, но далеко не каждый о ней знает. Описание на русском можно прочитать тут [51] .
- Вопросы на собеседовании по PHP [52] — Давно на Хабре была подборка вопросов по PHP [53] , но мир не стоит на месте и интересно, какие вопросы актуальны сейчас?
- Определяем устройство на стороне сервера с помощью Browscap [54] — В туториале рассказано о проекте Browscap [55] и о его применении в PHP-приложениях. Напомню про небольшой но удобный PHP-класс Mobile Detect [56], который позволяет определять мобильные устройства.
- Уязвимость класса SQL Injection в WordPress [57] — Известный PHP-разработчик Anthony Ferrara обнаружил серьезную уязвимость в коде WordPress, суть которой и описывает в посте. Не смотря на то, что угрозы пользователям уязвимость не несет, так как не может быть эксплуатирована в установке по-умолчанию, но примечательно то, что уязвимость не была устранена даже спустя почти 3 месяца после сообщения о ней разработчикам.
- Обзор HHVM [58], Facebook ускорил PHP в девять раз благодаря HipHop VM [59] — Пара постов о разрабатываемой в Facebook виртуальной машине PHP, которая позволяет выполнять код значительно быстрее традиционного интерпретатора. На данный момент HHVM поддерживает PHP 5.4 практически полностью. Больше информации о HHVM можно найти в официальном блоге [60].
Ссылка [61] на предыдущий выпуск.
Напомню также, что имеется быстрый поиск [62] по всем дайджестам сразу.
Автор: pronskiy
Источник [63]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/39661
Ссылки в тексте:
[1] AspectMock — тестируем любой PHP код: http://habrahabr.ru/post/187622/
[2] Go! AOP: http://go.aopphp.com/
[3] скринкаст с демонстрацией AspectMock: http://jeffrey-way.com/blog/2013/07/24/aspectmock-is-pretty-neat/
[4] Вышел PHP 5.5.1: http://php.net/index.php#id2013-07-18-1
[5] KPHP от ВКонтакте: http://habrahabr.ru/post/187214/
[6] ответы на вопросы и комментарии от разработчиков из ВКонтакте: http://habrahabr.ru/company/roem/blog/187352/
[7] Slim Framework 2.3.0: http://slimframework.com/news/version-230
[8] Командная строка WordPress: http://habrahabr.ru/post/185428/
[9] Gerar PHP: http://rarestblog.com/blog/2013/07/27/gerar-php/
[10] Gerar PHP: https://github.com/slava-vishnyakov/gerar-php
[11] Развитие синтаксиса: https://igor.io/2013/07/26/evolving-syntax.html
[12] React: http://reactphp.org/
[13] Stack: http://stackphp.com/
[14] макросами в Лиспе: http://ru.wikibooks.org/wiki/Лисп/Макросы
[15] PHP Parser: https://github.com/nikic/PHP-Parser
[16] Cинтаксический сахар для PHP: http://habrahabr.ru/post/186656/
[17] PHP Mirror: https://github.com/SerafimArts/Mirror
[18] RFC: Импорт функций из пространств имен: https://wiki.php.net/rfc/use_function
[19] Интернационализация на PHP с помощью gettext: http://blog.lingohub.com/2013/07/php-internationalization-with-gettext-tutorial/
[20] gettext: http://ru.wikipedia.org/wiki/Gettext
[21] Laravel 4 — расширяем легко: http://laravel.io/topic/39/laravel-4-easily-extended
[22] Масштабируем PHP на EC2 до 30,000 пользователей на сервер: https://coderwall.com/p/__z9ia
[23] PHP взрывает Google App Engine: http://venturebeat.com/2013/07/18/google-app-engine-and-php-its-amazing-and-we-didnt-anticipate-this/
[24] анонсировал: http://googlecloudplatform.blogspot.com/2013/05/app-engine-adds-php-support.html
[25] немного мыслей: http://www.eschrade.com/page/google-finally-acknowledges-that-php-exists/
[26] Использование встроенного веб-сервера PHP в ваших тестах: http://tech.vg.no/2013/07/19/using-phps-built-in-web-server-in-your-test-suites/
[27] Структуры данных для PHP-разработчиков: Куча: http://phpmaster.com/data-structures-3/
[28] деревьях: http://phpmaster.com/php-data-structures-2/
[29] стеке и очереди: http://phpmaster.com/php-data-structures-1/
[30] Использование третьесторонних библиотек в проектах с Composer: http://blog.calevans.com/2013/07/21/using-3rd-party-libraries-in-composer-projects/
[31] Yiistrap и Yiiwheels: http://rmcreative.ru/blog/post/yiistrap-i-yii-wheels
[32] Двойники на PHP с помощью Prophecy: http://techportal.inviqa.com/2013/07/23/php-test-doubles-patterns-with-prophecy/
[33] Prophecy: https://github.com/phpspec/prophecy
[34] Работаем с многобайтными строками: http://phpmaster.com/working-with-multibyte-strings/
[35] Создаем достойный API: http://philsturgeon.co.uk/blog/2013/07/building-a-decent-api
[36] Beanstalkd и очереди из Laravel 4: http://fideloper.com/ubuntu-beanstalkd-and-laravel4
[37] Beanstalkd: http://kr.github.io/beanstalkd/
[38] Получаем доступ к приватным свойствам объектов в PHP без рефлексии: http://habrahabr.ru/post/186718/
[39] Closure::bind: http://php.net/manual/en/closure.bind.php
[40] Создаем приложение на Laravel на AppFog: http://bwsewell.com/2013/07/11/creating_a_laravel_app_on_appfog.html
[41] Интернационализация в 5 самых популярных PHP-фреймворках: http://blog.lingohub.com/2013/07/internationalization-how-to-5-most-popular-php-frameworks/
[42] Symfony2 подписка на динамические события: http://habrahabr.ru/post/187178/
[43] Переходим к разработке в облаке: http://phpmaster.com/moving-to-cloud-based-web-development/
[44] Cloud9: https://c9.io/
[45] Выполняем HTTP-запросы параллельно: http://tech.vg.no/2013/07/23/php-perform-requests-in-parallel/
[46] curl_multi_*: http://www.php.net/manual/en/function.curl-multi-init.php
[47] Guzzle: http://guzzlephp.org/
[48] Пишем SOAP клиент-серверное приложение на PHP: http://habrahabr.ru/post/187390/
[49] Планы на ближайшие релизы Phalcon: http://blog.phalconphp.com/post/56351424566/the-road-ahead
[50] PHP и блокировка файлов сессий: http://blog.preinheimer.com/index.php?/archives/416-PHP-and-Async-requests-with-file-based-sessions.html
[51] тут: http://rmcreative.ru/blog/post/blokirovanie-sessiy-v-php
[52] Вопросы на собеседовании по PHP: http://phpixie.com/blog/questions-for-php-interview/
[53] подборка вопросов по PHP: http://habrahabr.ru/post/21681/
[54] Определяем устройство на стороне сервера с помощью Browscap: http://phpmaster.com/server-side-device-detection-with-browscap/
[55] Browscap: http://tempdownloads.browserscap.com/
[56] Mobile Detect: http://mobiledetect.net/
[57] Уязвимость класса SQL Injection в WordPress: http://blog.ircmaxell.com/2013/07/disclosure-wordpress-wpdb-sql-injection.html
[58] Обзор HHVM: http://coderoncode.com/2013/07/24/introduction-hhvm.html
[59] Facebook ускорил PHP в девять раз благодаря HipHop VM: http://habrahabr.ru/post/188056/
[60] блоге: http://www.hhvm.com/blog/
[61] Ссылка: http://habrahabr.ru/company/zfort/blog/186704/
[62] быстрый поиск: http://pronskiy.github.io/php-digest/
[63] Источник: http://habrahabr.ru/post/188156/
Нажмите здесь для печати.