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

от автора

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

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

Новости и релизы

  • Zend Optimizer+ возможно будет включен в PHP 5.5 — Неожиданная новость о том, что в ближайший релиз PHP может быть включено расширение для кэширования опкода. Подобные предложения звучали не раз, и естественным кандидатом считался APC. Но Расмус Лердорф и другие core-разработчики не раз говорили о том, что APC еще не достиг стабильной стадии и содержит слишком много ошибок, чтобы быть включенным в PHP. И вот Зеев Сураски, отвечая на вопрос в php-internals, говорит о возможности открытия исходного кода Zend Optimizer+ и включении его в PHP 5.5. Однако по текущему плану релизы альфа-версий не планировались, а значит и новых возможностей не ожидалось, но сообщество восприняло такую новость не без энтузиазма и есть шансы, что расширение все-таки попадет в 5.5. Опубликованный документ RFC кроме всего прочего содержит сравнение Optimizer+ с APC. Предположительно на голосование будет вынесено три возможных сценария: 1. Интегрировать Optimizer+ в PHP 5.5.0 с задержкой релиза до 2 месяцев; 2. Интегрировать Optimizer+ в PHP, не задерживая релиз 5.5; 3. Не интегрировать Optimizer+ в PHP, предоставляя его как опциональный компонент доступный из PECL.
  • В свет вышли Zend Framework 2.0.7, 2.1.0 и сразу 2.1.1 — Если версия 2.0.7 это хоть и внушительный, но все-таки набор исправлений, то релиз 2.1.0 содержит множество нововведений, включая новые компоненты для работы с push-уведомлениями для iOS и Android устройств. Ну а 2.1.1 вносит ряд исправлений.
  • Анонсирован стабильный релиз MySQL 5.6 — С момента выхода предыдущей версии прошло 2 года, и этот долгожданный релиз содержит множество нововведений и улучшений, особенно коснувшихся производительности. Примечательно, что немногим ранее Fedora и openSUSE заявили о намерении заменить MySQL на MariaDB в установке по умолчанию.
  • 11й выпуск журнала Web & PHP — В свежем выпуске журнала раскрыты следующие темы: PHP в облаке; Развитие Agile мышления; Индексирование баз данных; и другие.
  • Бета релиз phpMyAdmin 4.0.0 — В этой версии наконец-то убраны HTML фреймы.

PHP

  • PHP 6 Pissing in the Wind — Отличнейший пост, в котором автор высказывает свою точку зрения по поводу сложившейся обстановки в PHP сообществе. Он приводит пример проблем в языке, которые постоянно ставятся в укор PHP-ненавистниками, а именно: несогласованность параметров, отсутствие скалярных объектов и поддержки юникода. Сначала автор приводит очевидное, по его мнению, решение, а затем пишет о том, почему же все-таки изменения не вносятся. Он считает, что среди core-разработчиков слишком много консервативно-настроенных личностей, и голосования по сколько-нибудь серьезным изменениям чаще всего проваливаются, как это было, например, с аксессорами. Автор призывает к прогрессивным изменениям, а тех, кто не хочет работать над такими изменениями, призывает отойти от дел. Не менее интересными стали комментарии к посту, например подробный ответ от Зеева Сураски.
  • PHP все растет и растет — Опубликованы результаты исследования данных об использовании PHP за последние 10 лет. Заголовок поста как бы намекает. Кроме описания использованных метрик и особенностей оценки пост также содержит краткую историю языка PHP.
  • Функциональное программирование на PHP — В прошлом выпуске упоминался оригинал, в котором подробно описано текущее состояние реализации функциональной парадигмы в языке PHP, приведен пример использования подсчета общей стоимости корзины покупок в функциональном стиле. На этот раз вашему вниманию хабраперевод.
  • Типажи в PHP: хорошо это или плохо? — Типажи — это конечно же трейты. Именно о них перевод статьи, в которой рассмотрены достоинства и недостатки новой возможности языка PHP.

