Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
Традиционно 1 апреля интернет трясло из стороны в сторону от оглушительных «новостей». И мир PHP не исключение. Итак, Yii2, который многие с нетерпением ждут, будет переписан Ruby. Но что там Ruby! И без того производительный PHP-фреймворк Phalcon, написанный на C, будет переписан на ассемблере. Кроме того группа PHP-FIG вынуждена была признать, что решение использовать пробелы вместо табуляции для отступов было совсем не верным, и на этот раз табы победили! Ну и конечно самой главной стала новость о том, что командой проекта PHP принято решение наконец-то выпустить PHP 6.0 вместо 5.5.
- Вышла PHP 5.5 beta2 — Немного раньше планируемой даты вышла очередная бета, а это значит, что есть шансы увидеть стабильную версию еще весной. В релизе несколько исправленных ошибок, полный список изменений тут.
- Апрельский выпуск журнала Web & PHP — В свежем выпуске раскрыты следующие темы: разработка современных client-side компонентов; хотели ли бы вы быть PHP-евангилистом; темная сторона PHP и другие.
- Zend Framework 1 переезжает на Git — Код фреймворка перенесен на GitHub. Zend Framework 1 находится в стадии поддержки, которая будет приостановлена через год-полтора. Пулл-реквесты принимаются только на исправления, но не значит ли это, что можно ожидать форка ZF1?
PHP
- Операторы сравнения в PHP очень странные... — В прошлых выпусках упоминались ответ Никиты Попова на StackOverflow о тонкостях работы foreach. В этот раз Никита отвечает на вопрос об операторах сравнения. Например, оператор
==
не является рефлексивным, то есть$a == $a
не всегда истинно. - Помогите, утечки памяти в PHP! — Отличные слайды от core-разработчика и релиз-менеджера PHP 5.5 Julien Pauli. Много полезной информации о том, как устроен PHP изнутри.
- Предсказывание случайных чисел в PHP — это проще, чем вы думаете! — Хороший пост, в котором детально рассказано о способах генерации случайных значений в PHP и о том, что не всегда эти значения «случайны», как может показаться на первый взгляд.
- PHP is meant to die — В посте автор говорит о том, что PHP никогда не был предназначен для долгого непрерывного выполнения. Предполагается, что скрипт за короткое время выполнит задачу и «умрет». Именно поэтому в PHP не особо заботились об утечках памяти и других проблемах.
Подкасты
В дайджестах обычно не освещаются подкасты по PHP, но выход нового подкаста от Zend стал хорошим поводом сделать обзор всех существующих.
- /dev/hell — Подкаст по веб-разработке, одним из авторов которого является небезызвестный The Grumpy Programmer — автор той самой PHPUnit Cookbook.
- PHP Town Hall — Данный подкаст создается двумя активными разработчиками из CodeIgniter и Laravel сообществ — Ben Edmunds и Phil Sturgeon. Последний также является создателем PyroCMS и участником PHP-FIG. Для записи подкаста они приглашают известную личность из PHP-сообщества и обсуждают актуальные темы.
- Lately in PHP — Видео-подкаст, автором которого является Manuel Lemos, создатель ресурса PHP Classes. Актуальные новости из PHP-мира обсуждаются в видеочате с другими деятелями PHP.
- PHP Podcast — Тот самый новый подкаст от Zend, создаваемый Joe Stagner. В первом выпуске в гостях Cal Evans и обсуждение касается развития PHP-сообщества.
Материалы для обучения
- Первый взгляд на React — React — не что иное как реализация паттерна Reactor на PHP. Библиотека позволяет создавать асинхронные основанные на событиях приложения а-ля Node.js. По ссылке небольшой вводный туториал, больше информации в видеозаписи отличного доклада от самого автора библиотеки. Кроме того несколько примеров простых приложений в видеозаписях на официальном канале React In Action.
- Распределенные приложения на PHP с помощью Apache Zookeeper — Отличный вводный туториал по использованию ZooKeeper. Автор на простом примере демонстрирует работу распределенного приложения.
- Укрощаем Slim 2.0 — Большой и подробный туториал по одному из расплодившихся в последнее время PHP-микрофреймворков.
- Встречаем Boris: улучшенный REPL для PHP — Boris является более продвинутой интерактивной средой программирования по сравнению со встроенной в PHP, доступ к которой, в свою очередь, можно получить вызовом
php -a
. По ссылке небольшой туториал, в котором рассказано об установке, настройке библиотеки Boris, а также приведен пример использования ее в другом приложении. - Apache2 против Nginx и PHP приложения — Автор статьи провел несколько тестов Apache2 и Nginx при обслуживании PHP-приложений. Для тестирования использовались 3 типа приложений: большое приложение на Zend Framework 1, небольшой PHP скрипт и WordPress. Результат вполне ожидаемый: статику Nginx отдает быстро, но когда дело доходит до генерации страниц с помощью PHP — разница не существенна.
- О пустых возвращаемых значениях — Автор поста декларирует правило: «Если функция возвращает коллекцию, то пустое значение так же должно быть коллекцией». Или обобщенно: «Тип возвращаемых значений должен оставаться неизменным». А в посте аргументирует в пользу этого правила.
- Круглый стол: использование исключений — Статья представлена в виде обсуждения темы несколькими разработчиками. Каждый приводит свои аргументы и примеры. Интересный формат и много интересных мыслей.
- PHP не мертв — В посте автор пишет о том, как изменилась ситуация в мире PHP c 2007 года. На тот момент самой популярной версией была четвертая, а PHP5 был установлен менее чем на 20% серверов и это несмотря на то, что ей уже было не менее 2х лет! Интересно было бы посмотреть на график принятия последних версий, чтобы понимать насколько улучшилась ситуация, но остальная часть поста содержит лишь статистику по использованию PHP в общем.
- Отправляем email из PHP с помощью Amazon SES — Небольшой туториал по использованию Amazon SES из PHP.
- PHP 5.5 новый API хэширования паролей — Об этом API уже писали не раз, и, тем не менее, еще одна заметка с обзором добавленных функций. И напомню, если использовать PHP 5.5 вы пока не планируете, то можно воспользоваться библиотекой совместимости password_compat.
- Поддержка мультиязычности в CodeIgniter — Небольшой туториал по интернационализации приложения, написанного на CodeIgniter.
- Покрытие кода и Behat — Говорить о покрытии кода в случае с Behat не совсем уместно, так как тестируются не какие-то конкретные участки кода, а поведение приложения. Тем не менее, информация о покрытии может быть полезна, например, перед рефакторингом легаси-кода. В посте показано, как организовать получение такой информации с помощью Behat и PHP_CodeCoverage.
- ООП в PHP — Огромный и очень подробный туториал по базовым концепциям объектно-ориентированного программирования на PHP. Будет очень полезен новичкам.
- Безопасность веб-приложений и современные PHP-фреймворки — В посте автор делает обзор изменений, касающихся безопасности за последние 2 года, а именно с выходом ZF2 и Symfony2.
- Zend Framework 2 Forms — простые и доступные везде — Подробный туториал по использованию форм из ZF2.
- Веб-консоль на PHP — Маленький инструмент, который часто может быть полезен.
- Как лажать профессионально — Полезная заметка о том, как себя следует вести, если вы допустили ошибку: признайте, извинитесь и исправьте.
- Создаем приложение голосования на Phalcon за 15 минут — Хороший скринкаст для тех, кто хочет попробовать Phalcon.
- Использование Sphinx Search — Небольшой вводный туториал по Sphinx и совсем немного об интеграции с Yii.
- Программирование с Энтони — Как стать отличным разработчиком — Немного поменяв формат, один из core-разработчиков PHP Anthony Ferrara продолжает серию своих видеозаписей о программировании. В данном ролике он отвечает на вопрос: что следует делать, чтобы улучшить свои навыки и стать отличным разработчиком. Поскольку всего знать невозможно, то, по его мнению, лучше учиться быстро разбираться в новом, чем запоминать. Получив интересный отзыв на Reddit, Энтони решил ответить в следующем видео. Остальные видео из серии тут
- Каким бы я хотел видеть свой первый проект на Symfony — Хороший хабрапост, в котором автор делится своим опытом использования фреймворка и дает полезные советы тем, кто только начинает с ним работу.
- Judy-массивы в PHP — Отличный хабрапост, о структуре данных, использующей значительно меньше памяти по сравнению со встроенной в PHP реализацией массивов, а значит пригодной для обработки существенно большего объема данных.
- Одно и то же приложение 4 раза: PHP vs Python vs Ruby vs Clojure — Автор поста реализовал простое приложение-шутку на 4 разных языках не с целью определить, какой лучше, а скорее просто показать различия. Энтузиастами были также реализованы версии на Go, JavaScript и Java.
- Хорошая архитектура — не оправдание трате времени — Автор считает, что Symfony2, не смотря на свою отличную архитектуру, не является RAD-фремворком в отличие от Yii, CodeIgniter, CakePHP. То есть для 80% задач использование Symfony2 означает трату времени на реализацию простых вещей. Но к счастью, неплохое решения существует: KnpRadBundle.
Ссылка на предыдущий выпуск.
Автор: pronskiy