- PVSM.RU - https://www.pvsm.ru -

Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013)

Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!

Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013) Новости и релизы

  • Выпущен PHP 5.5.0 Alpha4 [1] — Команда разработчиков PHP анонсировала выход уже четвертой альфа версии PHP 5.5. Данный релиз включает как исправления ошибок, так и парочку новых возможностей, среди которых: получение имени класса с помощью ключевого слова «class» (ClassName::class), подробнее тут [2]; добавлен класс DateTimeImmutable. Полный список изменений тут [3]. Стоит заметить, что это последний альфа релиз PHP 5.5 — с этого момента начинается работа над бетами и первая из них ожидается 7 февраля. В бета версиях не будут добавлены новые возможности, так что на данный момент уже можно с уверенностью говорить о том, каким будет PHP 5.5. Аксессоры мы не увидим [4].
  • Релизы PHP 5.4.11 и PHP 5.3.21 [5] — Также обновились и текущие стабильные ветки. Релизы включают только исправления ошибок. Со списком изменений можно ознакомиться тут [6].
  • Laravel 4 Beta 1 [7] — О четвертой версии фреймворка уже написано немало, и вот наконец-то первая бета. Документация тут [8], код тут [9].

Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013) PHP

  • Функциональное программирование на PHP [10] — Отличный пост, в котором подробно описано текущее состояние реализации функциональной парадигмы в языке PHP. Приведен пример использования подсчета общей стоимости корзины покупок в функциональном стиле.
  • Трейты: хорошо или плохо? [11] — О трейтах уже писали много [12]. Еще одна статья в копилку, в которой рассмотрены достоинства и недостатки новой возможности языка PHP.
  • Почему 2013 — это год PHP? [13] — Прошлый год для PHP был определенно успешным и продуктивным, а в этом посте автор сначала рассказывает о проблемах, с которыми сталкиваются разработчики на PHP и делает прогноз на 2013 год.
  • Парсинг и выполнение PHP кода на Haskell [14], 2 [15] — Очень интересный эксперимент автора описан им в двух постах. Подробно рассказано обо всех ключевых моментах создания: в первой части о парсинге PHP кода, а во второй о, собственно, выполнении. Код получившегося инструмента доступен на Github [16].

Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013) Материалы для обучения

  • Реализация «издатель-подписчик» на Websockets, Ratchet, Silex и Redis [17] — Небольшой, но интересный пост о создании веб сервиса реального времени, который может быть использован через вебсокеты. Перед автором стояла задача реализовать некоторый бэкенд для iOS приложения, и очевидным решением казалось создать REST сервис, но такое решение обладало рядом недостатков. В результате автор реализовал простой инструмент для обработки запросов через вебсокеты с помощью Ratchet, Redis и Silex. Код [18] и демо [19].
  • PSR? [20] — Хороший пост с обзором всех стандартов PSR. В последнее время было много критики в сторону PSR, особенно после принятия PSR-3, но хватает и постов в защиту, как, например, этот [21] и особенно этот [22].
  • Autoload path depth insanity [23] — В своем посте автор высказывает мысли по поводу стандарта PSR-0 и, в связи с появлением Composer, говорит о необходимости внести изменения в стандарт. Список предложений прилагается.
  • Программирование с Anthony — Посредник [24] — Активный деятель PHP-сообщества Anthony Ferrara продолжает свою серию видеозаписей о программировании. В очередном видео он рассказывает о шаблоне проектирования Посредник (Mediator). Другие видео из серии доступны тут [25].
  • 5 знаков свидетельствующих о том, что ваш сервис не RESTful [26] — Хотя REST не панацея, когда речь идет о построении API, но если вы все-таки реализовываете RESTful сервис, то делайте это правильно.
  • Node.js для PHP разработчиков [27], 2 [28], 3 [29], 4 [30] — Если вы PHP разработчик и задумываетесь о том, чтобы переключиться на что-нибудь другое, то подумайте о Node.js. В серии статей автор пишет о базовых принципах разработки на Node.js, и, что особенно полезно, дополняет посты примерами реализации одних и тех же вещей на Node.js и на PHP.
  • MongoDB's aggregation framework [31] — В версии 2.2 в MongoDB бы представлен aggregation framework [32], который предоставляет мощные и гибкие возможности для решения задач агрегации данных. Пост представляет собой введение в agregation framework с примерами на PHP.
  • Улучшаем рабочий процесс на PHP с помощью пространств имен, Composer, PHPUnit [33] — Видео туториал об использовании столь полезных инструментов. Если вы еще этого не делаете, то самое время начать.
  • Забегаем вперед в вопросах безопасности путем наблюдения за соседями [34] — Написать пост автора подбила новость об обнаруженной не так давно критической уязвимости [35] в Ruby On Rails (подробный анализ [36]). Проведя исследование, автор обнаружил подобную уязвимость в парсере YAML в Symfony. И хотя ошибка уже исправлена [37], никто не застрахован, поэтому автор призывает быть бдительным и внимательно следить за обнаруженными ошибками не только в инструментах, используемых вами, но и в их аналогах.
  • LUCID [38] — Серия статей а разработке по принципам LUCID [39]: L [40] — логирование, U [41] — модульное тестирование, C [42] — конфигурироемость, I [43] — изолированность, D — документированность.
  • Lithium: получаем данные из базы [44] — Небольшая статья, в которой описана работа с базой данных во фреймворке Lithium [45].
  • Реализовываем PSR-3 с помощью log4php [46] — Туториал о том, как реализовать недавно принятый стандарт с помощью отличного инструмента логирования от Apache [47].
  • Хэширование паролей на PHP [48] — Повторение — мать учения. Еще один гайд по безопасному хэшированию паролей. А вот тут [49] туториал по использованию ZendCrypt из ZF2 для решения тех же задач.
  • Zend Framework 2 Event Manager [50] — Хорошее руководство для того, чтоб начать работать c Event Manager в ZF2. Автор сначала делает обзор принципов лежащих в основе: паттерн проектирования Наблюдатель [51], событийно-ориентированное программирование. Затем касается конкретных примеров использования менеджера событий.
  • Двухфакторная аутентификация от Google на PHP [52] — Небольшой пост о реализации двухфакторной авторизации используя библиотеку GAuth [53].
  • Можно так просто взять и скрыть информацию [54] Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013) — Хабрапост, в котором описана реализация стенографического алгоритма на PHP — скрываем информацию прямо в изображении.
  • Использование PDO [55] — Подробный туториал посвященный PDO [56]. Если вы все еще используете расширение Mysql [57], то самое время о нем забыть и начать использовать современные интерфейсы доступа к базам данных.

