Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы. Также под катом вас ждет специальная подборка по PHP 7.
Приятного чтения!
PHP 7
- PHP 7.0.0 — Долгожданный мажорный релиз PHP. Почти два года работы, 10033 комита, 48 принятых RFC, 189 контрибьюторов. Огромное спасибо Дмитрию Стогову, Никите Попову, Xinchen Hui, Anatol Belski и всем, кто помог PHP 7 появиться на свет. Поздравляю и всех нас с этим замечательным событием!
Среди наиболее заметных изменений:
- Существенное увеличение производительности
- Тайпхинтинг скаляров
- Тайпхинтинг возвращаемых значений
- Анонимные классы
- Оператор <=>
- Оператор ??
- Групповой use для неймспейсов
- Функции криптографически стойкого генератора псевдослучайных чисел
- Единый синтаксис переменных
- Исключения вместо фатальных ошибок
- Видео:
- Zeev Suraski: The PHP 7 Story
- Rasmus Lerdorf: Speeding up the Web with PHP 7
- Pierre Joye: PHP 7, what's coming
- Anthony Ferrara: PHP7 and Beyond, The Future of PHP
- Julien Pauli: En route pour PHP7
- Erika Heidi: Getting Ready for PHP 7
- PHP 7 Up and Running
- Обзоры новых возможностей:
- Официальное руководство по миграции с PHP 5.6.x на PHP 7.0.x
- PHP7-Reference — Список всех изменений в PHP 7 с кратким описанием.
- Обзор новых возможностей + видео
- Обзор PHP 7: Scalar Typehints, Return Types, Spaceships, Null Coalescing Operator
- 5 менее заметных возможностей PHP 7
- Обзор PHP 7 от Sitepoint
- PHP 7 – What changed internally? — Слайды Никиты Попова о внутренностях PHP 7.
- Бенчмарки:
- PHP 7.0 benchmarks
- PHP 7 vs Python 3 — Бенчмарки PHP 7 в сравнении с другими языками.
- Обсуждение на Хабре
- История PHP: инфографика
- Is PHP 7 Out Yet?
- PHP 7 Is Here!
Новости и релизы
- Symfony 2.8.0 — Массивное обновление фреймворка: новые компоненты LDAP, PropertyInfo, улучшения форм, обновленная отладочная панель, трейт MicroKernelTrait для создания микроприложений. Полный обзор изменений в анонсе beta1.
- Symfony 3.0.0 — Релиз не содержит новых возможностей по сравнению 2.8. По сути это 2.8 без слоев обратной совместимости. Минимальная поддерживаемая версия PHP 5.5.9. Доступно руководство по переходу c 2.x на 3.0.
- PHP 5.6.16 — Список изменений.
- Zend Framework 3 — обновление и дорожная карта
- Админ интерфейс для WordPress на JS — Компания Automattic, которая стоит за разработкой WordPress, анонсировала Calypso — админ-интерфейс для wordpress.com, реализованный на современных JavaScript-инструментах. Некоторые источники ошибочно поспешили сообщить, что WordPress переписан на Node.js.
Инструменты
- phpfunct/funct — Подборка полезных функций в одной библиотеке. Пост в поддержку.
- phergie/phergie-irc-bot-react — IRC-бот на основе ReactPHP.
- K-Phoen/rulerz — PHP-рализация паттерна Спецификация. Туториал с примером использования.
- etsy/phan — Синтаксический анализатор для PHP. Был написан Расмусом Лердорфом и доработан Andrew Morrison.
- do-aki/gophp_sample — Пример создания PHP-расширения на Go.
- gnugat/redaktilo — Библиотека позволяет работать со строками текста через объект-редактор.
- memio/memio — Кодогенератор.
- nikic/PHP-Parser 2.0.0 — Парсер PHP на PHP от Никиты Попова обновлен и поддерживает PHP 7.
- Bacon/BaconPdf — Библиотека для работы с PDF на PHP. Поддерживает чтение и запись.
- imbo/imbo — RESTful cервер для управления изображениями.
- flaupretre/pecl-pcs — Позволяет использовать C и PHP код в PHP-расширениях.
- php-school/cli-menu — Интерактивные меню для командной строки.
Материалы для обучения
Yii
- Реализация аутентификации, авторизации и RBAC в Yii2
- Анонсированы даты окончания поддержки Yii 1.1 — Yii 1.1 будет получать критические исправления и исправления совместимости с PHP 7 до конца 2016 года. После этого, как минимум до 2018 года, будут исправлять исключительно проблемы с безопасностью. Прислал SamDark.
- В команде Yii пополнение — В роли core developer присоединился Дмитрий Науменко SilverFire из Киева. Прислал SamDark.
- Код нового yiiframework.com выложен на GitHub — Прислал SamDark.
- yii2tech — Набор расширений для Yii 2 от одного из core developer-ов. Прислал SamDark.
- Бенчмарк Yii2 на PHP 7
- Разработка на Yii2: Использования Advanced Application Template
- Разработка на Yii2: Аутентификация Google
Laravel / Lumen
Drupal
- Дайджест интересных материалов из мира Drupal #15
- Drupal 8. Обучающие материалы и не только
- Drupal 8: под капотом
- Упадок Drupal или как исправить Drupal 8
- realpath() cache size tuner — Небольшой, но полезный скрипт для тюнинга важной для производительности настройки PHP. Прислал SamDark.
- О пакетах, версиях и зависимостях
- Заполняем формы PDF с помощью PDFtk и PHP
- Новые драйверы MongoDB для PHP и HHVM
- Можно ли заниматься разработкой на iPad?
- Как в Badoo генерируются изображения для «шаринга» в соцсетях
- Жизнь PHP-разработчика
- Введение в Slim 3
- 24 Days of Blackfire — Серия туториалов по использованию профайлера Blackfire. В тему пост об ускорении компонента PropertyAccess из Symfony, а также об ускорении Behat тестов в Sylius.
- Подходит ли теперь PHP для машинного обучения?
- MaximAbramchuck/awesome-interviews — Подборка подборок вопросов для собеседований, в том числе по PHP.
- Полезные сниппеты для Nginx конфигов
- PHP ORM Benchmark — Сравнение производительности Doctrine ORM, Eloquent ORM, FuelPHP Orm, Phalcon ORM, Yii AR 1.1, Yii AR 2.0.
Аудио и видеоматериалы
- Конфиг это не код. Как использовать переменные окружения в PHP
- PHP Roundtable: 035: Immutable PHP — Беседа о неизменяемых объектах и функциональном программировании в PHP.
- Что нового в PhpStorm 10
- Нейронные сети на PHP
Занимательное
- HaPHPy Birthday — The PHP Movie — Поздравительный видеоролик к 20-летию PHP.
- Jordi Boggiano: Статистика использования версий PHP на основе данных packagist.org
- Stichoza/phemoji — Пишите PHP-код с помощью emoji.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения жду на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Прислать ссылку
Быстрый поиск по всем дайджестам
< Предыдущий выпуск
Комментарии (20)
youROCK
07.12.2015 08:15+1Интересно, что даже на вычислительных бенчмарках (для которых PHP7 не оптимизировался) разница между C и PHP уже составляет 30-40 раз по сравнению с 60-70 и даже 100 ранее
serafims
07.12.2015 08:36что-то есть в phemoji, вполне вероятно появление IDE с расширенными графическими подстановками вместо частых операторов…
dmitriy_novikov
07.12.2015 11:50Пока ищешь нужную иконку, проще и быстрее написать оператор традиционным способом.
Да и разбирать такой код… Сомнительное удовольствие)
wir_wolf
07.12.2015 09:29что то я не понял эти графики. на первой ссылке которая ведёт в гугл доки на первой вкладке php7 по таймингу выше чем php5.6. вроде как заявлено что наоборот прирост производительности.
Assada
07.12.2015 10:55По той ссылке вообще мало что понятно. Почему-то у 5.6 одинаковый результат на всех тестах.
andrewiWD
07.12.2015 12:41+2На графиках не тайминг, а коефицент увеличения производительности по сравнению с php 5.6. Отсюда его коефицент всегда равен еденице.
zelenin
memio выглядит очень круто
alekciy
«В чем сила, брат?» (с)
С ходу увидел только одну возможную область применения. Генератор кода динамических моделей которые в проекте чисто архитектурно «статические» (т.е. по сути структура модили явно описывается в коде, а не содержится в каком либо внешнем, относительно кода, хранилище).
GrizliK1988
Можно так же использовать кодогенерацию, когда в проекте используется некий веб сервис с WSDL описанием. В таком случае можно на основе описания полностью генерировать клиент для общения с api.
alekciy
Хм… но как я понимаю, это же генератор моделей. Т.е. все же не клиент, а готовую модель под заданное API.
Интересно применение, хотя в контексте SOAP модуля очень специфичный кейс.
Big_Shark
Propel генерирует модели на основе схемы, Doctrine генерирует entity также на основе схемы, в Yii есть Gii который генерирует CRUD, так что генерация кода хоть и не часто, но используется.
Fesor
Ммм, а я вижу просто кодо генерацию. Например на основе моделей (сущностей) генерить CRUD или DTO или еще чего. По сути библиотека имеет профит в том что нынче все что связано с кодогенерацией использует свои кастыли на твиге или других шаблонизаторах.
Big_Shark
Она не очень крутая, ее API слишком переусложнен, нет поддержки пхп7, нет поддержки PSR2, я не так давно проводил небольшое сравнении кодогенераторов, если есть интерес, результат можно посмотреть тут
zelenin
я не видел ранее аналогов, поэтому мне показалось интересным.
Если есть аналоги с более приятным апи и расширенными возможностями — отлично.
Исследования посмотрю, спасибо.
Big_Shark
Самое приятное API у gossi/php-code-generator, но там слегка странный автор, так как он любит использовать табы, а не пробелы, и отменил мой PR который форматировал код по стандартам PSR2, ну и даже без этого там есть путаница с методами, допустим метод addMethod, почему то называется setMethod.
zelenin
это плохо. У человека нет понимания что он трудится на благо сообщества, в то же время ставя этому сообществу палки в колеса.
alekciy
Если табы используются для отступов, а не для выравнивания, то ни чего странного в этом нет. По мне PSR2 в этом плане должен быть изменен.
Кроме того засылая PR в проект и нарушая принятый там стиль кода вы тем самым становитесь не менее странным. Если не более, т.к. стиль кодирования это требование единообразия проекта, а PSR2 не более, чем набор правил которым можно следовать, а можно не следовать не говоря уже о том, что подобные требования обычно имеет свойство изменяться со временем.
Мне лично не удобны отступы пробелами, в своих проектах использую только табы, но оформляя PR всегда делаю как принято именно в этом проекте. Если это PSR2, то по PSR2, если какой-то бред, то даже какой-то бред. Единообразие проекта очень важный показатель здоровья проекта, т.к. это упрощает супорт, на рефакторинге там, проекта.
delegate
В настройках редактора ставишь табуляцию пробелами и будет всем счастье.
zelenin
не только единобразие проекта, но и единообразие всей инфраструктуры. В данном случае это одиночная либа, а не часть проекта.
Табы или пробелы — вкусовщина, которая могла бы быть разрешена например подбрасыванием монетки. Монетку подбросили — psr-2.
Я использую PHPStorm: жму таб — ставятся 4 пробела. Удобство — обязанность редактора.
Следует или не следует автор psr-2, можно определить визуально (не о табах речь, а в целом). Все лучшие библиотеки сообщества (не-legacy) следуют psr, т.к. авторы — лучшие специалисты в области — понимают, что нельзя развивать сообщество без стандартизации инфраструктуры.