Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- PHP 7.0.0 RC 7 — Выход PHP 7 ожидался 12 ноября, однако из-за нестабильности RC 6 было принято решение выпустить дополнительный релиз-кандидат. Финальный релиз следует ожидать через неделю, конечно, если не будет обнаружено существенных проблем.
- Drupal 8.0.0 — После четырёх c половиной лет разработки и благодаря усилиям 3 тысяч контрибьюторов свет увидела Drupal 8. Видеоанонс релиза . Система полностью переработана, использует компоненты Symfony и совместима с PHP 7. Тем не менее в тестах производительности новая версия показывает результаты хуже Drupal 7 — критический взгляд . Также было объявлено о прекращении поддержки Drupal 6 24 февраля 2016.
- Symfony 3.0.0-BETA1
- Magento 2
- Четверть крупнейших сайтов работают под управлением WordPress — По данным рейтинга W3Techs доля WordPress среди десяти миллионов популярных сайтов достигла 25%.
PHP
- RFC: Default Value in List Assignment Syntax — Предлагается реализовать значения по умолчанию для конструкции
list()
:list($a, $b='default') = [1]; // a = 1, b = 'default'
- RFC: Void Return Type — Голосование по предложению о
void
функциях завершилось с положительным результатом. Улучшение ожидается в PHP 7.1. - RFC: Resource typehint — Предлагается добавить поддержку типа
resource
для тайпхинтинга параметров и возвращаемых значений. - RFC: ext/curl HTTP/2 Server Push Support — Как ясно из названия, предлагается реализовать поддержку HTTP/2 Server Push в curl.
Инструменты
- oscarotero/Embed — Библиотека для удобного получения метаинформации о страницах (oembed, opengraph, twitter-cards, изображения и прочее). Прислал tkf.
- akalongman/php-ip-tools — Универсальный инструмент для работы с IPv4/IPv6. Прислал l0ngman.
- bitExpert/disco — DI контейнер совместимый со стандартом container-Interop.
- php-http/httplug — Набор абстрактных интерфейсов для унификации HTTP-клиентов на PHP. Пост с примером использования.
- dunglas/phpdoc-to-typehint — Инструмент добавляет соответствующие тайпхинты для PHP 7 на основе docblock комментариев. Пост в поддержку.
- Payum/Payum — Отличная библиотека, упрощающая интеграцию с различными сервисами оплат: Paypal, Payex, Authorize.net, Be2Bill и другими. В тему сравнение Payum и Omnipay.
- Spomky-Labs/otphp — Реализация одноразовых паролей на основе RFC 4226 (HOTP) и RFC 6238 (TOTP).
- eloquent/phony — Моки, стабы.
- Ocramius/PSR7Session — Реализация сессий в виде PSR-7 middleware.
- bitExpert/adroit — PSR-7 middleware реализующее паттерн Action-Domain-Responder.
- etsy/applepay-php — PHP-расширение, которое позволяет проверить и расшифровать токены оплаты Apple Pay. Пост с описанием.
- vinkla/climb — Утилита проверяет есть ли более свежие версии зависимостей, чем прописанные в вашем composer.json.
- briannesbitt/carbon — Расширенная обертка над DateTime. Пост с примерами использования.
- reactphp/espresso — Silex + React/Http
Материалы для обучения
PHP 7
- Обновляемся до PHP 7 — Бесплатная книга от O'Reilly и Davey Shafik.
- Мой опыт миграции на PHP 7
Symfony
- Новое в Symfony 2.8: Улучшенная консоль
- Новое в Symfony 2.8: Symfony как микрофреймворк
- Управление пользователями в Symfony2 с помощью FOSUserBundle
Yii
Laravel
Безопасность
- Предотвращаем атаки по времени при сравнении строк с помощью стратегии двойного хеширования (HMAC)
- Руководство по выбору криптографической библиотеки для PHP-проекта
- Риски и проблемы хеширования паролей
- mattiasgeniar/php-exploit-scripts — Небольшая подборка зловредных скриптов, найденных на взломанных серверах.
- 103 из 1000 самых популярных WordPress плагинов содержат уязвимости — Статический анализ кода тысячи популярных плагинов.
- Аккуратно с потоками — Отличный пост о многопоточности и работе с pthreads.
- Рациональный подход к стилю кодирования
- О командах Composer —
composer test
и другие примеры. - Symfony, Xdebug и проблема с максимальным уровнем вложенности
- ReactPHP: HTTP Client — Примеры использования неблокирующего HTTP-клиента.
- Введение в Zend Expressive — Туториал по микрофреймворку от Zend, позволяющему быстро реализовывать проекты на основе PSR-7 middleware.
- Doctrine 2 ORM — лучшие практики — Слайды от Marco Pivetta (Ocramius).
- Создаем тестовые данные с помощью фабрик фикстур
- PHP vs Ruby – Давайте жить дружно
- Asynchronous PHP — Подборка ссылок на тему асинхронного PHP.
- PHP Study Guide — Краткое руководство для подготовки к сертификации по PHP.
- Защищённые классы
- Описание констант PDO::FETCH_*. — Разбор назначения констант режимов получения данных в PDO с примерами. Прислал FanatPHP.
- Symfony2 двухфакторная авторизация с помощью сертификата
- Заставляем совместно работать open_basedir + realpath_cache
- Заставляем сервис php-fpm 5.6, запущенный через systemd, читать глобальные переменные окружения
- Вперед, на поиски палиндромов
- Использование больших страниц в памяти в PHP 7
Аудио и видеоматериалы
- Пятиминутка PHP Выпуск №16 — виртуальные пакеты Composer
- PHP Roundtable: 034: Отладка — это больше чем var_dump()
- Видео докладов с SymfonyCampUa 2015 — Прислал Игорь Оначенко.
- Rasmus Lerdorf — Deploying PHP 7
- Rasmus Lerdorf — Speeding up the Web with PHP 7
- PHP 7 Up and Running — Обзор новых возможностей.
- Видеозаписи докладов с конференции php[world] 2015
Занимательное
- POPSuL/brainfuck — Интерпретатор brainfuck на PHP. Прислал popsul.
Спасибо за внимание!
В прошлом выпуске было голосование по поводу включения в Дайджест расширений для популярных фреймворков. 86% (337) отнеслись к идее положительно, поэтому уже в следующем выпуске будет подборка инструментов для фреймворков. Отдельное спасибо всем, кто проголосовал!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Прислать ссылку
Быстрый поиск по всем дайджестам
< Предыдущий выпуск
Комментарии (9)
maghamed
23.11.2015 19:31+1Если кого-то интересуют архитектурные темы связанные с Magento 2
- Service Layer в Magento 2. Что это, зачем. Как использовать
- Механизм Плагинизации
- Как мы (команда Magento) видит правильную работу интеграторов с Magento 2
- Кодогенерация в Magento 2
Может быть какие-то другие темы будут также интересны.
Напишите — буду рад осветить подробно в отдельном постеshandy
24.11.2015 11:59+1Думаю будет интересно все, в правильном порядке (по моему мнению это 3, 1, 2, 4).
Еще интересна тема с сотыми версиями компонентов и вообще про версионность (пакетов, модулей), будет ли версии модуля менять версию мадженты и тд. Что из себя представляет repo.magento.com, можно ли поднять зеркало, как распространять свои модули.maghamed
24.11.2015 13:58По поводу версионирования, здесь вы можете найти подробную статью о версионировании в Magento 2
Если коротко, для разработки мы используем семантическое версионирование
Имеем МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ у каждого модуля:
МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
МИНОРНУЮ версию, когда мы добавляем новый функционал, не нарушая обратной совместимости.
ПАТЧ-версию, когда мы делаем обратно совместимые исправления.
Теперь относительно версии модуля и продуктовой версии:
Версия продукта и версии модулей независимы. Например, CE версия Magento была выпущена как 2.0, следующая будет 2.1, потому — 2.2 и т.д., но версионирование модулей началось с 100.0й версии. Такое разделение было сделано специально, чтобы упростить поддержку, и избежать ошибок и недопониманий в общении, когда мерчанты/программисты ссылаются на версию продукта вместо версии модуля и наоборот.
Ну и со временем версия продукта и версии модулей будут расходиться все больше.
Внизу вы можете видеть наглядную диаграмму развития продуктовой версии, а также версий модулей:
maghamed
24.11.2015 14:21По поводу repo.magento.com. Это репозиторий где хранятся Magento 2 компоненты, а также компоненты (Composer пакеты), разработанные разработчиками из комьюнити.
devdocs.magento.com/guides/v2.0/install-gde/prereq/connect-auth.html
Свои модули, как и раньше, предполагается распространять через Magento Connect
Kudja
25.11.2015 05:24+1 интересуют!
Пользуясь случаем по поводу magento 2, установка через repo.magento.com отваливается с ошибкой
[ErrorException]
file_get_contents(app/etc/NonComposerComponentRegistration.php): failed to open stream: No such file or directory
composer обновлен.
Разбираться пока времени не было, хотел поставить и пощупать… С чем связанно не подскажите?
to0n1
Спасибо за подборку! Думаю что espresso не к месту немного, потому как проект мертв еще с 2014 года…
pronskiy
Согласен, что жизнь в нем не бьет ключом, но проект интересный и в дайджестах не упоминался, поэтому оставлю