Свежая подборка со ссылками на новости и материалы. В выпуске: новый стандарт PSR-15, WordPress на .NET, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PSR-15 Server Request Handlers — Принят стандарт обработчиков запросов и middleware. Подробнее о стандарте в посте Matthew Weier O'Phinney.
- Сравнение производительности WordPress на Peachpie (.NET) vs PHP 7.2
PHP Internals
- phpinternals.net — Сайт, посвященный внутренностям PHP: статьи, документация.
Инструменты
- spiral/roadrunner — Высокопроизводительный балансировщик нагрузки и менеджер процессов для PHP на Go.
- lostedboy/symfony-form-standalone — Библиотека-обёртка для использования Symfony-форм отдельно от фреймворка, без подтягивания кучи зависимостей. Прислал lostboy.
- voku/portable-utf8 — Библиотека для работы с UTF-8 строками без зависимостей от расширений типа mbstring или iconv.
- zachleigh/artisanize — Синтаксис Artisan из Laravel для команд Symfony Console.
- localheinz/composer-normalize — Приводит в красивый вид composer.json.
- bamarni/composer-bin-plugin — Плагин для Composer, который позволяет изолировать bin-зависимости, чтобы они не конфликтовали с основными зависимостями вашего приложения.
- Numphp — библиотека для работы с числовыми массивами
- PicoPrime/barcodegen — Генератор штрих-кодов.
- psr7-sessions/storageless — Реализация сессий без хранилища. Поддерживаются стандарты PSR-7 и PSR-15.
Материалы для обучения
Symfony
- Неделя Symfony #577 (15-21 января 2018)
- Неделя Symfony #578 (22-28 января 2018)
- Серия #notNULL — Twig
- Малюсенький CI вашего Symfony проекта за 2 минуты
Yii
- yiimaker/yii2-email-templates — Модуль для создания шаблонов электронных писем для Yii2. Прислал greeflas.
Laravel
- Вопросы и ответы с Taylor Otwell на Vancouver PHP
- spatie/laravel-query-builder — Обертка над Eloquent, которая позволяет строить запросы к БД на основе HTTP запроса согласно спецификации JSON API.
- lukepolo/laracart — Еще одно e-commerce решение для Laravel.
- trafik8787/lara-crud — CRUD админ-панель для Laravel.
Zend
Async PHP
- Введение в Amp Event Loop
- Полезные приемы работы с промисами ReactPHP
- WyriHaximus/reactphp-http-middleware-session — Middleware для ReactPHP для работы с сессией.
- clue/php-stdio-react — Библиотека для удобной работы с консольным вводом/выводом (STDIN, STDOUT) в асинхронном режиме.
CMS
- Magento Tech Digest #8 — News, Tutorials and Tools (December 5, 2017 — January 15, 2018)
- Drupal 8: Создание REST Resource Plugin
- MageConf 2017 видео и материалы конференции
- 16 тонн. Как я спасал гибнущий под нагрузкой сайт на WordPress, имея весьма поверхностные знания в области этой CMS
- Нарушает ли статическая фабрика принцип открытости/закрытости
- Небольшой пример использования Amazon SNS и CloudWatch с PHP и Lumen
- Об использовании скриптов Composer
- Немного мыслей о `::class` в PHP
- Пишем Protobuf сервисы на PHP
- PHP 7.2: подводные камни, которых стоит избегать — А также ответ на тему расширения типа параметра.
- Fun PHP: Баги в PHP, JS versus PHP, Значения по ссылке
- Пишем PSR-7 фреймворк: Контейнер внедрения зависимостей
- Диалоговый телеграм бот на PHP
- Достоинства и фатальные недостатки типизации в php
- Разбор PHP-задач Badoo и новый тест. Как получить оффер в Лондон в феврале
- Сервисы в Rails, Symfony, Yii2 и Zend Expressive: реализуем одну задачу на четырех фреймворках
Аудио и видеоматериалы
- Software Development podCAST #72 — Интервью с Ильясом Салиховым про архитектуру retailCRM, PHP, Symfony, PostgreSQL, миграции и soft skills.
Занимательное
- Амбициозный план оставить небезопасные PHP-приложения в прошлом
- О том где ставить фигурную скобку в коде
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 123
Комментарии (16)
s256
29.01.2018 10:06> Высокопроизводительный балансировщик нагрузки и менеджер процессов для Golang на PHP
Поначалу подумал что это опечатка и балансировщик на golang для PHP )
Можете объяснить для чего может быть нужен подобный мухослон?Lachezis
29.01.2018 10:37Изначально использовался в системе очередей (pub/sub, Golang) для передачи задач в PHP проект, на практике работает как и PHP-PM, только без привязки к HTTP стеку и намного быстрее.
Позже планируем собрать PSR-7 сервер на этой штуке для API.
Akuma
29.01.2018 15:17А он работает отдельно от Golang, только на PHP?
Честно говоря, как и s256 не понял что за мультиязычный монстр такой.Lachezis
29.01.2018 15:26Это библиотека для Golang для управления и общения с PHP процессами, фактически встраиваемая версия PHP-FPM / PHP-PM только быстрее за счет демонизации процессов.
Задумка аналогична PHP-PM, но предоставляет более низкоуровневое АПИ и работает на порядок шустрее.
По сути на ней можно собрать свой HTTP сервер (что мы и делаем), использовать как бакенд для очереди, GRPC и т.д.
jumale
29.01.2018 11:52Судя по репозиторию на гитхабе — это таки опечатка. Написано на го, управляет пхп процессами
Fantyk
29.01.2018 11:32Очень понравился пулл github.com/symfony/symfony/pull/25854. Интересно, сделают ли оптимизацию в ядре по мотивам проблемы. Думаю единицы переопределяют базовые глобальные функции.
dmirogin
29.01.2018 14:16Использую плагин plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-
Там есть настройка, которая позволяет инспектировать такой вызов.Fantyk
29.01.2018 15:17Тоже использую плагин, а в комментах к пулу уже обсудили возможность добавления инспекций в PhpCodeSniffer. Но хочется именно в ядре оптимизаций, чтобы такими «костылями» не пользоваться.
dizzy7
29.01.2018 15:07+1В guzzle используется переопределение json_encode / json_decode, вечно всплывает в автокомплите.
Возможно сделают какую-то оптимизацию на уровне opcache — исключение поиска функции в текущем неймспейсе на этапе компиляции, если это возможно.
SlavikF
Раз уж это дайджест, то может уместно будет задать вопрос:
— помогите найти open source PHP библиотеку, которая умеет красиво отображать (таблица) и фильтровать данные из базы данных. Данные — это имена пользователей, их действия, timestamps, компьютеры и файлы, которые они читали/писали и т.д… Что-нибудь такое, чтоб были select lists, поиск с помощью SQL.
SerafimArts
Думаю, что вам с такими вопросами на тостер, это, кажется, очевидно. Этот сайтик по техническим статьям и рассказам.
Но дабы не тратить просто так место в комментарии на критику, отвечу: Вам смотреть в сторону PhpMyAdmin/PhpPgAdmin/etc. А дальнйшее дискутирование на эту тему предлагаю провести именно на предназначенном для этого ресурсе.
P.S. В статье «Сервисы в Rails, Symfony, Yii2 и Zend Expressive: реализуем одну задачу на четырех фреймворках», вместо DirectoryIterator можно (нужно) просто использовать готове Symfony-решение (http://symfony.com/doc/current/components/finder.html):
Юр, надеюсь ты прочитаешь комментарий и поправишь это досадное упущение =)
SlavikF
PhpMyAdmin — это для администратора.
Я ищу нечто, чтобы выставлять информация публично.
GrafDL
Настройте права доступа и выставляйте публично
vtvz_ru
В Yii2 есть такая штука, как GridView.
Можете глязануть этот русскоязычный материал: nix-tips.ru/yii2-razbiraemsya-s-gridview.html
Может очень много и позволит на скорую руку слепить красивую таблицу с фильтрами и сортировкой.
Но предупрежу заранее — это НЕ библиотека, и Вам придется подключатьь целый фреймворк. Хотя в случае с Yii2, это не так уж сложно.
SlavikF
Спасибо,
Наверное именно то, что надо.
Конечно, лучше бы найти такую именно библиотеку, чтоб не тянуть целый фрэймворк, но для текущего проекта подойдёт и так.
Malsa
В yii2 есть gridview, который выполняет что-то похожее