Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И конечно же, подборка со ссылками на свежие материалы за последние три недели.
Под катом вас также ждет конкурс с призами от компании JetBrains.
С наступающим Новым годом! Приятного чтения.
Безусловно, главным событием уходящего года стал выпуск новой мажорной версии интерпретатора PHP 7. Среди нововведений такие долгожданные возможности, как исключения вместо фатальных ошибок, тайпхинтинг скаляров со строгим режимом, и, конечно, производительность сравнимая с HHVM.
Был завершен цикл поддержки PHP 5.4, а ветка PHP 5.5 перешла в режим поддержки безопасности.
Самому языку PHP исполнилось 20 лет. 8 июня 1995 года, датский программист Расмус Лердорф анонсировал первый релиз проекта Personal Home Page Tools (PHP Tools), небольшого набора CGI-скриптов, написанных на языке Си. За 20 лет из небольшой поделки PHP вырос в инструмент, который используется более чем на 80% всех веб-сайтов в мире, а также на 5 из топ-10 сайтов.
В уходящем году группой PHP-FIG был принят стандарт PSR-7: HTTP Message Interface. Благодаря этому в PHP мире появился унифицированный интерфейс взаимодействия с HTTP. Стандарт был применен в Guzzle, Symfony и других проектах, а также породил массу новых инструментов в виде middleware.
Кроме того, за год были подготовлены несколько черновиков новых стандартов:
- PSR-9: Security Disclosure
- PSR-10: Security Advisories
- PSR-11: Container Interface
- PSR-12: Extended Coding Style Guide
И вот совсем недавно принят PSR-6: Caching Interface.
Популярный PHP-фреймворк в этом году обозначился релизами 2.7.0 LTS, 2.8 и 3.0. А самому проекту Symfony исполнилось 10 лет.
В 2015 году вышел Laravel 5, a также Laravel 5.1 LTS — первый релиз фреймворка с долгосрочной поддержкой. Кроме того, разработчиком был представлен микрофреймворк Lumen.
Уходящий год можно по праву назвать годом релизов — свет увидели мажорные версии многих ветеранов PHP-мира:
В следующем году нас ждут другие новости, а пока, последняя подборка ссылок в этом году.
Новости и релизы
- Laravel 5.2 — Свежий релиз популярного фреймворка. Краткий обзор нововведений .
- PHP 7.0.1 — Доступен первый корректирующий выпуск для ветки 7. В обновлении исправлено 35 ошибок.
- Slim Framework v3.0.0 — Состоялся мажорный релиз популярного микрофреймворка. Под капотом обновленная реализация DI, поддержка PSR-7, упрощенный код и многое другое.
- WordPress 4.4 “Clifford” — Свежий релиз популярной CMS примечателен тем, что включает в себя инфраструктуру REST API. Это первый этап интеграции плагина WP REST API в ядро. В следующем релизе планируется реализовать ендпоинты.
- PSR-6 Caching Interface — После 4 лет работы и обсуждения принят стандарт для систем кэширования.
PHP
- RFC: Number Format Separator — Предлагается добавить возможность использования символа
_
в качестве разделителя в числах, для повышения читаемости:$i = 197_823_459; // 197823459
- RFC: Precise Session Management — Обновленное предложение об улучшении механизма сессий.
- RFC: Class Friendship — Предлагается реализовать концепцию дружественных классов. Дружественный класс имеет доступ к private и protected полям класса, в котором он объявлен дружественным. Пример использования.
- PHP 5 Support Timeline — Предлагается продлить активную поддержку PHP 5.6 до года или двух вместо предусмотренных текущим планом 8 месяцев.
Инструменты
- Alroniks/dtms — Расширение класса DateTime для работы с микросекундами в PHP. Прислал iklimchuk.
- bocharsky-bw/FileNamingResolver — Легковесная библиотека, позволяющая именовать файлы и директории по определенным правилам, используя для этого различные стратегии. Прислал bocharsky_bw.
- rybakit/msgpack.php — Cериализация в формате MessagePack на чистом PHP. Прислал rybakit.
- ErikvdVen/php-gif — Создание динамических GIF файлов по запросу. Прислал tkf.
- Level-2/Transphporm — Нестандартный подход для реализации шаблонизатора. Сам шаблон представлен в виде XHTML-файла, а подстановка данных происходит с помощью CSS-подобных селекторов. Пост с описанием и примерами.
- qandidate-labs/qandidate-toggle — Библиотека реализует концепцию отключаемых фич. Подробнее о плюсах и минусах идеи писал Мартин Фаулер. Туториал по использованию.
- Roave/BetterReflection — Рефлексия без загрузки классов.
- goaop/parser-reflection — И еще одна реализация рефлексии без необходимости загрузки классов.
- Sean-Der/Therac — Отладчик для PHP с возможностью парной работы и синхронизации между несколькими браузерами.
- cweiske/php-sqllint — Проверка синтаксиса для SQL в виде инструмента командной строки.
- ajbdev/cronlingo — Представляет временные периоды, описанные естественным языком в виде корректных значений для crontab.
- chrisgillis/slackwolf — Бот мафии для Slack на PHP.
- blackfireio/player — Краулер. Может быть также применен в тестировании.
- webmozart/expression — Реализация паттерна Спецификация.
- jasonhinkle/php-gpg — Реализация GPG/PGP на чистом PHP.
- wnmp-dev 1.1.0 — nginx + MariaDB + PHP под Windows.
- flint/Lurker — Трекер изменений ресурсов. Альтернативное решение: jasonlewis/resource-watcher.
- servo-php/fluidxml — Библиотека для манипуляций над XML с текучим интерфейсом.
- jenssegers/imagehash — Перцептивный хеш для изображений — позволяет определить степень схожести картинок.
- dkvashninbay/magento2plugin — PhpStorm плагин для разработки под Magento 2. Прислал dkvashninbay.
Материалы для обучения
-
PHP 7
- Бенчмарк популярных проектов: PHP 7 против HHVM — Более детальный вариант, сделанный в ответ на другой бенчмарк.
- Случайность в PHP7 – Повезет ли мне?
- Быстрый старт с PHP 7
-
Symfony
- Туториал по аутентификации в Symfony 3 с помощью компонента Guard
- Улучшенная сериализация с Symfony
- Внедряем Bootstrap 3 Datepicker в SonataAdminBundle — Как подключить красивый и удобный datepicker в админку Symfony.
- Symfony2 Voters и Doctrine Filters на страже безопасности
-
Yii
- Сервис на Yii2: Перенос переводов и консольных команд в модули
- Тестирование в Yii 2.0 с помощью Codeception — Фикстуры данных
-
Laravel
- phanan/koel — Персональный аудио-стриминг сервис на Laravel.
- Туториал по использованию очередей задач на основе beastalkd и Pheanstalk
- Принципы, которые формируют успешные фреймворки — Пост создателя Yii Framework — Qiang Xue.
- Запуск PHP кластера на AWS
- New Composer Patterns — Небольшой обзор нововведений в Composer за последний год.
- Туториал по созданию PHP-окружения с помощью Docker
- Как безопасно создавать, распространять и обновлять PHAR
- Конфигурационные значения — это тоже зависимости — И для них так же используйте принцип DI.
- Компоненты React.js и рендеринг на стороне сервера в PHP, 2
- Разбираемся как PHP работает внутри — Несколько интересных моментов в использовании ссылок,
foreach
,__invoke()
и другое. - События жизненного цикла в Doctrine 2
- Восемь причин использовать PHPDoc
- Дайджест интересных материалов из мира Drupal #16
- Становимся профессиональными PHP разработчиками. Часть 1: Недостающее звено, Часть 2: Важность других людей, Часть 3: Работа в команде
- Как запустить собственный торрент-поисковик на базе RuTracker?
- Использование comet сервера для реализации простого чата
Аудио и видеоматериалы
- Подборка видеозаписей на тему безопасности в PHP
- Bulgaria PHP Conference 2015 — Видеозаписи всех докладов.
- PHP North West Conference 2015 — Видеозаписи всех докладов.
Занимательное
- Статистика используемых версий PHP
- PHP код в 2006 и 2016
- Клон Heroku в 100 строк кода на PHP.
- 10 Years of Symfony! — История фреймворка в праздничном видеоролике.
- Обои PHP 7 от Heroku —
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Быстрый поиск по всем дайджестам
← Предыдущий выпуск
Новогодний конкурс
В этом году нашему любимому языку исполнилось 20 лет. А что будет с PHP в будущем? Каким будет PHP если не через 20, то хотя бы через 5 лет?
Оставляйте ваши прогнозы в комментариях к этому посту. А авторы трех лучших, набравших наибольшее количество плюсов, получат отличные новогодние подарки. Компания JetBrains наградит всех трёх победителей годовыми подписками на PhpStorm. Результаты будут объявлены 4 января в 19:00 по московскому времени.
Давайте пофантазируем, каким будет мир PHP в 2020?
С наступающим вас Новым годом!
Автор: Zfort Group