Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Новости и релизы
- Composer 1.0.0 — 4 апреля был представлен первый стабильный релиз Composer. Разработка велась 5 лет и за это время было опубликовано 92 328 пакетов, а суммарное число установок пакетов достигло 1?894?686?035. Огромное спасибо авторам и всем контрибьюторам за то, что делают PHP-мир лучше.
- Причиной утечки панамских документов мог быть плагин Revolution Slider для WordPress
- PHP 7 в Ubuntu 16.04 — В новой версии популярного дистрибутива Linux Ubuntu 16.04, релиз которого состоится 21 апреля, по умолчанию будет установлен PHP 7.
- PHP 5.5.34, 5.6.20, 7.0.5
- Deployer 3.2.0 — Обновление простого и удобного PHP-инструмента для развертывания приложений. Туториал по использованию. Прислал Антон Медведев.
- Symfony CMF 1.3
- Behat 3.1.0
PHP
- RFC: Typesafe callable — Фактически предлагается реализовать интерфейсы для анонимных функций. Альтернативный RFC Callable Interfaces.
callable FilterCallable(string $input) : string; function foo(FilterCallable $filter) : string { return $filter('bar'); } foo(function (string $foo) : string { return trim($foo); });
- RFC Short List Syntax — Предлагается реализовать возможность использования квадратных скобок вместо конструкции
list()
:
<?php // Строки попарно эквивалентны list($a, $b, $c) = array(1, 2, 3); [$a, $b, $c] = [1, 2, 3]; list("a" => $a, "b" => $b, "c" => $c) = array("a" => 1, "b" => 2, "c" => 3); ["a" => $a, "b" => $b, "c" => $c] = ["a" => 1, "b" => 2, "c" => 3]; list($a, $b) = array($b, $a); [$a, $b] = [$b, $a];
Инструменты
- gabrielrcouto/php-gui — Инструмент позволяет создавать десктопные приложения с графическим интерфейсом на PHP без необходимости устанавливать дополнительные расширения.
- Imangazaliev/DiDOM — Простая и быстрая библиотека для парсинга HTML. Сравнение с другими парсерами.
- morozovsk/websocket — Простой WebSocket-сервер с поддержкой PHP 7 и интеграцией с Yii/Yii2. Прислал morozovsk.
- FriendsOfPHP/Sismo — Сервер непрерывного тестирования. Туториал по использованию.
- phpconsole/phpconsole — Инструмент отладки, позволяет отправлять и затем просматривать отладочную информацию на phpconsole.com.
- azuyalabs/yasumi — Библиотека для расчета национальных праздников.
- yuloh/expect — Альтернатива Unix-инструменту expect на чистом PHP.
- versionpress/versionpress — Плагин для WordPress реализует систему контроля версий на основе Git. Позволяет контролировать практически любые изменения в контенте и инфраструктуре WordPress.
- Corveda/PHPSandbox — Песочница для выполнения PHP, позволяет выполнять любой код, не допуская вызова потенциально опасных конструкций.
Материалы для обучения
Symfony
- Руководство по Symfony — CLI
- Руководство по Symfony — Web
- Symfony и Command Bus
- SonataAdminBundle: создание объекта из List View (часть 2)
Yii
- HumHub 1.0.0 — Движок социальной сети на Yii 2.
- Yii 2.0: не скачиваем клиентские пакеты
- Q&A про Yii #2
Laravel
- themsaid/laravel-langman — Консольный менеджер переводов для Laravel.
- Обработка ресурсоемких задач с Laravel
- Руководство по отправке писем в Laravel
- Использование UUID вместо последовательных идентификаторов в Laravel 5+
- Шпаргалка по Laravel 5
- Разработка API для сторонних приложений (Laravel 5)
- Разработка пакета для Laravel 5. — Пошаговая инструкция на примере формы заказа обратного звонка.
- Детские болезни вашего первого класса для работы с БД
- Потоковый PHP — отключение буферизации вывода в PHP, Apache, Nginx, Varnish
- Докеризируйте ваше PHP-приложение с Nginx и PHP7-FPM
- Валидация и релиз пакетов спомощью Producer — Об использовании producerphp/producer.producer. Прислал WaveCut.
- Руководство по Cron
- Как внести свой вклад в мануал PHP
- Обзор вариантов стандартизации совместимых PHP-пакетов
- Почему PHP-разработчики думают, что MVC – это архитектура приложения?
- Установка PHP 7 (для php-fpm) с помощью phpbrew + бенчмарки php 7
- Что должен знать Junior PHP разработчик
- Расширенный скелет проекта PHPixie с аутентификацией и админкой
- Слой базы данных CodeIgniter 4
- Дайджест интересных материалов из мира Drupal #19
- Эффективные структуры данных для PHP 7
Занимательное
- На каком фреймворке вы будете писать PHP приложение в 2016 году?
- RFC: Merge Nikita Popov into Core
- Enrise/Frisbee — Exception Driven Development — библиотека позволяет создавать приложения на основе исключений.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Присылайте ссылки на интересные статьи или полезные инструменты, которых не было в PHP-Дайджестах, и ваше имя будет рядом с присланной ссылкой в выпуске.
Прислать ссылку
Быстрый поиск по всем дайджестам
< Предыдущий выпуск: PHP-Дайджест № 82
Комментарии (11)
Mendel
11.04.2016 08:33+1Подскажите, а насколько код «Простой WebSocket-сервер» пригоден для прода?
Вроде код слегка не причесан, проект с 2014 не особо развивался, в статьях на Хабре критика была заметна.
С другой стороны он прост как тапок.
Из минусов вижу только отсутствие пинг-понга и отсутствие альтернативы на случай если в пути что-то помешало (хоть аяксовую обертку).
Пинг-понг в принципе можно и на высоком уровне сделать, как плюс может быть например убивание сессий с неактивными окнами.
Аяксовую обертку тоже не сложно дописать. Но если там еще сюрпризы будут, то как-то страшновато.
Я с вебсокетами на Вы, по принципу черного ящика…morozovsk
11.04.2016 11:15«он прост как тапок» — это основной момент, он предназначен для снижения порога вхождения в вебсокеты для php-программиста.
Да с 2014 он не особо развивался, добавить пинг-понг есть в планах, было исправлено немало багов и протестирована работа на php7.
Я использую его в продакшене уже несколько лет, утечек памяти не было. Демки (чаты и игры) были запущены больше года и никаких проблем не наблюдалось.
Всё время с его создания я думал, что поиграюсь и перейду на что-то более серьёзное, но мне его функционала достаточно, есть примеры по интеграции в мой любимый фреймворк, я знаю как его правильно готовить.
Из альтернатив могу посоветовать http://socketo.me/ единственное не знаю на чём он работает внутри (socket_select, pecl/event or pecl/libevent) и какие соответственно имеет ограничения.Mendel
11.04.2016 12:43+1Ну меня он как раз как «тапок» и интересует.
Так то жирных вещах в проде живут монстрики на базе сокет.ио.
Но на более-менее легких (да и просто на свежих проектах) хочется сокращать количество франкенштейнизма.
Сейчас в пуле задач на не срочно есть чЯтик «чтобы было», т.е. хотим добавить в админке ЦМС чат между менеджерами/админами/пользователями. В некоторых проектах оно необходимо, в других — просто как фишка. Здесь вполне достаточно вебсокеты + воркараунд с «аякс раз в 5 сек».
Вторая задача — обновить работу с графиками. Тут есть сомнения — аякс точно не устраивает по скоростному режиму, а городить мультипротокольные решения — проще остаться на сокет.ио. По крайней мере на живых проектах. А для новых? Для новых я пока в задумчивости — насколько оно существенно сейчас? Каков процент тех у кого оно не взлетит? Теоретически некоторой интерактивностью для части мобильной аудитории пожертвовать можно без проблем, там и так задержек хватает, мобильная работа это запасное решение, не основное.
В общем в задумчивости я. С одной стороны — тапок, и уменьшение лишних технологий.
С другой стороны совместимость… В общем классическая проблема на подобии «когда прекращать поддержку ие6/7/8?» :)
ПС: За комментарий благодарю в любом случае. Частично понимания больше стало. ЗА библиотеку вдвойне благодарность. Как минимум как шпаргалка по технологии полезна будет. Читать код всегда приятнее чем теоретические учебники.
DeLuxis
11.04.2016 11:35+1ИМХО для небольшого функционала вполне годится. Фулл WebSocket сервис писать не стоит разумеется.
jigpuzzled
11.04.2016 10:44+2Не знаю упоминалось ли уже, но на Gitter есть хороший русскоязычный (ну почти) PHP чат. Я когда-то искал и не мог найти даже русского PHP-шного IRC канала, а попался он. Хорошо бы было его чуток популяризировать в дайджесте:
https://gitter.im/dev-ua/php
P.S. если я слеп и все таки существуют иные чаты/IRC то буду очень признателен за линк
maxru
11.04.2016 18:34> gabrielrcouto/php-gui
Никогда такого не было, и вот опятьDavert
12.04.2016 11:55идея может и неплоха, но дичайше устарела. Зачем рисовать интерфейс по кнопка и по координатам, если можно всё делать через HTML/CSS и рендерить хромиумом, как это делает электрон. Так что, увы, не взлетит
SamDark
Там разве не на JavaScript примеры?
Big_Shark
Там даже теги на это намекают: JavaScript, Sinon, Testing
pronskiy
Виноват, спасибо за замечание! Убрал :-)