Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И, конечно же, подборка с ссылками на свежие материалы.
Приятного чтения!
Итоги 2012
PHP 5.4 |
Безусловно, самой важной новостью в мире PHP за 2012 год стал долгожданный выход новой мажорной версии. С момента выхода версии 5.3 прошло почти 3 года, тем не менее, новая версия не стала революционной, и большинство изменений в PHP 5.4.x никак не повлияют на существующий код. Есть несколько несовместимостей и ряд новых возможностей, среди которых трейты, встроенный веб-сервер, новый синтаксис массивов и другие. Также особенно порадовала разработчиков значительно возросшая производительность.
Кроме того, не может не радовать новость о том, что в 2013 выйдет PHP 5.5, а альфа версия уже была выпущена ранее в этом году (чего ждать от будущего релиза).
Zend Framework 2 |
Еще один долгожданный релиз уходящего года. Zend Framework 2 — это совершенно новый фреймворк, несовместимый с Zend Framework 1. Еще бы, ведь с релиза ZF 1.0.0 прошло больше 5 лет! И отказаться от груза обратной совместимости было, несомненно, правильным решением.
Начать работу с ZF2 рекомендуется с прочтения соответствующей wiki страницы. Также обязательно следует ознакомиться с паттернами проектирования, применяемыми в ZF2. Имеется хорошая подборка материалов по ZF2 тут и тут. Для желающих принять участие в разработке ZF2 написан отличный подробный пост.
Yii Framework |
Главным событием уходящего года в сообществе Yii могло стать объявление даты релиза Yii2, или, например, публичная бета, но ни первого, ни второго так и не произошло. Тем не менее, число пользователей фреймворка растет невероятно быстро, а сообществом и core-командой за год проделана огромная работа.
Выпущено 3 больших обновления, код проекта перенесен на GitHub. В Киеве прошла первая конференция, посвященная Yii, а также были опубликованы новые книги по Yii.
И, конечно же, хорошая новость о том, что период поддержки Yii 1.1 продлен, и текущая версия будет поддерживаться не до конца этого года, как планировалось, а до конца 2015.
Приняты стандарты PSR-1 и PSR-2 |
Давным давно (в 2009 году) в одной далекой-далекой галактике (в Чикаго) группа PHP разработчиков собравшись на конференции php|tek начала обсуждение о том, что предпринять, чтоб сделать работу с их проектами лучше, а для пользователей сделать выбор решения для своих задач проще. Так и образовалась PHP Framework Interoperability Group, известная как PHP-FIG. И первым результатом работы группы стала публикация стандарта PSR-0, который регламентирует именование классов, файлов, пространств имен, структуру директорий.
И вот после долгого обсуждения в начале 2012 года были приняты сразу два новых стандарта:
PSR-1 и PSR-2, оба относящиеся к форматированию кода.
На подходе новый стандарт PSR-3 об интерфейсах логгирования. Также любой может участвовать в обсуждении и предложить свои идеи тут.
Phalcon |
Появившись в начале года, этот фреймворк сразу привлек внимание тем, что разработан в виде расширения для PHP. К концу 2012 Phalcon дорос уже до версии 0.8. Кроме высочайшей производительности даже по сравнению с микро-фреймворками, Phalcon подкупает отличной документацией, наличием подробных туториалов и даже примера целого приложения.
Composer |
Этот год по праву можно назвать годом Composer! И хотя появился этот замечательный инструмент управления зависимостями на PHP в 2011, в текущем году он пережил настоящий бум. Число постов, статей и материалов просто зашкаливает: 1, 2, 3, 4. Безусловно, рост всеобщей распространенности этого инструмента стал огромным шагом для всего PHP-сообщества.
PHP
- Множественное наследование на PHP с помощью трейтов — В версии PHP 5.4 был введен новый механизм повторного использования кода, именуемый трейтом. И хотя PHP не допускает реализации множественного наследования классов, трейты позволяют имитировать его. Что и демонстрирует автор в своем посте на простых примерах.
- Совместная многозадачность на PHP с использованием сопрограмм — Отличная статья, в которой автор рассказывает о новых возможностях, которые будут доступны в PHP 5.5, а именно о сопрограммах и генераторах. И если о генераторах уже было сказано много, о сопрограммах информации крайне мало. Автор решает эту проблему, рассказывая как о самой концепции сопрограмм, так и об их реализации в PHP и, что важно, приводит пример реального использования. Очень вовремя подоспел перевод этой статьи на Xабре.
- Русские в PHP Core Team: “Язык растет подобно кораллу” — Пост-интервью с русскими разработчиками из команды PHP. На вопросы отвечают Андрей Змиевский (Andrei Zmievski), Стас Малышев (Stas Malyshev) и Илья Альшанетский (Ilia Alshanetsky). За интервью отдельное спасибо Pleshner
Материалы для обучения
- Как устроены переменные в PHP — Замечательный хабрапост, в котором подробно раскрыты детали внутреннего устройства переменных в PHP.
- Как устроены массивы в PHP — Еще один отличный пост от автора предыдущей статьи. На этот раз о массивах.
- Создаем REST приложения, используя микрофреймворк Slim — Отличный пошаговый туториал на IBM developerWorks по созданию приложения, реализующего REST API на популярном микрофреймворке Slim.
- 7 способов испортить BCrypt — Если вы разрабатываете систему пользователей в проекте, то вы наверняка слышали, что использование bcrypt для хэширования паролей повышает безопасность. Интернет полон статей о правильном использовании bcrypt в PHP. Автор же в своей статье сфокусировался на типичных ошибках, допускаемых при использовании bcrypt и способных свести на нет все усилия по повышению уровня безопасности. Среди них: использование неслучайной соли, использование неправильного источника для случайной соли и другие.
- О библиотеках и зависимостях — Существует мнение что, меньшее число зависимостей у интрумента означает меньшую связанность. Автор в своем посте аргументирует в пользу того, что само по себе наличие зависимостей совсем не плохо, а их наличие уменьшает связанность и повышает связность.
- Будущее ZF2 — Подкаст, в котором на вопросы о будущем фреймворка отвечают ведущие эксперты и разработчики Zend Framework: Evan Coury, Ralph chindler, Matthew O'Phinney, Rob Allen. Раскрыты следующие темы: планы на ветку 2.1; PHP 5.4 и 5.5 с ZF2: цели на 2013 год: ZF2 в сравнении с другими фреймворками.
- Микрооптимизация на PHP — Пост, в котором автор развенчивает некоторые мифы о микрооптимизации. Является частью серии постов о том, как PHP разработчику стать лучше, и написан в ответ на вот этот пост.
- Временные зоны, правильный способ — Хороший туториал об использовании временных зон с примерами на PHP и MySQL. Для тех, кто сталкивается с подобной задачей впервые, данная статья будет хорошей отправной точкой.
- Программирование с Anthony — логика, адаптивный веб-дизайн — Продолжение серии видео роликов от известного PHP-деятеля Anthony Ferarra. На этот раз о булевой логике и адаптивном веб-дизайне. Остальные видео тут.
- Как мы читаем код? — Пост хоть и не имеет непосредственного отношения к PHP, но будет интересен всем, так как в нем идет речь о необычном психологическом эксперименте, в котором разработчику предлагалось взглянуть на небольшой исходник и понять, что он делает, при этом отслеживается движение глаз разработчика по коду. Видео прилагается.
- Итак, вы хотите тестировать — Chris Hartjes, более известный как Grumpy Programmer, автор книги «Руководство по разработке тестируемых приложений на PHP», написал статью, в которой дает ответы на самые часто задаваемые вопросы о том, как начать тестировать свои приложения и разрабатывать более качественный код. Он дает ряд рекомендаций и советов: как распознать нетестируемый код, почему следует перестать пользоваться инструментами без тестов и другие.
- Что не так с PHP расширением Semaphore — В своем посте автор пишет об обнаруженных проблемах в расширении Semaphore.
- Эффективный рефакторинг — В посте автор собрал несколько рекомендаций по рефакторингу PHP кода. В целом, советы достаточно банальны, но ознакомиться не будет лишним.
- Введение в Bullet: функциональный микрофреймворк на PHP — Bullet — это новый PHP микрофреймворк, в котором реализован функциональный подход к роутингу, что по мнению автора, позволяет избежать значительного дублирования кода. В посте изложены основные принципы и преимущества фреймворка, приведены небольшие примеры. Функциональный подход для PHP, впрочем, не уникален, советуем ознакомиться, например, с микрофреймворком Bluz.
- Как стать веб-разработчиком — Небезызвестный Ларри Ульман сделал подборку ресурсов на тему, как стать веб-разработчиком, естественно PHP-ориентированным.
- Введение в паттерны проектирования — Скринкаст, в котором автор делает обзор основных паттернов проектирования. Также вдогонку автор написал посты, более подробно раскрывающие суть паттернов Декоратор и Заместитель (Proxy).
- Разделяемые интерфейсы — В рамках создания стандартов PSR выдвигается идея описания некоторых стандартных интерфейсов. Суть идеи проста: использовать отдельные компоненты в различных библиотеках и фреймворках без необходимости написания каких-либо оболочек или прослоек. Автор, один из основателей PHP-FIG, в своем посте пишет о ряде проблем, связанных с таким подходом. В ответ был написан другой пост.
- S-выражения на PHP, 2, 3, 4, 5, 6 — Серия превосходных статей, в которых автор раскрывает суть лексического анализа и описывает создание интерпретатора LISP на PHP.
- PHP non alpha numeric 7 and 6 char code — В прошлом выпуске дайджеста была ссылка на интересный эксперимент, в котором автор пишет PHP скрипт без использования числовых и буквенных символов. У автора появился последователь, который демонстрирует пример кода выводящего «log(12)» и, написанного с использованием только лишь символов: $_=+(); Браво!
Ссылка на предыдущий выпуск.
Материал подготовили dbritan, nesttor и pronskiy
Поздравляем всех с наступающим Новым годом! До встречи в 2013!
Автор: alexzfort