Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
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 мышления; Индексирование баз данных; и другие.
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, в частности сложным является сохранение единственной обязанности. Автор дает пару рекомендаций по улучшению кода.
Как писать код, который готов к изменениям — Отличный пост, в котором сделан обзор всех принципов проектирования и кодирования программного обеспечения, призванных сделать код легко изменяемым и поддерживаемым. Хороший текст дополнен простыми и понятными примерами на PHP.
Управляем билдами 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. Свой опыт он подробно изложил в посте.
Внедрение зависимости с помощью Pimple — При разработке приложений мы стараемся создавать независимые модули и компоненты для того, чтобы было возможным их повторное использование. Но создавать полностью независимые компоненты сложная задача, и получившиеся зависимости могут создать много проблем, если не находятся под должным контролем. В этом случае внедрение зависимости является отличным решением. В посте рассмотрено использование простой библиотеки реализующей внедрение зависимости — Pimple от одного из разработчиков Symfony.
Ускоряем автозагрузку классов с помощью Composer — В посте автор показывает нестандартное решение, которое позволяет увеличить скорость загрузки классов с помощью Composer, создав предварительно символические ссылки на файлы.
Комментарии и Doc-блоки в PHP — Небольшой пост о том, как правильно следует комментировать код и составлять Doc-блоки.
Вход через соцсети: модуль SSO — В статье автор подробно рассказывает о создании модуля авторизации через социальные сети для фремворка Kohana.
Composer Stability Flags — Автор рассказывает о том, как в Сomposer работают «флаги стабильности» и о проблемах, связанных со стабильностью версий при использовании Сomposer, кроме того автор призывает разработчиков модулей/расширений тэгировать свои проект и обозначать стабильность своего кода в репозиториях соответствующими ветками.
Автоматизированный рефакторинг в большом проекте — Хабрапост, в котором продемонстрирован способ автоматического рефакторинга. На примере phpBB показано, как можно «отрефакторить» вызовы SQL-запросов, чтобы они использовали экранирование входных данных.
Ловим фатальные ошибки PHP — Краткий туториал о том, как можно перехватить Fatal Error'ы и красиво их оформить.
Берегитесь массового присваивания — Немного о том, как важно фильтровать приходящие от пользователя данные, в чем суть проблемы и чем это может быть чревато.