Дженерики в PHP
Последние пару недель Никита Попов работал над исследованием возможности реализации дженериков. Если коротко, то, по словам Никиты, есть несколько серьёзных трудностей и он в целом пока не уверен, что добавить полноценные дженерики в PHP это хорошая идея. Есть PR с прототипом реализации https://github.com/nikic/php-src/pull/3 и все проблемы и открытые вопросы подробно изложены вот тут https://github.com/PHPGenerics/php-generics-rfc/issues/45
Последние пару недель Никита Попов работал над исследованием возможности реализации дженериков. Если коротко, то, по словам Никиты, есть несколько серьёзных трудностей и он в целом пока не уверен, что добавить полноценные дженерики в PHP это хорошая идея. Есть PR с прототипом реализации https://github.com/nikic/php-src/pull/3 и все проблемы и открытые вопросы подробно изложены вот тут https://github.com/PHPGenerics/php-generics-rfc/issues/45
GitHub
Implementation notes · Issue #45 · PHPGenerics/php-generics-rfc
I've done some initial protoyping for (reified) generics in nikic/php-src#3. I want to discuss some implementation aspects here. Some additional reading on relevant issues: On syntax ambiguitie...
PhpStorm 2020.1 EAP
https://blog.jetbrains.com/phpstorm/2020/01/phpstorm-2020-1-early-access-program-is-now-open/
Upd: Поправил ссылку.
Наконец-то запустили программу раннего доступа для первого в этом году мажорного релиза PhpStorm.
Будем улучшать разные подсистемы, в том числе вывод типов в PHP, VCS и прочее. Конечно, производительности будет много внимания.
Описывать все изменения планирую порциями каждую неделю, поэтому подписывайтесь на Twitter phpstorm или старый добрый RSS блога.
В первом посте об улучшениях для Composer – теперь практически всё можно делать прямо в редакторе в файле composer.json. Есть автокомплит, переходы к файлам, запуск скриптов и прочее.
+ PCOV и PHPDBG для подсчёта покрытия, кастомизация тегов Twig, минимально обновили светлую тему, шрифт JetBrains Mono по умолчанию, пачка улучшения для Git, но о них позже.
По традиции EAP билды выходят каждую неделю и их можно использовать совершенно бесплатно.
https://blog.jetbrains.com/phpstorm/2020/01/phpstorm-2020-1-early-access-program-is-now-open/
Upd: Поправил ссылку.
Наконец-то запустили программу раннего доступа для первого в этом году мажорного релиза PhpStorm.
Будем улучшать разные подсистемы, в том числе вывод типов в PHP, VCS и прочее. Конечно, производительности будет много внимания.
Описывать все изменения планирую порциями каждую неделю, поэтому подписывайтесь на Twitter phpstorm или старый добрый RSS блога.
В первом посте об улучшениях для Composer – теперь практически всё можно делать прямо в редакторе в файле composer.json. Есть автокомплит, переходы к файлам, запуск скриптов и прочее.
+ PCOV и PHPDBG для подсчёта покрытия, кастомизация тегов Twig, минимально обновили светлую тему, шрифт JetBrains Mono по умолчанию, пачка улучшения для Git, но о них позже.
По традиции EAP билды выходят каждую неделю и их можно использовать совершенно бесплатно.
PHP-Дайджест № 173
PHPUnit 9 и другие релизы, 3 свежих RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое!
https://habr.com/p/487690/
PHPUnit 9 и другие релизы, 3 свежих RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое!
https://habr.com/p/487690/
Habr
PHP-Дайджест № 173 (27 января – 10 февраля 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHPUnit 9 и другие релизы, 3 свежих RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое....
Будущее развитие PHP
https://github.com/nikic/php-rfcs/blob/language-evolution/rfcs/0000-language-evolution.md
Никита опубликовал черновик RFC с предложением установить механизм введения в язык новых глобальных или ломающих обратную совместимость фич. И рассмотрел возможные пути решения:
1. Новый язык (P++)
При всех своих недостатках, одно из преимуществ тут в том, что можно делать совершенно радикальные изменения. Например, убрать
2. Editions (редакции/издания)
Идея позаимствована из Rust, в разработку которого Никита тоже вовлечён.
По сути, это набор обратно-несовместимых изменений, объединенных под одним именем. Такой вариант интересен как с технической так и с маркетинговой точки зрения.
3. Директивы declare на каждую фичу
То есть на каждое крупное изменение вводить отдельную директиву по типу
___
Поскольку против нового языка уже неофициально проголосовали и единогласно отмели идею, то дальше Никита рассматривает технические аспекты реализации единшов/директив.
Варианты тут такие:
• Текущая реализация с объявлениями в каждом файле
• Новый открывающий тег
Например, для едишнов:
Прототип этого варианта оформлен в виде пул-реквеста.
Пакет надо будет явно объявлять в каждом файле.
Например добавлять файл
В конце Никита подводит выводу, что оптимальный вариант — это едишны + declare директивы в каждом файле.
https://github.com/nikic/php-rfcs/blob/language-evolution/rfcs/0000-language-evolution.md
Никита опубликовал черновик RFC с предложением установить механизм введения в язык новых глобальных или ломающих обратную совместимость фич. И рассмотрел возможные пути решения:
1. Новый язык (P++)
При всех своих недостатках, одно из преимуществ тут в том, что можно делать совершенно радикальные изменения. Например, убрать
$
из переменных. Но мы помним судьбу Perl/Raku.2. Editions (редакции/издания)
Идея позаимствована из Rust, в разработку которого Никита тоже вовлечён.
По сути, это набор обратно-несовместимых изменений, объединенных под одним именем. Такой вариант интересен как с технической так и с маркетинговой точки зрения.
3. Директивы declare на каждую фичу
То есть на каждое крупное изменение вводить отдельную директиву по типу
strict_types
.___
Поскольку против нового языка уже неофициально проголосовали и единогласно отмели идею, то дальше Никита рассматривает технические аспекты реализации единшов/директив.
Варианты тут такие:
• Текущая реализация с объявлениями в каждом файле
declare(strict_types=1)
или в случае едишнов declare(edition=2020)
• Новый открывающий тег
Например, для едишнов:
<?php2020
• Указание директив для пространств имён (RFC)namespace_declare('Vendor\Lib', [• Ввести понятие пакета в PHP
'strict_types' => 1,
'no_dynamic_properties' => 1,
// ...
]);
Прототип этого варианта оформлен в виде пул-реквеста.
Пакет надо будет явно объявлять в каждом файле.
<?php• Что-то на основе файловой системы
package "nikic/php-parser";
namespace PhpParser\Node;
Например добавлять файл
.package.php
в корне пакета, который будет содержать нужную метаинформацию.В конце Никита подводит выводу, что оптимальный вариант — это едишны + declare директивы в каждом файле.
GitHub
php-rfcs/rfcs/0000-language-evolution.md at language-evolution · nikic/php-rfcs
Experimental repo for GitHub based RFC workflow. For now, please don't submit PRs. - php-rfcs/rfcs/0000-language-evolution.md at language-evolution · nikic/php-rfcs
PHP Russia 2020
#конференции #розыгрыш
https://phprussia.ru/moscow/2020/
Раз у меня есть доступ к конференциям, то почему бы не воспользоваться админресурсом и не делиться этим с вами? Если идея зайдёт, то будем разыгрывать билеты на другие мероприятия чаще. В пуле уже есть PHP fwdays, Laracon Online, PHPKonf, PHP Serbia.
Начнём с конференции в Москве.
Что имеем на данный момент:
• Nicolas Grekas, по сути, главный человек в разработке Symfony сегодня
• Макс Рафалко, автор Infection, о мутационном тестировании из первых рук
• Антон Титов, автор RoadRunner, но на этот раз с докладом о своей Cycle ORM
• Алексей Матюхин из Badoo о реальном опыте применения стат анализа (PHPStan, Psalm, Phan, NoVerify)
Промокод на билеты со скидкой 7%: PHPDIGEST
На конференцию можно попасть бесплатно, если ты докладчик :Roll Safe: 💁🏿♂️
Приём заявок открыт ещё два дня: https://conf.ontico.ru/lectures/propose?conference=pc2020
А вот и розыгрыш билета.
Всё, что нужно сделать, просто нажмите на кнопку, но только если вы сможете приехать в Москву 13 мая на конференцию PHP Russia 2020. (Счётчик обновляется с задержкой)
Если не сможете приехать, пожалуйста, не жмите.
*****
Победители: Andrew Tkachuk
#конференции #розыгрыш
https://phprussia.ru/moscow/2020/
Раз у меня есть доступ к конференциям, то почему бы не воспользоваться админресурсом и не делиться этим с вами? Если идея зайдёт, то будем разыгрывать билеты на другие мероприятия чаще. В пуле уже есть PHP fwdays, Laracon Online, PHPKonf, PHP Serbia.
Начнём с конференции в Москве.
Что имеем на данный момент:
• Nicolas Grekas, по сути, главный человек в разработке Symfony сегодня
• Макс Рафалко, автор Infection, о мутационном тестировании из первых рук
• Антон Титов, автор RoadRunner, но на этот раз с докладом о своей Cycle ORM
• Алексей Матюхин из Badoo о реальном опыте применения стат анализа (PHPStan, Psalm, Phan, NoVerify)
Промокод на билеты со скидкой 7%: PHPDIGEST
На конференцию можно попасть бесплатно, если ты докладчик :Roll Safe: 💁🏿♂️
Приём заявок открыт ещё два дня: https://conf.ontico.ru/lectures/propose?conference=pc2020
А вот и розыгрыш билета.
Всё, что нужно сделать, просто нажмите на кнопку, но только если вы сможете приехать в Москву 13 мая на конференцию PHP Russia 2020. (Счётчик обновляется с задержкой)
Если не сможете приехать, пожалуйста, не жмите.
*****
Победители: Andrew Tkachuk
phprussia.ru
Крупнейшая конференция по PHP в России 2021
PHP-Дайджест № 174
5 новых RFC из PHP Internals, а также предложение по развитию языка и пара прототипов новых фич для PHP в виде пул-реквестов, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/489662/
5 новых RFC из PHP Internals, а также предложение по развитию языка и пара прототипов новых фич для PHP в виде пул-реквестов, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/489662/
Habr
PHP-Дайджест № 174 (10 – 24 февраля 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: 5 новых RFC из PHP Internals, а также предложение по развитию языка и пара прототипов новых фич в виде пул-реквестов, порция полезных...
Laracon Online
#конференции #розыгрыш
https://laracon.net/
Конференция проходит в виде онлайн-трансляции, так что присоединиться можно из любого места и ехать никуда не нужно и можно смотреть компанией.
Начало завтра в 9:00 UTC-5 (первый доклад в 10:00). Тейлор расскажет про Laravel 7, а вся программа тут https://laracon.net/#time-table
Разыгрываем 5 билетов.
*
Победители: Aliaksandr Burshtyn, Roman, Dzianis Yurevich, Ilia Lazarev, Alexey Shapilov
#конференции #розыгрыш
https://laracon.net/
Конференция проходит в виде онлайн-трансляции, так что присоединиться можно из любого места и ехать никуда не нужно и можно смотреть компанией.
Начало завтра в 9:00 UTC-5 (первый доклад в 10:00). Тейлор расскажет про Laravel 7, а вся программа тут https://laracon.net/#time-table
Разыгрываем 5 билетов.
*
Победители: Aliaksandr Burshtyn, Roman, Dzianis Yurevich, Ilia Lazarev, Alexey Shapilov
Laracon Online | FREE on YouTube on September 14th
Laracon Online is the digital gathering of people who are passionate about building amazing applications with the Laravel web framework.
Плагин для PhpStorm
https://habr.com/ru/company/badoo/blog/490024/
В статье от Badoo подробно о том, как писать свой плагин с подробным разбором реализации кастомной инспекции, а также демо других фишек, которые можно сделать: работа с БД, кодогенерация, добавление статистики от профайлера прямо в код и прочее.
И в дополнение несколько полезных плагинов, может какие-то из них вы ещё не пробовали.
• Php Inspections (EA Extended) — очень много дополнительных инспекций (архитектура, качество, безопасность, и др).
• deep-assoc-completion — дополнение кода для ассоциативных массивов.
• Key Promoter X — поможет выучить горячие клавиши. Или хотя бы Alt+Enter вместо клика на лампочку.
• 3v4l pl4g1n — быстро запустить выделенный код на 3v4l.org, чтоб сравнить на всех версиях PHP.
• String Manipulation — дополнительные действия над строками.
• CodeGlance — мини-карта а-ля sublime.
• Rainbow Brackets — раскрашивает скобки разными цветами, чтоб быстро находить глазами.
#PhpStorm
https://habr.com/ru/company/badoo/blog/490024/
В статье от Badoo подробно о том, как писать свой плагин с подробным разбором реализации кастомной инспекции, а также демо других фишек, которые можно сделать: работа с БД, кодогенерация, добавление статистики от профайлера прямо в код и прочее.
И в дополнение несколько полезных плагинов, может какие-то из них вы ещё не пробовали.
• Php Inspections (EA Extended) — очень много дополнительных инспекций (архитектура, качество, безопасность, и др).
• deep-assoc-completion — дополнение кода для ассоциативных массивов.
• Key Promoter X — поможет выучить горячие клавиши. Или хотя бы Alt+Enter вместо клика на лампочку.
• 3v4l pl4g1n — быстро запустить выделенный код на 3v4l.org, чтоб сравнить на всех версиях PHP.
• String Manipulation — дополнительные действия над строками.
• CodeGlance — мини-карта а-ля sublime.
• Rainbow Brackets — раскрашивает скобки разными цветами, чтоб быстро находить глазами.
#PhpStorm
Хабр
Избавляемся от рутины со своим плагином для PhpStorm
Привет, Хабр! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом. С эт...
Stringable Interface
https://wiki.php.net/rfc/stringable
Предложение от Nicolas Grekas принято. В PHP 8 можно будет использовать union-тип
Интересно, что при этом если в классе реализован магический метод
https://wiki.php.net/rfc/stringable
Предложение от Nicolas Grekas принято. В PHP 8 можно будет использовать union-тип
string|Stringable
там, где ожидается строка, и передавать классы с __toString()
.Интересно, что при этом если в классе реализован магический метод
__toString()
, то добавлять implements Stringable
можно, но необязательно, потому что он неявно будет имплементирован автоматически, прям как в Golang.PHP-Дайджест № 175
Релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/491660/
Релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/491660/
Habr
PHP-Дайджест № 175 (25 февраля – 10 марта 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты...
str_contains() в PHP 8
https://wiki.php.net/rfc/str_contains
Не прошло и 25 лет и вот в PHP добавили функцию, которая проверяет, содержится ли строка в другой строке.
В качестве альтернатив для работы со строками уже есть symfony/string или, например, voku/Stringy.
https://wiki.php.net/rfc/str_contains
Не прошло и 25 лет и вот в PHP добавили функцию, которая проверяет, содержится ли строка в другой строке.
str_contains(string $haystack, string $needle) :boolКонечно, это всего лишь эквивалент
str_contains("abc", "a"); // true
str_contains("abc", "d"); // false
strpos($haystack, $needle) !== false
но приятная мелочь. В качестве альтернатив для работы со строками уже есть symfony/string или, например, voku/Stringy.
PHP-Дайджест № 176
Обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/493594/
Обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/493594/
Habr
PHP-Дайджест № 176 (11 – 23 марта 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, видео,...
Forwarded from Deleted Account
Всем привет! В эту субботу планируется виртуальный PHP-митап, в котором поучаствуют ребята из ПК конференции + можно будет получить билет на ее онлайновую и оффлайновую части. И не только)
▶️ 6 докладов с трансляцией на Youtube - опыт Skyeng, ManyСhat, iSpring, SimbirSoft, а также небольших студий и независимых разработчиков
🎛 Обсуждения голосом со спикерами - в отдельной видеокомнате после каждого доклада
🍕 Пицца с доставкой на дом за вопросы после каждого доклада
🏆 PHP-викторина с Романом Пронским, необычный розыгрыш билета на PHP Russia, пхпбот и другие интерактивы в перерывах.
И все это не выходя из телефона или 💻 ноутбука) Присоединяйся: https://meetups-online.ru/virtual_php_meetup
p.s. Спасибо @samdark и @pronskiy
за поддержку идеи!
▶️ 6 докладов с трансляцией на Youtube - опыт Skyeng, ManyСhat, iSpring, SimbirSoft, а также небольших студий и независимых разработчиков
🎛 Обсуждения голосом со спикерами - в отдельной видеокомнате после каждого доклада
🍕 Пицца с доставкой на дом за вопросы после каждого доклада
🏆 PHP-викторина с Романом Пронским, необычный розыгрыш билета на PHP Russia, пхпбот и другие интерактивы в перерывах.
И все это не выходя из телефона или 💻 ноутбука) Присоединяйся: https://meetups-online.ru/virtual_php_meetup
p.s. Спасибо @samdark и @pronskiy
за поддержку идеи!
Вышла новая мажорная версия популярной библиотеки ramsey/uuid. Из описания следует, что серьезных нарушений обратной совместимости в ней нет, а вот новых интерфейсов и исключений там целый список.
Изучаем изменения в документации и обновляемся
На мой взгляд, самое интересное — это поддержка пока нестандартизированного UUID v6. Новая версия UUID предложена специально для использования в качестве первичного ключа БД и обладает следующими свойствами:
- Сортировка по необработанным байтам приводит к последовательности, эквивалентной сортировке по встроенной временной метке.
- Встроенное время может быть извлечено для использования в качестве времени создания.
- Глобальная уникальность, которая является основным требованием для всех типов UUID.
Про отличия версии 6 от версии 1 и другие подробности можно прочитать в IETF черновике.
@vudaltsov | https://twitter.com/vudaltsov
________
Карантин имеет свои плюсы. Созвонились с Валентином Удальцовым и решили объединить усилия. Теперь на канале будут иногда появляться новости от Валентина, они будут подписаны как этот пост выше.
Кстати, Валентин ведёт свой канал Пых, где пишет о личном опыте разработки на PHP.
Изучаем изменения в документации и обновляемся
composer req ramsey/uuid:^4.0
.На мой взгляд, самое интересное — это поддержка пока нестандартизированного UUID v6. Новая версия UUID предложена специально для использования в качестве первичного ключа БД и обладает следующими свойствами:
- Сортировка по необработанным байтам приводит к последовательности, эквивалентной сортировке по встроенной временной метке.
- Встроенное время может быть извлечено для использования в качестве времени создания.
- Глобальная уникальность, которая является основным требованием для всех типов UUID.
Про отличия версии 6 от версии 1 и другие подробности можно прочитать в IETF черновике.
@vudaltsov | https://twitter.com/vudaltsov
________
Карантин имеет свои плюсы. Созвонились с Валентином Удальцовым и решили объединить усилия. Теперь на канале будут иногда появляться новости от Валентина, они будут подписаны как этот пост выше.
Кстати, Валентин ведёт свой канал Пых, где пишет о личном опыте разработки на PHP.
GitHub
Release 4.0.0 · ramsey/uuid
Read the upgrade guide for details on how these changes may impact your code and what you can do to ease the upgrade process.
Added
Add support for version 6 UUIDs, as defined by http://gh.peabod...
Added
Add support for version 6 UUIDs, as defined by http://gh.peabod...
Единогласно принято предложение Никиты Попова о валидации абстрактных методов трейтов.
Фатальная ошибка будет сгенерирована в следующих случаях:
- нарушение совместимости сигнатур (кол-во аргументов, контравариантность аргументов, ковариантность возвращаемого типа),
- несовпадение статичности методов.
Также данный RFC разрешает использовать
Будьте внимательны, RFC, очевидно, нарушает обратную совместимость. Однако соблюдать сигнатуру при имплементации абстрактного метода вполне логично, поэтому скорее всего ваш код уже совместим с PHP 8 в этом аспекте.
@vudaltsov | https://twitter.com/vudaltsov
Фатальная ошибка будет сгенерирована в следующих случаях:
- нарушение совместимости сигнатур (кол-во аргументов, контравариантность аргументов, ковариантность возвращаемого типа),
- несовпадение статичности методов.
Также данный RFC разрешает использовать
abstract private function
, но только в трейтах, так как трейт имеет доступ к приватным методам использующего его класса. В PHP 7 такой код генерирует фатальную ошибку.Будьте внимательны, RFC, очевидно, нарушает обратную совместимость. Однако соблюдать сигнатуру при имплементации абстрактного метода вполне логично, поэтому скорее всего ваш код уже совместим с PHP 8 в этом аспекте.
@vudaltsov | https://twitter.com/vudaltsov
3v4l.org
Online PHP editor | output for rql2S
Run your php code online; get statistics, vld output and compare output from all versions.
Также единогласно принято предложение об объектной альтернативе для token_get_all().
В PHP 8 вместо
Кроме того, класс
@vudaltsov | https://twitter.com/vudaltsov
В PHP 8 вместо
foreach (token_get_all($code) as $token) {можно будет писать
if (is_string($token)) {
// одиночный символ, например, ;
continue;
}
[$pos, $text, $line] = $token;
}
foreach (PhpToken::getAll($code) as $token) {При прочих равных второй вариант потребует меньше памяти и времени. Это значит, что различные парсеры, например,
$token->id;
$token->text;
$token->line;
$token->pos;
$token->is([T_CLASS, T_CONST]);
}
nikic/php-parser
, doctrine/annotations
или twig/twig
в будущем будут работать немного быстрее 😊Кроме того, класс
PhpToken
легко расширяется, статический метод getAll()
предусмотрительно возвращает static[]
.@vudaltsov | https://twitter.com/vudaltsov
SymfonyLive Online – сегодня, в 16:00 UTC, Fabien Potencier и Nicolas Grekas в прямом эфире покажут, как проходит опенсорс-работа над Symfony: просмотр и мердж пул-реквестов, ответы на комментарии, участие в дискуссиях вокруг RFC, выпуск релиза Symfony 5.0.6.
А уже завтра состоится большой онлайн PHP-митап.
А уже завтра состоится большой онлайн PHP-митап.
Ни дня без RFC от Никиты!
https://wiki.php.net/rfc/constructor_promotion
Предлагается добавить синтаксический сахар, который позволит объявлять свойства класса прямо в конструкторе. Так же как и в TypeScript.
Напомним, оставлять запятую в вызове можно начиная с PHP 7.3.
@vudaltsov | https://twitter.com/vudaltsov
https://wiki.php.net/rfc/constructor_promotion
Предлагается добавить синтаксический сахар, который позволит объявлять свойства класса прямо в конструкторе. Так же как и в TypeScript.
class Point {Остается открытым вопрос: стоит ли разрешить оставлять запятую после последнего параметра в сигнатуре функции?
public function __construct(
public float $x = 0.0,
public float $y = 0.0,
public float $z = 0.0
) {}
}
Напомним, оставлять запятую в вызове можно начиная с PHP 7.3.
@vudaltsov | https://twitter.com/vudaltsov
Enum в PHP
Тип Enum – одна из самых желанных возможностей в PHP. Есть имитации типа clabs/php-enum, spatie/enum или dbalabka/php-enumeration. Черновику RFC https://wiki.php.net/rfc/enum уже пять лет и есть реализация в Hack. И тем не менее, над тем, чтобы добавить наконец-то фичу в PHP всё ещё никто не работает.
В JetBrains, в рамках традиционной программы летней стажировки, есть две вакансии в команде PhpStorm.
Одна по Автоматизация тестирования рефакторингов для PhpStorm, а вот вторая — First-class enum support in PHP предполагает работу непосредственно под руководством Никиты Попова над реализацией Enum в PHP!
Если у вас есть знакомые студенты (Москва/Питер), которым может быть интересно — поделитесь с ними, пожалуйста, ссылкой (подача заявок до понедельника).
Даешь Enum в PHP!
Тип Enum – одна из самых желанных возможностей в PHP. Есть имитации типа clabs/php-enum, spatie/enum или dbalabka/php-enumeration. Черновику RFC https://wiki.php.net/rfc/enum уже пять лет и есть реализация в Hack. И тем не менее, над тем, чтобы добавить наконец-то фичу в PHP всё ещё никто не работает.
В JetBrains, в рамках традиционной программы летней стажировки, есть две вакансии в команде PhpStorm.
Одна по Автоматизация тестирования рефакторингов для PhpStorm, а вот вторая — First-class enum support in PHP предполагает работу непосредственно под руководством Никиты Попова над реализацией Enum в PHP!
Если у вас есть знакомые студенты (Москва/Питер), которым может быть интересно — поделитесь с ними, пожалуйста, ссылкой (подача заявок до понедельника).
Даешь Enum в PHP!
PHP-Дайджест № 177
Расписание релиза PHP 8, анализ эргономики объектов в PHP и 5 свежих RFC из PHP Internals, немного полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/495838/
Расписание релиза PHP 8, анализ эргономики объектов в PHP и 5 свежих RFC из PHP Internals, немного полезных инструментов, видео, подкасты и многое другое.
https://habr.com/p/495838/
Habr
PHP-Дайджест № 177 (23 марта – 6 апреля 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: расписание релиза PHP 8, анализ эргономики объектов в PHP и 5 свежих RFC из PHP Internals, немного полезных инструментов, видео,...