Ссылка [58] на предыдущий выпуск.
Материал подготовили dbritan [59], nesttor [60] и pronskiy [61]

Автор: alexzfort

Источник [62]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/25753

Ссылки в тексте:

[1] Выпущен PHP 5.5.0 Alpha4: http://php.net/archive/2013.php#id2013-01-24-1

[2] тут: https://wiki.php.net/rfc/class_name_scalars

[3] тут: https://github.com/php/php-src/blob/php-5.5.0alpha4/NEWS

[4] не увидим: https://wiki.php.net/rfc/propertygetsetsyntax-v1.2

[5] Релизы PHP 5.4.11 и PHP 5.3.21: http://php.net/archive/2013.php#id2013-01-17-1

[6] тут: http://php.net/ChangeLog-5.php

[7] Laravel 4 Beta 1: http://forums.laravel.io/viewtopic.php?id=4565

[8] тут: http://four.laravel.com/docs/installation

[9] тут: https://github.com/laravel/laravel/tree/develop

[10] Функциональное программирование на PHP: http://usrportage.de/archives/941-Functional-programming-in-PHP.html

[11] Трейты: хорошо или плохо?: http://phpmaster.com/php-traits-good-or-bad/

[12] много: http://phpmaster.com/using-traits-in-php-5-4/

[13] Почему 2013 — это год PHP?: http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/

[14] Парсинг и выполнение PHP кода на Haskell: http://codeutopia.net/blog/2013/01/16/parsing-and-evaluating-php-in-haskell-part-1/

[15] 2: http://codeutopia.net/blog/2013/01/23/parsing-and-evaluating-php-in-haskell-part-2/

[16] Github: https://github.com/jhartikainen/hs-language-php

[17] Реализация «издатель-подписчик» на Websockets, Ratchet, Silex и Redis: http://blog.jmoz.co.uk/websockets-ratchet-react-redis

[18] Код: https://github.com/jmoz/silex-test

[19] демо: http://silex-test.jmoz.co.uk/pubsub

