PHP Digest
Union Types v2 https://github.com/nikic/php-rfcs/blob/union-types/rfcs/0000-union-types-v2.md Никита Попов разразился ещё одним монументальным RFC. Предлагается ввести объединённые типы – это значит, что переменная может принимать один из перечисленных…
C результатом 61 голосов против 5 предложение принято. В PHP 8.0 нас ждут объединённые типы.
Чёрная магия PHP
https://github.com/lisachenko/z-engine
Как замокать финальный класс или переопределить финальный метод? Ну допустим, для этого есть badoo/soft-mocks. А как насчёт добавить интерфейс к существующему классу в рантайме? Или, например, изменять тип объекта.
Новая библиотека от Александра Лисаченко потенциально позволяет делать вообще всё что угодно.
В PHP 7.4 добавлена новая возможность – FFI, которая позволяет подгружать сишные модули (.dll or .so), и вызывать функции из них или использовать структуры данных из C на чистом PHP.
Библиотека Z-Engine использует FFI, чтобы получить доступ к внутренним структурам самого PHP! Z-Engine читает нативные структуры PHP, например, zend_class_entry, zval, и подобные и может изменять их в рантайме.
https://github.com/lisachenko/z-engine
Как замокать финальный класс или переопределить финальный метод? Ну допустим, для этого есть badoo/soft-mocks. А как насчёт добавить интерфейс к существующему классу в рантайме? Или, например, изменять тип объекта.
Новая библиотека от Александра Лисаченко потенциально позволяет делать вообще всё что угодно.
В PHP 7.4 добавлена новая возможность – FFI, которая позволяет подгружать сишные модули (.dll or .so), и вызывать функции из них или использовать структуры данных из C на чистом PHP.
Библиотека Z-Engine использует FFI, чтобы получить доступ к внутренним структурам самого PHP! Z-Engine читает нативные структуры PHP, например, zend_class_entry, zval, и подобные и может изменять их в рантайме.
// Сделаем абстрактный класс обычнымОсторожно! Библиотека предоставляет практически неограниченный доступ к памяти самого PHP и работает со структурами на низком уровне. Поэтому вполне возможны сегфолты, утечки памяти и другие неприятные последствия. Так что, только для тестов.
$refClass = new ReflectionClass(TestClass::class);
$refClass->setAbstract(false);
assertFalse($refClass->isAbstract());
$instance = new TestClass();
assertInstanceOf(TestClass::class, $instance);
GitHub
GitHub - lisachenko/z-engine: :zap: PHP Engine Direct API
:zap: PHP Engine Direct API. Contribute to lisachenko/z-engine development by creating an account on GitHub.
PHP-Дайджест № 168
PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция полезных инструментов, митапы, видеозаписи, подкасты и многое другое!
https://habr.com/p/477318/
PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция полезных инструментов, митапы, видеозаписи, подкасты и многое другое!
https://habr.com/p/477318/
Habr
PHP-Дайджест № 168 (5 – 25 ноября 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция...
PHP 7.4
Вышла в свет новая версия интерпретатора PHP!
https://www.php.net/releases/7_4_0.php
Среди заметных изменений:
• Типизированные свойства
• Стрелочные функции
• Предзагрузка
• FFI
• Распаковка в массивах
• Разделитель для числовых литералов
• Слабые ссылки
• Возможность бросать исключения в __toString()
Быстро посмотреть новые фичи можно в руководстве по миграции https://www.php.net/manual/en/migration74.new-features.php
Полный список изменений: https://github.com/php/php-src/blob/php-7.4.0/UPGRADING
Вышла в свет новая версия интерпретатора PHP!
https://www.php.net/releases/7_4_0.php
Среди заметных изменений:
• Типизированные свойства
• Стрелочные функции
• Предзагрузка
• FFI
• Распаковка в массивах
• Разделитель для числовых литералов
• Слабые ссылки
• Возможность бросать исключения в __toString()
Быстро посмотреть новые фичи можно в руководстве по миграции https://www.php.net/manual/en/migration74.new-features.php
Полный список изменений: https://github.com/php/php-src/blob/php-7.4.0/UPGRADING
Вышел PhpStorm 2019.3
https://habr.com/ru/company/JetBrains/blog/478030/
Вслед за релизом PHP 7.4, вчера выпустили третий мажорный релиз PhpStorm в этом году. Возможно вы уже даже успели обновиться и посмотреть, что нового. Но если нет, то всё самое важное можно глянуть в коротком видеоролике (англ):
https://www.youtube.com/watch?v=h9KGsD87t_M (поправил ссылку)
А подробный разбор прям всех изменений смотрите в хабрапосте.
https://habr.com/ru/company/JetBrains/blog/478030/
Вслед за релизом PHP 7.4, вчера выпустили третий мажорный релиз PhpStorm в этом году. Возможно вы уже даже успели обновиться и посмотреть, что нового. Но если нет, то всё самое важное можно глянуть в коротком видеоролике (англ):
https://www.youtube.com/watch?v=h9KGsD87t_M (поправил ссылку)
А подробный разбор прям всех изменений смотрите в хабрапосте.
Хабр
PhpStorm 2019.3: поддержка PHP 7.4, PSR-12, WSL, MongoDB и многое другое
Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году! Под катом — подробный разбор всех заметных изменений и новых возможностей. Осторожно — очень много картинок. Скачать...
PHP-Дайджест № 169
PHP 7.4, PhpStorm 2019.3, InfectionPHP и другие релизы, статистика версий PHP, об использовании FFI, видео с прошедших конференций и митапов, порция полезных инструментов, и многое другое.
https://habr.com/ru/post/479306/
PHP 7.4, PhpStorm 2019.3, InfectionPHP и другие релизы, статистика версий PHP, об использовании FFI, видео с прошедших конференций и митапов, порция полезных инструментов, и многое другое.
https://habr.com/ru/post/479306/
Хабр
PHP-Дайджест № 169 (26 ноября – 9 декабря 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4, PhpStorm 2019.3, InfectionPHP и другие релизы, статистика версий PHP, об использовании FFI, видео с прошедших конференций и...
Как выбрать файлы для предзагрузки в PHP 7.4
https://github.com/DarkGhostHunter/Preloader
Многие ожидали, что поддержку предзагрузки сделают прям в Composer. Но, судя по всему, в ближайшее время это не будет реализовано.
Для Symfony поддержку уже выкатили сами https://symfony.com/blog/new-in-symfony-4-4-preloading-symfony-applications-in-php-7-4
Для Laravel обещают, но из-за использования алиасов пока будут проблемы.
А как быть с произвольным приложением? Можно попробовать загрузить все файлы. Если не нарвётесь на segfault и ряд других нюансов (подробнее https://habr.com/ru/company/badoo/blog/472528/), то это сработает и должно дать прирост. Но эффективнее загружать не все классы, а только самые часто используемые. И вот вопрос как узнать какие это?
Появился вот такой инструмент:
https://github.com/DarkGhostHunter/Preloader
Он предлагает сначала собрать статистику по используемым классам из самого опкэша во время запусков приложения. А потом по этой статистике уже сгенерировать preloader.php скрипт, который подгрузит нужные классы в опкэш. Звучит как годная идея, надо пробовать.
https://github.com/DarkGhostHunter/Preloader
Многие ожидали, что поддержку предзагрузки сделают прям в Composer. Но, судя по всему, в ближайшее время это не будет реализовано.
Для Symfony поддержку уже выкатили сами https://symfony.com/blog/new-in-symfony-4-4-preloading-symfony-applications-in-php-7-4
Для Laravel обещают, но из-за использования алиасов пока будут проблемы.
А как быть с произвольным приложением? Можно попробовать загрузить все файлы. Если не нарвётесь на segfault и ряд других нюансов (подробнее https://habr.com/ru/company/badoo/blog/472528/), то это сработает и должно дать прирост. Но эффективнее загружать не все классы, а только самые часто используемые. И вот вопрос как узнать какие это?
Появился вот такой инструмент:
https://github.com/DarkGhostHunter/Preloader
Он предлагает сначала собрать статистику по используемым классам из самого опкэша во время запусков приложения. А потом по этой статистике уже сгенерировать preloader.php скрипт, который подгрузит нужные классы в опкэш. Звучит как годная идея, надо пробовать.
GitHub
GitHub - DarkGhostHunter/Preloader: Preloader helper to create a PHP-ready preload script from Opcache.
Preloader helper to create a PHP-ready preload script from Opcache. - DarkGhostHunter/Preloader
Если этим субботним утром вы думаете что бы посмотреть, то вот трансляция митапа в Казани https://www.youtube.com/watch?v=zZTv7HMxKXI
В программе аж 6 докладов.
Кстати, в списке мероприятия на декабрь в последнем выпуске дайджеста не было митапа SymСode в Питере. Он пройдёт 18 декабря в офисе JetBrains https://www.meetup.com/ru-RU/symcode/events/267106695/
В программе аж 6 докладов.
Кстати, в списке мероприятия на декабрь в последнем выпуске дайджеста не было митапа SymСode в Питере. Он пройдёт 18 декабря в офисе JetBrains https://www.meetup.com/ru-RU/symcode/events/267106695/
YouTube
Большой казанский PHP-митап
Присоединяйся к чату казанского сообщества https://t.me/beerphp_kazan.
Подробное описание докладов: https://leader-id.ru/event/29485/
Слайды: https://yadi.sk/i/NnwxF_smDZ7tLg
Тайминг и список выступлений 14 декабря 2019 (спасибо Mike Alexeeev):
1. 3:43…
Подробное описание докладов: https://leader-id.ru/event/29485/
Слайды: https://yadi.sk/i/NnwxF_smDZ7tLg
Тайминг и список выступлений 14 декабря 2019 (спасибо Mike Alexeeev):
1. 3:43…
Пока делал видео об обновлении на PHP 7.4 с помощью PhpStorm, Никита обратил моё внимание на то, что сеттеры работают медленнее, чем присвоение свойствам напрямую. Пришлось сделать микробенчмарк. Не верить же Никите на слово?!
https://gist.github.com/pronskiy/492a0590d0fd3cfa0a02a2d7f908c494
⚠️ Бежать и выкидывать сеттеры только из-за перфоманса смысла не имеет в 99% случаев.
https://gist.github.com/pronskiy/492a0590d0fd3cfa0a02a2d7f908c494
Set typed public property: 1.408833026886sЕсли сеттер тривиальный, то с типизированными свойствами в нём мало смысла. Поэтому в видео есть руководство, как сделать квик-фикс для PhpStorm с помощью SSR, чтоб заменять сеттеры на лету там, где необходимо.
Set via setter (no type check): 3.0818917751312s
Set private property via setter: 3.1216759681702s
Set private property via magic: 20.88130402565s
⚠️ Бежать и выкидывать сеттеры только из-за перфоманса смысла не имеет в 99% случаев.
YouTube
How to upgrade to PHP 7.4 with PhpStorm
A few nice tips and tricks on how to update your codebase to PHP 7.4, with some cool bonuses to boot.
https://jetbrains.com/phpstorm/
0:32 Why update? 1. Security
0:50 Why update? 2. Performance.
1:12 Why update? 3. Сleaner code.
1:28 Install PHP 7.4 from…
https://jetbrains.com/phpstorm/
0:32 Why update? 1. Security
0:50 Why update? 2. Performance.
1:12 Why update? 3. Сleaner code.
1:28 Install PHP 7.4 from…
PHP-Дайджест № 170
CakePHP 4, Codeception 4, Phalcon 4 и другие релизы, порция полезных инструментов, подкасты, видео с прошедших митапов, и многое другое!
https://habr.com/p/481564/
CakePHP 4, Codeception 4, Phalcon 4 и другие релизы, порция полезных инструментов, подкасты, видео с прошедших митапов, и многое другое!
https://habr.com/p/481564/
Habr
PHP-Дайджест № 170 (9 – 23 декабря 2019)
Свежая подборка со ссылками на новости и материалы. В выпуске: CakePHP 4, Codeception 4, Phalcon 4 и другие релизы, порция полезных инструментов, подкасты, видео с прошедших митапов, и многое...
PHP-Дайджест № 171
4 свежих RFC из PHP Internals и интересные пул-реквесты в PHP 8, порция полезных инструментов, подкасты, стримы и многое другое!
https://habr.com/p/483684/
4 свежих RFC из PHP Internals и интересные пул-реквесты в PHP 8, порция полезных инструментов, подкасты, стримы и многое другое!
https://habr.com/p/483684/
Habr
PHP-Дайджест № 171 (1 – 13 января 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: 4 свежих RFC из PHP Internals и интересные пул-реквесты в PHP 8, порция полезных инструментов, подкасты, стримы и многое другое....
PHP-Дайджест № 172
PHP 7.4.2 и другие релизы, Stringable RFC, обзор PHP 8, порция полезных инструментов, 4 ближайших митапа, видеозаписи с конференций, стримы и многое другое!
https://habr.com/p/485592/
PHP 7.4.2 и другие релизы, Stringable RFC, обзор PHP 8, порция полезных инструментов, 4 ближайших митапа, видеозаписи с конференций, стримы и многое другое!
https://habr.com/p/485592/
Habr
PHP-Дайджест № 172 (14 – 27 января 2020)
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.2 и другие релизы, Stringable RFC, обзор PHP 8, порция полезных инструментов, 4 ближайших митапа, видеозаписи с конференций,...
Дженерики в 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-кодом. С эт...