Дайджест интересных новостей и материалов из мира PHP № 46 (3 – 24 августа 2014)
сегодня в 20:54
Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
Последний релиз ветки PHP 5.3 — PHP 5.3.29 — Спустя 5 с небольшим лет после выпуска, поддержка ветки 5.3 официально завершена. Релиз 5.3.29 стал последним в истории и включил в себя ряд исправлений безопасности реализованных ранее в ветках 5.4 и 5.5. Дальнейших обновлений не планируется. Подробнее об истории ветки 5.3 написал ее релиз-менеджер Johannes Schlüter в своем посте.
PHP 5.6.0RC4 — Четвертый и последний релиз-кандидат новой версии интерпретатора. Финальный релиз ожидается уже 28 августа. Обзор нововведений 5.6 тут и тут
.
PHP 5.5.16, 5.4.32 — Обновления актуальных веток. Кстати, следующий релиз ветки 5.4 станет последним релизом, который содержит не только исправления безопасности (подробнее в internals). Таким образом, вместе с релизом 5.6 продолжится практика двух актуальных веток и одной ветки с поддержкой безопасности.
CodeIgniter обзавелся новым домом — Чуть больше года назад компания EllisLab, занимавшаяся разработкой CodeIgniter, объявила о том, что не в силах поддерживать фреймворк и ищет нового владельца. В твиттере EllisLab говорится, что новый хозяин найден, но подробная информация будет позже. Есть ли шансы у CodeIgniter с новой компанией по-настоящему вернуться в гонку?
PHP
RFC: Включить PHPNG в ветку master — Поскольку PHPNG уже достаточно стабилен, то было предложено включить ранее бывшую экспериментальной ветку PHPNG в master, и таким образом сделать новую реализацию основой PHP 7. Предложение практически единогласно принято и уже реализовано, а значит, если все пойдет по плану, то мир увидит PHP 7 через год или позже, в зависимости от количества прочих изменений. Go PHP 7!
RFC: Closure: call — Предложение добавить новый метод call. Он позволит выполнить замыкание, передав первым параметром объект, который будет использован в качестве $this в теле замыкания. Аналог метода call в JavaScript.
RFC: Add pecl_http to core — Как ясно из названия, предлагается интегрировать популярное PECL-расширение непосредственно в ядро.
RFC: Switch default multiple — Первые результаты публикации спецификации языка PHP — предложение, в котором предлагается исправить некорректное поведение интерпретатора и запретить использование нескольких блоков default в конструкции switch.
RFC: Abstract syntax tree — Голосование по реализации абстрактного синтаксического дерева заканчивается уже завтра и рискует стать первым абсолютно единодушным решением — ни одного голоса против.
Другие предложения: RFC: Function Referencing as Closures, RFC: Binary String Comparison — предложение по приведению в порядок нестрогого сравнения числовых строк.
Инструменты
Phred — Расширение PHP, которое добавляет в язык ОО работу со строками, полную поддержку юникода, компоненты для интернационализации/локализации и много других полезных возможностей.
patch-installer — Библиотека позволяет патчить другие пакеты после установки или обновления с помощью Composer.
patchwork — Библиотека позволяет переопределять пользовательские функции в рантайме. Также, например, позволяет подменять статический и приватные методы тестовыми заглушками.
Patchwork-Dumper — Продвинутый dump переменных.
Gliph — Библиотека для работы с графами на PHP. Также для работы с графами есть библиотека Graph.
TechDivision_ApplicationServer — Многопоточный сервер приложений на PHP.
Negotiation — Библиотека для реализации content negotiation в PHP приложении.
php-resque — Порт популярной Ruby-библиотеки Resque для работы с очередями задач на основе Redis. Туториал по использованию тут.
php-webshells — Большая подборка веб-шеллов на PHP.
Сonduit — Middleware на PHP, порт Sencha Connect для Node.js.
Grav — Файловая CMS.
Dice — Минималистичный Dependency Injection контейнер.
Factory Muffin — Библиотека для быстрой генерации тестовых объектов. Аналог Factory Girl из Ruby.
Elcodi — Набор e-commerce компонентов для Symfony 2.
30 самых часто используемых бандлов Symfony
Материалы для обучения
Symfony
Laravel
Основы Python для PHP-разработчиков
Сравнительный тест производительности Dependency Injection контейнеров — Протестированы PHP-DI, Zend/Di, Aura.Di. Symfony/DependencyInjection, Orno/Di и Dice.
Тестирование кода, который что-либо выводит — Задача протестировать код выводом заголовков или контента. Для этого автор предлагает использовать трюк с неймспейсами.
Как сгенерировать уникальную 64-битное целое число из строки — Пример реализации хэш-функции на основе md5 и GMP.
Предотвращение dogpile-эеффекта — В посте идет речь о кэшировании и проблеме, когда срок валидности кэша истек и к приложению поступает сразу множество запросов, для каждого из которых приложение пытается сгенерировать новые данные. Предлагается типичное решение в виде использования семафора.
Быстрый роутинг с помощью PHRoute
Как привести в порядок PHP-приложение, 2 — Несколько рекомендации по улучшению производительности.
Проверьте качество вашего кода с помощью SensioLabs Insight — Обзорный туториал по использованию сервиса от создателей Symfony. Бесплатно для проектов с открытым кодом.
Fractal — практическое применение — Рассмотрено использование библиотеки Fractal для решения проблемы безболезненного изменения схемы БД в RESTful приложении.
Цифровая подпись релизов проекта — Фабьен пишет о том, как использовать PGP-ключ для подписи Git тегов и архивов.
Легаси код — это болезнь — О том, почему подход «поддерживать все, пока мы в состоянии» может обернуться проблемами.
Профилирование с помощью Xhprof & Xhgui, 2
Использование Composer для Magento — Коротко о Composer и использовании Magento Composer Installer.
Reasoned PHP — О логическом программировании и PHP. Автор реализовал интерпретатор логического языка на PHP.
Реализация API в вашем легаси приложении с помощью Toro — Об использовании ToroPHP.
Делаем запросы безопасными с помощью JWT (JSON Web Tokens)
PECL/mysqlnd_ms: summer time, (connection) pool time — Пост об использовании расширения PECL/mysqlnd_ms для реализации репликации и балансировки нагрузки кластеров баз данных MySQL.
Правила полета для Git — Сборник типичных проблем и решений для повседневной эффективной работы с Git.
Строки в PHP — Руководство для начинающих.
echo vs print — О разнице для начинающих.
Шаблоны проектирования в PHP: Цепочка обязанностей
С Yii 1.1 на Yii 2.0: часть 1, часть 2
OpenSource-им PHP код
Понимание и работа с данными в WordPress. Часть 1. Введение
Оптимизации WordPress. Часть 2. Итоги конкурсa «ВПС на год за лучшие идеи!»
Малоизвестные функции в WordPress
Крупная уязвимость в WordPress и Drupal может положить сайт
И опять атака на сайты Wordpress — перебор + XMLRPC
Темы Wordpress и «бесплатный сыр» — 54% популярных тем для WP содержат зловредный код.
Поучительная история о том, что может случиться с сайтом на shared-хостинге
Ускорение сайта на wordpress с Microsoft Azure по-быстрому
Свой сервис скриншотов для спокойного сна
Несколько версий PHP в ISPmanager
Magento шаг за шагом: REST API
Badoo PHP Code Formatter. Теперь в open source!
Генерация xkcd паролей на PHP
И снова про монады в PHP
Сессии в PHP — подводный камушек при асинхронных запросах — Вопрос известный, но всплывает регулярно. В тему еще одно решение предложено здесь — данные сессии только для чтения.
mysqlnd — проводник между PHP и MySQL
Аудио и видеоматериалы
Занимательное
Быстрый поиск по всем дайджестам← Предыдущий выпуск
Только зарегистрированные пользователи могут оставлять комментарии.Войдите, пожалуйста.