[20] PSR?: http://net.tutsplus.com/tutorials/php/psr-huh/

[21] этот: http://www.littlehart.net/atthekeyboard/2013/01/20/standards-soapboxes-and-shamans/

[22] этот: http://philsturgeon.co.uk/blog/2013/01/most-important-conversation-ever

[23] Autoload path depth insanity: https://igor.io/2013/01/23/autoload-insanity.html

[24] Программирование с Anthony — Посредник: http://blog.ircmaxell.com/2013/01/mediators-programming-with-anthony.html

[25] тут: https://www.youtube.com/playlist?list=PLM-218uGSX3DQ3KsB5NJnuOqPqc5CW2kW&feature=view_all

[26] 5 знаков свидетельствующих о том, что ваш сервис не RESTful: http://www.lornajane.net/posts/2013/five-clues-that-your-api-isnt-restful

[27] Node.js для PHP разработчиков: http://dotheweb.posterous.com/nodejs-for-php-programmers-1-event-driven-pro

[28] 2: http://dotheweb.posterous.com/nodejs-for-php-programmers-2-modules-packages

[29] 3: http://dotheweb.posterous.com/nodejs-for-php-programmers-3-exceptions-and-e

[30] 4: http://dotheweb.posterous.com/nodejs-for-php-programmers-4-streams

[31] MongoDB's aggregation framework: http://derickrethans.nl/aggregation-framework.html

[32] aggregation framework: http://docs.mongodb.org/manual/aggregation/

[33] Улучшаем рабочий процесс на PHP с помощью пространств имен, Composer, PHPUnit: http://net.tutsplus.com/tutorials/php/better-workflow-in-php-with-composer-namespacing-and-phpunit/

[34] Забегаем вперед в вопросах безопасности путем наблюдения за соседями: http://blog.astrumfutura.com/2013/01/getting-ahead-in-security-by-watching-the-neighbours/

[35] критической уязвимости: https://groups.google.com/forum/#!topic/rubyonrails-security/61bkgvnSGTQ/discussion

[36] подробный анализ: http://www.insinuator.net/2013/01/rails-yaml/

[37] уже исправлена: http://symfony.com/blog/security-release-symfony-2-0-22-and-2-1-7-released

[38] LUCID: http://crisscott.com/tag/lucid/

[39] LUCID: http://crisscott.com/2012/09/11/lucid-development/

[40] L: http://crisscott.com/2012/09/21/l-is-for-logging/

[41] U: http://crisscott.com/2012/10/18/u-is-for-unit-tests/

[42] C: http://crisscott.com/2012/11/30/c-is-for-configurable/

[43] I: http://crisscott.com/2013/01/16/i-is-for-isolation/

[44] Lithium: получаем данные из базы: http://unassumingphp.com/lithium-getting-stuff-from-your-database/

[45] Lithium: http://lithify.me/

[46] Реализовываем PSR-3 с помощью log4php: http://phpmaster.com/implementing-psr-3-with-log4php/

[47] инструмента логирования от Apache: http://logging.apache.org/log4php/

[48] Хэширование паролей на PHP: http://phpmaster.com/password-hashing-in-php/

[49] тут: http://websec.io/2013/01/21/Password-Hashing-with-Zend-Crypt.html

[50] Zend Framework 2 Event Manager: http://www.maltblue.com/tutorial/zend-framework-2-event-manager-a-gentle-introduction

[51] Наблюдатель: http://ru.wikipedia.org/wiki/Шаблон_проектирования

[52] Двухфакторная аутентификация от Google на PHP: http://websec.io/2013/01/11/Googles-Two-Factor-Auth-Online-Offline.html

[53] GAuth: https://github.com/enygma/gauth

[54] Можно так просто взять и скрыть информацию: http://habrahabr.ru/post/166583/

[55] Использование PDO: http://www.netmagazine.com/tutorials/using-php-data-objects

[56] PDO: http://php.net/pdo

[57] Mysql: http://php.net/manual/ru/book.mysql.php

[58] Ссылка: http://habrahabr.ru/company/zfort/blog/165513/

[59] dbritan: http://habrahabr.ru/users/dbritan/

[60] nesttor: http://habrahabr.ru/users/nesttor/

[61] pronskiy: http://habrahabr.ru/users/pronskiy/

[62] Источник: http://habrahabr.ru/post/167127/