- PVSM.RU - https://www.pvsm.ru -
Свежая подборка со ссылками на новости и материалы. В выпуске: Последний релиз-кандидат PHP 8.0 перед финальным релизом и свежие материалы по PHP 8, RFC и обсуждения из PHP Internals, порция полезных инструментов, стримы, подкасты, статьи.
Приятного чтения!
Свежие материалы по PHP 8:
E_ERROR
, E_CORE_ERROR
, E_COMPILE_ERROR
, E_USER_ERROR
, E_RECOVERABLE_ERROR
, E_PARSE
.Кроме того, в PHP 8 по умолчанию удален PECL. Из-за этого могут поломаться Dockerfile, в которых с его помощью устанавливались расширения. Вместо PECL можно использовать FriendsOfPHP/pickle [8].
RUN curl -L -o /tmp/pickle.phar https://github.com/FriendsOfPHP/pickle/releases/latest/download/pickle.phar;
mv /tmp/pickle.phar /usr/local/bin/pickle;
chmod +x /usr/local/bin/pickle;
pickle install xdebug;
RUN echo "extension=xdebug.so" >> $PHP_INI_DIR/conf.d/php.ini;
Или так:
RUN mkdir -p /usr/src/php/ext/xdebug &&
curl -fsSL https://pecl.php.net/get/xdebug |
tar xvz -C "/usr/src/php/ext/xdebug" --strip 1 && docker-php-ext-install xdebug
Ближайшие митапы: PHP-митап Иннополис онлайн, 19 ноября [12]; Online-митап по PHP от SimbirSoft, 20 ноября [13].
$lambda
, которая указывает на само замыкание. По аналогии с $this
для классов.
$fibonacci = function (int $n) use (&$fibonacci) {
if ($n === 0) return 0;
if ($n === 1) return 1;
return $fibonacci($n-1) + $fibonacci($n-2);
};
// =>
$fibonacci = function (int $n) {
if ($n === 0) return 0;
if ($n === 1) return 1;
return $lambda($n-1) + $lambda($n-2);
};
::function
(или ::fn
) для получения полного неймспейса и имени функции по аналогии с ::class
. Подобное предложение обсуждалось раньше и имеет проблемы [16], но вполне вероятно будет принято.number
или numeric
для объединенного типа int | float
. В комментариях указали, что уж лучше позже сделать полноценные алиасы для типов как в TypeScript: type Number = Foo|Bar;
.use function MNCHttpfetch;
$response = fetch('https://habr.com');
echo $response->status()->code(); // 200
echo buffer($response->body());
// or
while (($chunk = $response->body()->read()) !== null) {
echo $chunk;
}
Спасибо за внимание!
Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку хабра [71] или телеграм [72].
Больше новостей и комментариев в Telegram-канале PHP Digest [73].
Прислать ссылку [74]
Поиск ссылок по всем дайджестам [75]
← Предыдущий выпуск: PHP-Дайджест № 191 [76]
Автор: Роман Пронский
Источник [77]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/358887
Ссылки в тексте:
[1] PHP 8.0 RC 4: https://www.php.net/archive/2020.php#2020-11-12-1
[2] про атрибуты: https://platform.sh/blog/2020/php-8-0-feature-focus-attributes/
[3] объявление свойств в конструкторе: https://platform.sh/blog/2020/php-80-feature-focus-constructor-property-promotion/
[4] Видеокурс по основным фичам PHP 8 от Spatie: https://spatie.be/videos/front-line-php
[5] оператор `@` не будет подавлять фатальные ошибки: https://php.watch/versions/8.0/fatal-error-suppression
[6] О WeakMap в PHP 8 с примерами реального применения: https://php.watch/articles/practical-weakmap
[7] Как сконфигурировать JIT в PHP 8: https://stitcher.io/blog/php-8-jit-setup
[8] FriendsOfPHP/pickle: https://github.com/FriendsOfPHP/pickle
[9] phpcommunity.ru: https://phpcommunity.ru/
[10] Полезные привычки программиста после 30, MySQL vs Postgres и как поговорить об этом в субботу: https://habr.com/ru/company/skyeng/blog/527156/
[11] Как обстоят дела с PHP в Краснодаре (и не только): https://habr.com/ru/company/skyeng/blog/526146/
[12] PHP-митап Иннополис онлайн, 19 ноября: https://oez-innopolis.timepad.ru/event/1471081/
[13] Online-митап по PHP от SimbirSoft, 20 ноября: https://simbirsoft.timepad.ru/event/1467649/
[14] [Draft] Closure self reference: https://wiki.php.net/rfc/closure_self_reference
[15] [PR] Support for <func>::function syntax: https://github.com/adsr/php-src/commit/07bb24243022ccef5823f6977d231f3535a48a07
[16] проблемы: https://externals.io/message/112201#112212
[17] [Discussion] Alias for `int|float`: https://externals.io/message/112209
[18] mnavarrocarter/php-fetch: https://github.com/mnavarrocarter/php-fetch
[19] themsaid/ibis: https://github.com/themsaid/ibis
[20] i582/phpstats: https://github.com/i582/phpstats
[21] VKCOM/noverify: https://github.com/VKCOM/noverify
[22] mihaeu/dephpend: https://github.com/mihaeu/dephpend
[23] httpsoft/http-message: https://github.com/httpsoft/http-message
[24] #PSR-7: https://pronskiy.com/php-digest/?q=PSR-7
[25] #PSR-17: https://pronskiy.com/php-digest/?q=PSR-17
[26] spatie/crypto: https://github.com/spatie/crypto
[27] пост: https://freek.dev/1829-encrypting-and-signing-data-using-privatepublic-keys-in-php
[28] icanhazstring/systemctl-php: https://github.com/icanhazstring/systemctl-php
[29] Symfony Panther: PHP-библиотека для тестирования из браузера и парсинга веб-страниц: https://phpprofi.ru/blogs/post/106
[30] Что нового будет в Symfony 5.2 : https://symfony.com/blog/symfony-5-2-curated-new-features
[31] Несколько видеотуториалов по Symfony: https://www.youtube.com/playlist?list=PLQH1-k79HB39w7dmGtLj4JGJ7HoucbcMx
[32] Неделя Symfony #723 (9-15 ноября 2020): https://symfony.com/blog/a-week-of-symfony-724-9-15-november-2020
[33] laravel/breeze: https://github.com/laravel/breeze
[34] Видеообзор пакета: https://www.youtube.com/watch?v=dofUcI1PkUA
[35] spatie/laravel-settings: https://github.com/spatie/laravel-settings
[36] пост: https://freek.dev/1828-store-strongly-typed-settings-in-a-laravel-app
[37] ksassnowski/venture: https://github.com/ksassnowski/venture
[38] Laravel Podcast S4:E17: https://laravelpodcast.simplecast.com/episodes/the-service-container-with-christoph-rumpel
[39] об обновлении пакета spatie/laravel-event-sourcing на PHP 8: https://www.youtube.com/watch?v=X3fmQ5Rs9GY
[40] Обзор плагина Laravel Idea: https://www.youtube.com/watch?v=o5WJIS9yWCo
[41] Laravel–Дайджест (2–8 ноября 2020): https://habr.com/ru/post/526934/
[42] Новости Yii 2020, выпуск 7: https://habr.com/ru/post/527634/
[43] clue/reactphp-term: https://github.com/clue/reactphp-term
[44] clue/reactphp-utf8: https://github.com/clue/reactphp-utf8
[45] PhpStorm 2020.3 EAP #6: https://blog.jetbrains.com/phpstorm/2020/11/phpstorm-2020-3-eap-6/
[46] Подборка трюков и советов по PhpStorm в твитах: https://twitter.com/i/events/1268886882013917184
[47] IntelliJ плагин для Alpine.js: https://github.com/inxilpro/IntellijAlpine
[48] Elephpant Progress Bar: https://plugins.jetbrains.com/plugin/15291-elephpant-progress-bar
[49] ВКонтакте снова выкладывает: https://habr.com/ru/company/vk/blog/527420/
[50] VKCOM/kphp: https://github.com/vkcom/kphp
[51] в канале: https://t.me/phpdigest/193
[52] Как разрабатывать на PHP 7.4 и деплоить на PHP 7.1: https://blog.logrocket.com/coding-in-php-7-4-and-deploying-to-7-1-via-rector-and-github-actions/
[53] rectorphp/rector: https://github.com/rectorphp/rector/
[54] О поддержке атрибутов PHP 8 в Psalm: https://psalm.dev/articles/php-8-attributes
[55] php-fig-rectified/fig-rectified-standards: https://github.com/php-fig-rectified/fig-rectified-standards
[56] PSR-2-R: https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide.md
[57] Episode 69: Short Functions: https://phpinternals.news/69
[58] Larry Garfield: https://twitter.com/crell
[59] однострочные именованные функции / методы: https://wiki.php.net/rfc/short-functions
[60] Episode 70: Explicit Octal Literal: https://phpinternals.news/70
[61] George Peter Banyard: https://twitter.com/Girgias
[62] восьмеричных чисел в PHP: https://wiki.php.net/rfc/explicit_octal_notation
[63] ОНТИКО подкаст: https://anchor.fm/ontico/episodes/ep-em0h40
[64] Damien Seguy — Modernize your PHP with Exakat: https://youtu.be/XKjiAWxwFR0?t=1643
[65] Wim Godden — Why and How of moving to PHP 8: https://youtu.be/XKjiAWxwFR0?t=6392
[66] О создании дев-окружения для PHP с помощью Docker Compose: https://www.youtube.com/watch?v=BFJe-uxB_Nk
[67] Александр Макаров – Yii: уроки прошлого и будущее: https://youtu.be/MuVMe7oMoyM?t=160
[68] Антон Титов – Cycle ORM и графы: https://youtu.be/MuVMe7oMoyM?t=3419
[69] Дмитрий Елисеев — Выбор фреймворка для ентерпрайза: https://youtu.be/MuVMe7oMoyM?t=5872
[70] vincentpontier.com/elephpant/: https://www.vincentpontier.com/elephpant/
[71] личку хабра: https://habrahabr.ru/conversations/pronskiy/
[72] телеграм: https://t.me/pronskiy
[73] PHP Digest: https://t.me/phpdigest
[74] Прислать ссылку: https://bit.ly/php-digest-add-link
[75] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/
[76] Предыдущий выпуск: PHP-Дайджест № 191: https://habr.com/ru/post/526098/
[77] Источник: https://habr.com/ru/post/528256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=528256
Нажмите здесь для печати.