Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3 RC2, Codeception 2.5 и другие релизы, типизированные свойства в PHP 7.4, концепт предзагрузки кода от Дмитрия Стогова, порция полезных инструментов, и многое другое.
Приятного чтения!
Новости и релизы
- PHP 7.3 RC2 — Второй релиз-кандидат доставлен по расписанию. Следующий выпуск ожидается 11 октября. Еще один обзор нововведений PHP 7.3.
- PhpStorm 2018.3 EAP — Продолжается программа раннего доступа, в рамках которой можно использовать PhpStorm бесплатно. В свежих сборках добавлена поддержка <generic> нотации для коллекций из PSR-5 PHPDoc, а также пересечений типов
Foo&Bar
. Подробнее о пересечении и объединении типов от автора PHPStan. - Codeception 2.5 — В апдейте представлены возможности для снэпшот-тестирования, поддержка подключения к нескольким БД и другие улучшения.
- doctrine/mongodb-odm 2.0 Alpha 1
- nikic/FastRoute — разыскивает мейнтейнера! Несколько лет назад Никита Попов доказал, что роутинг может быть очень быстрым на PHP. Напомню про его отличную статью Fast request routing using regular expressions.
- Yandex PHP meetup, 18 октября 2018, Москва — В московском офисе Яндекса пройдёт встреча PHP-разработчиков.
PHP Internals
- [RFC] Typed Properties 2.0 — Предложение по типизированным свойства принято практически единогласно: 70 против 1! Типизированные свойства будут добавлены в PHP 7.4.
Скрытый текст
class Example { // All types with the exception of "void" and "callable" are supported public int $scalarType; protected Type $type; private ?Type $nullableType; // Types are also legal on static properties public static iterable $staticProp; // Types can also be used with the "var" notation var bool $flag; // Typed properties may have default values (more below) public string $str = "foo"; public ?string $nullableStr = null; // The type applies to all properties in one declaration public float $x, $y; // equivalent to: public float $x; public float $y; }
- [PR] An attempt to implement «preloading» ability — Дмитрий Стогов главный автор проекта PHPNG, который стал базой для PHP 7. На этот раз Дмитрий представил концепт, который позволяет приложениям предварительно загружать код еще до того как PHP обработает HTTP-запрос.
Также Дмитрий работает над реализацией JIT в PHP, которая ожидается в PHP 8.
Инструменты
- spiral/roadrunner — Высокопроизводительный сервер приложений, балансировщик нагрузки и менеджер процессов для PHP реализованный на Go. Добавлена поддержка HTTPS и HTTP/2 Push.
- ankitpokhrel/tus-php — Реализация сервера и клиента tus.io открытого протокола возобновляемых загрузок файлов. Протокол используется в Vimeo, Cloudflare, и Git LFS.
- TiBeN/CrontabManager — Менеджер cron-задач.
- paragonie/easydb — Простая и удобная обертка над PDO. Доступно кэширование подготовленных запросов paragonie/easydb-cache.
- zendframework/zend-diactoros 2.0.0 — Обновление популярной реализации PSR-7 и теперь еще PSR-17.
- liuggio/fastest — Простое решение для параллельного запуска тестов. Альтернатива более сложному paratestphp/paratest
- konsulting/porter — Мультисайт окружение для локальной разработки на базе Docker.
Материалы для обучения
-
Symfony
- KnpUniversity переименован в SymfonyCasts
- enumag/no-thanks — Убирает напоминание о symfony/thanks в symfony/flex :-)
- Неделя Symfony #612 (17-23 сентября 2018), #613 (24-30 сентября 2018)
-
Laravel
- Laravel Zero 5.7
- Что такое APP_KEY и для чего он нужен
- Пошаговое урководство по созданию первого приложения на Laravel
- Building LaraShoppe — Скринкаст по созданию магазина с нуля с помощью Laravel, Laravel Nova, Vue.js, и Tailwind CSS.
- antonioribeiro/health — Мониторинг Laravel приложений с уведомлениями.
- spatie/laravel-blade-x — Позволяет использовать кастомные HTML-компоненты в Blade-шаблонах вместо использования директивы
@include
. - railken/lara-eye — Конвертирует строку запроса в набор вложенных конструкций where для QueryBuilder.
-
Async PHP
- ReactPHP Tutorial #12: Routing
- friends-of-reactphp/mysql 0.4 — Асинхронный клиент для MySQL. В обновлении представлен интерфейс на промисах вместо колбэков и стриминг больших результатов. Позволяет эффективно обрабатывать тысячи и миллинов записей из MySQL с помощью ReactPHP. Подробнее в посте автора.
-
CMS
- Magento Tech Digest #32: Sept 17 – 24, 2018
- Массовая атака на сайты с необновлённым движком WordPress
- 7 советов по написанию исключений
- Не используйте библиотеки для моков
- Assertions and assertion libraries
- Методы шифрования в PHP для паролей и других данных
- Paragon Initiative: Slice Of PIE #00 — Почему гибридное шифрование лучше чем асимметричное? Какие алгоритмы шифрования стоит исопльзовать PHP разработчикам?
- Создаем простое PHP-приложение на Google App Engine
- Конфигурация XDebug в Docker с помощью переменных окружения
- Нужно поднимать Kubernetes кластер, но я всего лишь программист кода. Выход есть
- Хранение большого количества файлов
- MVC + Scenario против Толстых Контроллеров
Аудио и видеоматериалы
- Пишем PSR-7 фреймворк: Консольные команды, базы данных и ресурсы
- Пятиминутка PHP Выпуск №39 — Как протестировать проект под PHP 7.3?
- Пятиминутка PHP Выпуск №38 — DevOops и эволюция DevOps в 2018 году
- PHP Roundtable #78: DocBlocks, Annotations, PSR-5
Занимательное
- Список самых желаемых фич для PHP 8 из опроса в твиттере — На первом месте оказались дженерики (RFC), а затем короткие лямбды (RFC), многопоточность (pthreads), скалярные объекты (nikic/scalar_objects), перегрузка методов, асинхронные возможности (PHP 8), и прочее.
- RemotePHP.io — Борда с вакансиями на удаленную работу.
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.
Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 139
Автор: pronskiy