Материалы для обучения

  • Советы по прохождению Zend сертификации, 2 — Интервью с одним из создателей PHPBenelux — Michelangelo van Dam и просто известной блоггершей Lorna Jane Mitchell, в которых они делятся полезными советами и рекомендациями по прохождению сертификаций от Zend, отвечая на вопросы: стоит ли проходить? как готовиться? на что обратить внимание? и многие другие.
  • Тестируем сериализацию на PHP —Задача сериализации данных возникает очень часто, например, при реализации кэширования. И, очевидно, что кодирование информации занимает какое-то время. В статье автор описал результаты тестирования с помощью встроенных методов serialize/unserialize, с помощью расширения igbinary, а также кодирование в JSON-строку.
  • Laravel 4: Создаем RESTful API — Хотя Laravel 4 еще в бете, но уже имеется множество материалов по этому фреймворку. В данном туториале описано построение RESTful API на примере создания простого сервиса отложенного чтения. И в первой части рассмотрены следующие шаги: установка фреймворка, конфигурация, использование миграций, использование ORM, аутентификация, настройка маршрутов (в том числе учитывая версионность API), создание контроллера реализующего операции создания, обновления и получения списка ресурсов.
  • Как выполнять асинхронные запросы на PHP — Отличный пост, в котором автор описывает 3 способа выполнения асинхронных вызовов из PHP. Эти три способа не предполагают использование каких-либо внешних зависимостей типа сервера очередей, все на чистом PHP: открытие сокета и закрытие без ожидания ответа; запись в лог файл (псевдоочередь); форк процесса curl. Для каждого способа приведен небольшой пример и рассмотрены достоинства/недостатки каждого.
  • Параллельный PHPUnit — Небольшой пост о параллельном использования PHPUnit для запуска нескольких наборов тестов одновременно. Автор упоминает о возможных проблемах с состоянием гонки и рекомендует использовать инструмент Paratest.
  • Doctrine и SOLID — В своем посте автор говорит о невозможности следовать принципам SOLID при использовании Doctrine 2, в частности сложным является сохранение единственной обязанности. Автор дает пару рекомендаций по улучшению кода.
  • Конфигурируем контейнер служб Symfony для использования Twitter API — Этим постом автор продолжают свою серию об использовании контейнера служб в Symfony 2 (1, 2). В описанном примере автор использует библиотеку Guzzle HTTP для создания службы привязанной к Twitter API.
  • Логируем согласно PSR-3 для повторного использования — Хороший и подробный туториал по созданию простого логера для вашего приложения следуя недавно принятому стандарту.
  • Как писать код, который готов к изменениям — Отличный пост, в котором сделан обзор всех принципов проектирования и кодирования программного обеспечения, призванных сделать код легко изменяемым и поддерживаемым. Хороший текст дополнен простыми и понятными примерами на PHP.
  • 8 практик по обеспечению безопасности вашего веб-приложения — Очередной пост с классическими рекомендациями по безопасности с примерами на PHP.
  • Легко масштабируем с помощью nginx, memcached, PHP-FPM и APC — Небольшое руководство по масштабированию веб приложения с использованием веб сервера Nginx, memcached, PHP-FPM и APC.
  • Управляем билдами PHP приложений помощь Phing — Хорошая отправная точка, если вы решили автоматизировать развертывание ваших PHP приложений. В статье приведена базовая информация по использованию основанного на Ant инструмента — Phing. Рассмотрена установка из PEAR, базовая конфигурация для проекта, пример конфигурации для запуска тестов на PHPUnit.
  • Кастомный загрузчик конфигов для Symfony 2 —В посте автор описывает решение задач конфигурирования Symfony 2 в том случае, когда фреймворк является далеко не единственным компонентов в системе. Описанный подход предполагает использование INI файлов вместо YAML.
  • Zend Framework 2 ServiceManager —Последняя статья из серии введения в Zend Framework 2. В предыдущих постах уже были рассмотрены Dependency Injection, Модули и ModuleManager и EventManager. На этот раз автор касается компонента ServiceManager, пишет о том, как его конфигурировать, как использовать и упростить при этом разработку, приводит примеры.
  • Настройка PHP окружения для разработки на VPS —Автор столкнулся с рядом проблем и неудобств при разработке на локальной машине и решил использовать для этих целей полноценный VPS. Свой опыт он подробно изложил в посте.
  • Когда писать плохой код — В небольшой заметке Brandon Savage, автор книг The PHP Playbook и Mastering Object Oriented PHP, делится мыслями о том, когда, по его мнению, допустимо писать плохой код. Мысли не новые, но в качестве напоминания полезные.
  • Внедрение зависимости с помощью Pimple — При разработке приложений мы стараемся создавать независимые модули и компоненты для того, чтобы было возможным их повторное использование. Но создавать полностью независимые компоненты сложная задача, и получившиеся зависимости могут создать много проблем, если не находятся под должным контролем. В этом случае внедрение зависимости является отличным решением. В посте рассмотрено использование простой библиотеки реализующей внедрение зависимости — Pimple от одного из разработчиков Symfony.
  • Ускоряем автозагрузку классов с помощью Composer — В посте автор показывает нестандартное решение, которое позволяет увеличить скорость загрузки классов с помощью Composer, создав предварительно символические ссылки на файлы.
  • Комментарии и Doc-блоки в PHP — Небольшой пост о том, как правильно следует комментировать код и составлять Doc-блоки.
  • Composer + Yii + Imagine: небольшое приложение для загрузки картинок — На примере простого приложения автор показывает, как легко и просто можно собрать приложение c помощью Composer, используя стандартный репозиторий Packagist.
  • Вход через соцсети: модуль SSO — В статье автор подробно рассказывает о создании модуля авторизации через социальные сети для фремворка Kohana.
  • Composer Stability Flags — Автор рассказывает о том, как в Сomposer работают «флаги стабильности» и о проблемах, связанных со стабильностью версий при использовании Сomposer, кроме того автор призывает разработчиков модулей/расширений тэгировать свои проект и обозначать стабильность своего кода в репозиториях соответствующими ветками.
  • Запросы к MySQL 5.6 из PHP быстрее в 1.5 … 9 раз? — Немного тестов свежей MySQL 5.6.
  • Автоматизированный рефакторинг в большом проекте — Хабрапост, в котором продемонстрирован способ автоматического рефакторинга. На примере phpBB показано, как можно «отрефакторить» вызовы SQL-запросов, чтобы они использовали экранирование входных данных.
  • Ловим фатальные ошибки PHP — Краткий туториал о том, как можно перехватить Fatal Error’ы и красиво их оформить.
  • Об одной малоизвестной уязвимости в веб сайтах — Хабрапост, в котором идет речь о подмене HTTP_HOST и SERVER_NAME. Будьте внимательны и не доверяйте пользовательским данным.
  • Core Concepts: Attack Surface — Автор рассказывает о том, что такое поверхность атаки и как эту самую поверхность можно уменьшить, повысив тем самым безопасность своего приложения.
  • Берегитесь массового присваивания — Немного о том, как важно фильтровать приходящие от пользователя данные, в чем суть проблемы и чем это может быть чревато.
  • Аутентификация с помощью OAuth на PHP — Неплохое введение в использование OAuth в PHP приложениях.
  • Testable Code и SOLID — Совсем недавно в Антверпене прошла конференция PHPBenelux. Автор поста, по совместительству один из докладчиков, выложил слайды двух своих докладов: Тестируемый Код (PDF) и SOLID (PDF).
  • PHPBenelux Slides — На той же конференции делал доклады Илья Альшанетский. Слайды: Безопасность веб-приложений (PDF) и Встречаем PHP 5.4 (PDF).
  • Хранение паролей в PHP — Слайды и материалы доклада от Anthony Ferrara все с той же PHPBenelux.
  • Раскрываем магию MySQL или о строгости и мягкости MySQL — Отличный хабрапост, в котором автор расставляет точки над «загадочным» поведением MySQL.

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

ссылка на оригинал статьи http://habrahabr.ru/company/zfort/blog/169031/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *