Дайджест интересных новостей и материалов из мира PHP за последние две недели №17 (06.05.2013 — 21.05.2013)
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Вышел в свет Zend Framework 2.2.0 [1] — Релиз принес несколько нововведений, как например динамические DDL-запросы, и массу улучшений.
- Google App Engine теперь поддерживает PHP [2] — Две недели назад это был всего лишь слух, но к счастью информация подтвердилась. Сначала появился пост [3] в блоге разработчиков, а затем в рамках Google I/O прошла презентация, запись которой можно посмотреть тут [4].
Итак, в облачном PaaS-хостинге от Google реализована поддержка PHP [5]. Интерпретатор окружения основан на PHP 5.4 (phpinfo [6]), однако доступ к файловой системе на запись запрещен — предполагается использование Google Cloud Storage. Имеется также ряд других ограничений [7].
Кроме того, JetBrains тут же анонсировали поддержку Google App Engine в PHPStorm [8]. И даже имеется небольшой пример [9] использования GAE c Silex.
- Доступен PHP 5.5.0RC1 [10] — Как и было обещано ранее, 9 мая команда разработчиков PHP анонсировала выход первого релиз-кандидата. 23 мая запланирован RC2 и затем уже финальный релиз.
- Релизы актуальных веток: PHP 5.4.15 и PHP 5.3.25 [11] — Как обычно имеем ряд исправлений [12], и всем пользователям рекомендуется обновиться.
- Майский выпуск журнала Web & PHP [13] — В этом выпуске раскрыты следующие темы: Путешествие во времени с помощью Git; Использование PHPCR [14]; Практические советы по созданию сообществ разработчиков; Моделирование данных; О спринт ретроспективах и другие.
- PuPHPet — графический онлайн конфигуратор Puppet & Vagrant [15] — Отличный инструмент [16], который позволяет задать все необходимые параметры виртуальной рабочей машины: ОС, устанавливаемые пакеты, конфигурацию Apache, PHP, MySQL, а на выходе получить готовый конфиг для Vagrant и поднять рабочую станцию одной командой. Код инструмента доступен на GitHub [17].
PHP
- Инструменты статического анализа кода для PHP [18] — Отличный обзор доступных для PHP инструментов статического анализа, среди которых как уже привычные Mess Detector и Code Sniffer, так и менее известный PHP Analyzer [19], а также набор инструментов от Facebook — Pfff [20].
- Хак синтаксиса PHP [21] — Хабраперевод хорошего туториала, упомянутого в прошлом выпуске [22]. На небольшом примере показано, как можно с минимальными знаниями C изменить синтаксис языка. Применив небольшой хак Zend Engine, автор меняет синтаксис объявления класса.
- PHP создан, чтобы умирать [23] — Хороший хабраперевод статьи, в которой автор отстаивает точку зрения о несостоятельности PHP в случае, когда скрипт должен работать долго и непрерывно.
- Функциональное программирование — как писать функциональный код на PHP [24] — О функциональном программировании на PHP уже было написано тут [25] и тут [26] . Добавим к списку еще и этот небольшой пост.
- Типажи и анонимные функции в PHP. Кря-кря! [27] — Отличный хабрапост, в котором на примере продемонстрировано, собственно, использование трейтов вместе с анонимными функциями.
Материалы для обучения
- Новые возможности PHP 5.5 [28] — Если вы не следили за новостями по PHP 5.5, то ознакомьтесь со слайдами от Julien Pauli, релиз-менеджера этой версии .
- Обзор Yii 2.0 [29] — Публичное превью Yii 2 вызвало огромный интерес у сообщества, который был удовлетворен целым рядом постов. По ссылке отличный обзор новых возможностей и отличий от Yii 1.1. Кроме того, ранее был опубликован не менее отличный хабрапост Yii2. Знакомство [30] .
- Zend Framework 2 — гидраторы, модели TableGateway [31] — В посте автор пишет о том, как, используя обозначенные компоненты в ZF2, можно сделать модели полностью независимыми от источника данных
- PHP Framework Bluz. Обновление [32] — Отличный PHP-микрофреймворк, в котором использованы все последние возможности языка и учтены лучшие практики разработки.
- Вебинары от Zend [33] — На сайте Zend всегда доступны записи прошедших вебинаров, например о создании компонентов служб на ZF2 [34].
- Как писать тестируемый и легко поддерживаемый код на PHP [35] — Хороший туториал, в котором на простом примере показано, чего следует избегать и наоборот, что следует обязательно применять в коде для того, чтобы сделать возможным написание модульных тестов, а значит сделать код надежным.
- WebSocket (Sec-WebSocket-Version: 13) — тонкости реализации, в частности на PHP [36] — Хабрапост, в котором автор описал проблемы и трудности возникшие при реализации вебсокет-сервера на PHP [37].
- Раскрытие информации о проблемах безопасности в удобном формате [38] — По мотивам обсуждений в PHP-FIG [39], автор пишет о том, что проблемы с безопасностью в компонентах и библиотеках должны быть обнародованы максимально быстро и в стандартизированной форме для того, чтоб сделать возможным централизованное хранение информации об уязвимостях и автоматизировать проверки например с помощью SensioLabs Security Checker [40].
- Приступая к PHP Zend Framework 2 для Oracle DB [41] — В посте показано как изменить приложение из туториала по ZF2 [42] так, чтобы использовать базу данных Oracle в качестве хранилища.
- ZendService_Api — микрофреймворк для API-запросов в PHP [43] — Микрофреймворком эту библиотеку сложно назвать, но тем не менее автор создал неплохой инструмент на основе компонентов ZF2, который можно использовать для «общения» с различными API.
- Компилируем PHP 5.5 с нуля [44] — Хотите самую свежую версию PHP для вашей платформы? Следуйте инструкциям из поста, установите необходимые зависимости и скомпилируйте PHP самостоятельно.
- Улучшаем безопасность кукис сессий [45] — В посте автор пишет о нескольких опциях конфигурации PHP (session.cookie_httponly, session.use_only_cookies, session.cookie_secure), которые позволят обезопасить сессии.
- Maven и PHP [46] — Хороший туториал по использованию традиционного для Java-мира инструмента сборки в применении к PHP-проектам. В предыдущих выпусках дайджестов не раз упоминался также Phing [47] — аналог Apache Ant, другого популярного Java-инструмента.
- Composer и PSR-0 — друзья, но не родственники [48] — Отличный пост, в котором автор объясняет, что нет и не должно быть прямой связи между PSR-0 и Composer.
- Спецификация или тестирование: сравнение Behat и Codeception [49] — Автор пишет о разнице между функциональным и приемочным тестированиями, а также о том, почему отдает предпочтение Codeception перед Behat.
- Наш провал как индустрии [50] — Автор делает обзор текущей ситуации в веб-разработке, и утверждает что, не смотря на доступность самых разных и мощных как иникогда инструментов, индустрия в целом мало направлена на разработку безопасных решений. А применяемый повсеместно подход перекладывания ответственности необходимо остановить. Будьте ответственны.
- Слайды: Behat и Прекрасные API [51] — Собственно слайды вебинара о BDD и Behat (PDF) [52], а также доклада о проектировании API (PDF) [53].
- Boris — небольшой, но надежный REPL для php [54] — Совсем недавно в дайджесте упоминался этот инструмент, на этот раз небольшой обзор в хабрапосте.
- Phalcon — земля обетованная для PHP? [55] — Отвечая на скепсис Anthony Ferrara [56] по поводу PECL-фреймворков, автор поста пишет, что PHP фреймворки вроде Phalcon могут действительно серьезно повлиять на ход «игры».
- Не избегайте регулярных выражений [57] — Маленькая заметка о том, насколько использование регулярных выражений может быть удобным.
- Офлайн обработка в PHP с помощью Advanced Queuing [58] — Туториал по использованию сервиса очередей от Oracle.
- Используем grep для поиска уязвимостей в PHP-коде [59] — В посте продемонстрирован способ нахождения простых уязвимотсей в коде путем поиска потенциально опасных конструкций.
- Ответственные Silex-контроллеры [60] — Автор поста создал небольшой компонент [61] для Silex, который возвращает данные клиенту автоматически в том формате, в котором они были запрошены. Удобен для реализации API.
- Изучая Rails (ну, и Ruby) [62] — Хабраперевод статьи, написанной опытным PHP-разработчиком, участником PHP-сообщества и докладчиком, который был вынужден изучить и использовать Ruby on Rails для одного из проектов. В своем посте он, как PHP-разработчик, делится полученным опытом и впечатлениями нового языка и фреймворка, указывая на различия и превосходства одного или другого.
- Разбираемся с дайджест аутентификацией [63] — В посте описаны принципы дайджест аутентификации и приведен пример реализации на PHP.
- Еще немного о миграциях. Версия для PHP [64] — Хабрапост с туториалом по Ruckusing [65] — инструмент реализующий миграции на PHP. Напомню, что существует еще одна неплохая standalone-реализация миграций на PHP — Phinx [66].
- Google App Engine, PHP и Silex. Устанавливаем Login Provider [9] — Не успели Google анонсировать поддержку PHP в GAE, как уже подоспел небольшой пример использования с микрофреймворком Silex.
- Создаем видеобиблиотеку с PHPixie [67] — Хороший туториал по PHPixie — быстрому и легкому микрофреймворку.
- 5 причин почему война веб-платформ закончена: PHP победил с результатом 75% — говорит Google [68] — В посте автор сначала делает обзор новой возможности от Google, затем приводит 5 причин по которым считает PHP победителем в «войне веб-платформ». Также автор подмечает, что доминирование PHP не вечно, и призывает помнить, что языки — это всего лишь инструменты, а не религии.
- Все слайды с php[tek] 2013 [69] — Сезон конференций в разгаре, и совсем недавно в Чикаго прошла четырехдневная конференция полностью посвященная PHP. По ссылке слайды 42 докладов, представленных на этой конференции.
Ссылка [22] на предыдущий выпуск.
Автор: pronskiy
Источник [70]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/34770
Ссылки в тексте:
[1] Вышел в свет Zend Framework 2.2.0: http://framework.zend.com/blog/zend-framework-2-2-0-stable-released.html
[2] Google App Engine теперь поддерживает PHP: http://googlecloudplatform.blogspot.com/2013/05/app-engine-adds-php-support.html
[3] пост: http://googlecloudplatform.blogspot.com/2013/05/ushering-in-next-generation-of.html
[4] тут: http://www.youtube.com/watch?v=Qt1_atU_Qsg
[5] в облачном PaaS-хостинге от Google реализована поддержка PHP: https://gaeforphp.appspot.com/
[6] phpinfo: http://php-minishell.appspot.com/phpinfo
[7] других ограничений: https://developers.google.com/appengine/docs/php/runtime#The_Sandbox
[8] Google App Engine в PHPStorm: http://tv.jetbrains.net/videocontent/getting-started-with-google-app-engine-php-in-phpstorm
[9] пример: http://gonzalo123.com/2013/05/20/google-app-engine-php-and-silex-setting-up-a-login-provider/
[10] Доступен PHP 5.5.0RC1: http://php.net/archive/2013.php#id2013-05-09-2
[11] Релизы актуальных веток: PHP 5.4.15 и PHP 5.3.25: http://php.net/archive/2013.php#id2013-05-09-3
[12] ряд исправлений: http://php.net/ChangeLog-5.php
[13] Майский выпуск журнала Web & PHP: http://webandphp.com/May2013
[14] PHPCR: http://phpcr.github.io/
[15] PuPHPet — графический онлайн конфигуратор Puppet & Vagrant: https://jtreminio.com/2013/05/introduction_to_vagrant_puppet_and_introducing_puphpet_a_simple_to_use_vagrant_puppet_gui_configurator/
[16] Отличный инструмент: http://puphpet.com/
[17] GitHub: https://github.com/jtreminio/Puphpet
[18] Инструменты статического анализа кода для PHP: http://chrsm.org/2013/05/05/code-analysis-tools-for-php
[19] PHP Analyzer: https://scrutinizer-ci.com/docs/tools/php/php-analyzer/
[20] Pfff: https://github.com/facebook/pfff
[21] Хак синтаксиса PHP: http://habrahabr.ru/post/179441/
[22] прошлом выпуске: http://habrahabr.ru/company/zfort/blog/178677/
[23] PHP создан, чтобы умирать: http://habrahabr.ru/post/179399/
[24] Функциональное программирование — как писать функциональный код на PHP: http://www.script-tutorials.com/functional-programming-php/
[25] тут: http://phpmaster.com/functional-programming-and-php/
[26] тут: http://habrahabr.ru/post/167181/
[27] Типажи и анонимные функции в PHP. Кря-кря!: http://habrahabr.ru/post/180333/
[28] Новые возможности PHP 5.5: http://www.slideshare.net/jpauli/php55-new-features
[29] Обзор Yii 2.0: http://allframeworks.ru/blog/yii2/623.html
[30] Yii2. Знакомство: http://habrahabr.ru/post/178917/
[31] Zend Framework 2 — гидраторы, модели TableGateway: http://www.maltblue.com/tutorial/zendframework2-hydrators-models-tablegateway-pattern
[32] PHP Framework Bluz. Обновление: http://anton.shevchuk.name/php/php-framework-bluz-update/
[33] Вебинары от Zend: http://www.zend.com/en/resources/webinars/
[34] о создании компонентов служб на ZF2: http://www.zend.com/en/webinar/Framework/70170000000c3HC-Zf2WritingServiceComponents-20130502.flv
[35] Как писать тестируемый и легко поддерживаемый код на PHP: http://net.tutsplus.com/tutorials/php/how-to-write-testable-and-maintainable-code-in-php/
[36] WebSocket (Sec-WebSocket-Version: 13) — тонкости реализации, в частности на PHP: http://habrahabr.ru/post/179585/
[37] вебсокет-сервера на PHP: https://github.com/lemmingzshadow/php-websocket
[38] Раскрытие информации о проблемах безопасности в удобном формате: http://blog.astrumfutura.com/2013/05/publishing-security-disclosures-in-consumable-formats-for-simpler-aggregation-and-security-checking/
[39] PHP-FIG: https://groups.google.com/forum/?fromgroups=#!forum/php-fig
[40] SensioLabs Security Checker: https://security.sensiolabs.org/
[41] Приступая к PHP Zend Framework 2 для Oracle DB: https://blogs.oracle.com/opal/entry/getting_started_with_php_zend
[42] приложение из туториала по ZF2: http://zf2.readthedocs.org/en/latest/user-guide/overview.html
[43] ZendService_Api — микрофреймворк для API-запросов в PHP: http://www.zimuel.it/en/zendservice-api-micro-http-framework/
[44] Компилируем PHP 5.5 с нуля: http://www.brandonsavage.net/compiling-php-5-5-from-scratch/
[45] Улучшаем безопасность кукис сессий: http://simonholywell.com/post/2013/05/improve-php-session-cookie-security.html
[46] Maven и PHP: http://phpmaster.com/maven-and-php/
[47] Phing: http://www.phing.info/
[48] Composer и PSR-0 — друзья, но не родственники: http://philsturgeon.co.uk/blog/2013/05/composer-and-psr0-friends-not-relatives
[49] Спецификация или тестирование: сравнение Behat и Codeception: http://codeception.com/05-06-2013/specification-testing-coparison.html
[50] Наш провал как индустрии: http://blog.ircmaxell.com/2013/05/our-failure-as-industry.html
[51] Слайды: Behat и Прекрасные API: http://qafoo.com/blog/044_slides_bdd_behat_beautiful_apis.html
[52] BDD и Behat (PDF): http://qafoo.com/talks/13_05_webinar_bdd_behat.pdf
[53] о проектировании API (PDF): http://qafoo.com/talks/13_05_sfugcgn_beautiful_apis.pdf
[54] Boris — небольшой, но надежный REPL для php: http://habrahabr.ru/post/179145/
[55] Phalcon — земля обетованная для PHP?: http://systemsarchitect.net/is-phalcon-the-promised-land-for-php/
[56] скепсис Anthony Ferrara: http://blog.ircmaxell.com/2012/08/thoughts-on-pecl-frameworks.html
[57] Не избегайте регулярных выражений: http://bradt.ca/blog/stop-avoiding-regular-expressions-damn-it/
[58] Офлайн обработка в PHP с помощью Advanced Queuing: https://blogs.oracle.com/opal/entry/offline_processing_in_php_with
[59] Используем grep для поиска уязвимостей в PHP-коде: http://www.phpclasses.org/blog/post/206-Using-Grep-to-Find-Security-Vulnerabilities-in-PHP-code.html
[60] Ответственные Silex-контроллеры: http://vvv.tobiassjosten.net/development/responsible-silex-controllers/
[61] компонент: https://github.com/tobiassjosten/ResponsibleServiceProvider
[62] Изучая Rails (ну, и Ruby): http://habrahabr.ru/post/179395/
[63] Разбираемся с дайджест аутентификацией: http://phpmaster.com/understanding-http-digest-access-authentication/
[64] Еще немного о миграциях. Версия для PHP: http://habrahabr.ru/post/179155/
[65] Ruckusing: https://github.com/ruckus/ruckusing-migrations
[66] Phinx: http://phinx.org/
[67] Создаем видеобиблиотеку с PHPixie: http://habrahabr.ru/post/178899/
[68] 5 причин почему война веб-платформ закончена: PHP победил с результатом 75% — говорит Google: http://www.phpclasses.org/blog/post/208-5-Reasons-Why-the-Web-Platform-War-is-Over-PHP-Won-with-75-says-Google.html
[69] Все слайды с php[tek] 2013: https://joind.in/event/view/1176/slides#event-tabs
[70] Источник: http://habrahabr.ru/post/180379/
Нажмите здесь для печати.