Статистика вчерашнего дня.
Основной репозиторий Symfony:
56 тикетов закрыто (https://bit.ly/2I1iy1e)
42 пулл-реквеста мерджено (https://bit.ly/2Vx1Av2)
Документация:
26 тикетов закрыто (https://bit.ly/2G6Mnve)
21 пулл-реквест смерджен (https://bit.ly/2YVmEx9)
Diversity:
8 тикетов закрыто (https://bit.ly/2D2QK8H)
API Platform:
10 пулл-реквестов смерджено (https://bit.ly/2I5rhiU , https://bit.ly/2IdLaUq)
Чуть позже возьму интервью у Бернарда 😅
Всем хороших выходных, а нам — продуктивного кодинга!
Основной репозиторий Symfony:
56 тикетов закрыто (https://bit.ly/2I1iy1e)
42 пулл-реквеста мерджено (https://bit.ly/2Vx1Av2)
Документация:
26 тикетов закрыто (https://bit.ly/2G6Mnve)
21 пулл-реквест смерджен (https://bit.ly/2YVmEx9)
Diversity:
8 тикетов закрыто (https://bit.ly/2D2QK8H)
API Platform:
10 пулл-реквестов смерджено (https://bit.ly/2I5rhiU , https://bit.ly/2IdLaUq)
Чуть позже возьму интервью у Бернарда 😅
Всем хороших выходных, а нам — продуктивного кодинга!
GitHub
Pull requests · symfony/symfony
The Symfony PHP framework. Contribute to symfony/symfony development by creating an account on GitHub.
Час назад Фабьен смерджил мой PR https://github.com/symfony/symfony/pull/30862
Суть его проста: выделить функционал твиговских функций
Допустим, у нас есть сущность
Важно, что
Суть его проста: выделить функционал твиговских функций
absolute_url() и relative_path в отдельный сервис HttpFoundation\UrlHelper. Его можно использовать при генерации ссылок на локальные ресурсы, что нередко требуется в API и при отправке писем.Допустим, у нас есть сущность
User@Entity с полем string $avatar = 'uploads/nadezhda.jpg'. После нормализации нам бы хотелось получить ['avatar' => 'https://website.ru/uploads/nadezhda.jpg']. Теперь это можно сделать одним вызовом $this->urlHelper->getAbsoluteUrl($user->avatar()).Важно, что
UrlHelper работает вне контекста запроса, например, в командах, так как при пустом RequestStack он берет данные из RequestContext. Подробнее о том, как настроить RequestContext, можно прочитать здесь: https://symfony.com/doc/current/console/request_context.html .GitHub
[HttpFoundation] Add AbsoluteUrlGeneratorInterface and RelativePathGeneratorInterface by vudaltsov · Pull Request #30862 · symfony/symfony
Q
A
Branch?
master
Bug fix?
no
New feature?
yes
BC breaks?
no
Deprecations?
yes
Tests pass?
yes
Fixed tickets
n/a
License
MIT
Doc PR
todo
I noticed that I need to generate ab...
A
Branch?
master
Bug fix?
no
New feature?
yes
BC breaks?
no
Deprecations?
yes
Tests pass?
yes
Fixed tickets
n/a
License
MIT
Doc PR
todo
I noticed that I need to generate ab...
👍1
Рассказал о хакатоне на пятиминутке PHP!
Подробно об организации, впечатлениях, коммуникации и моих достижениях.
https://5minphp.ru/episode50/
Подробно об организации, впечатлениях, коммуникации и моих достижениях.
https://5minphp.ru/episode50/
Пятиминутка PHP
Symfony Hackathon в Брюсселе глазами очевидца
6 и 7 апреля 2019 в Брюсселе прошел The Symfony and API Platform Hackathon. В этом выпуске подкаста, один из участников, Валентин Удальцов, делится своими впечатлениями, об орагнизации, о процессе …
И следом вторая часть с техническими подробностями совместно проделанной работы.
https://5minphp.ru/episode51/
Большое спасибо Петру за интервью, присоединяйтесь к пятиминутке в Телеграме @tg_5minphp, Твиттере https://twitter.com/5minphp и на сайте https://5minphp.ru/.
https://5minphp.ru/episode51/
Большое спасибо Петру за интервью, присоединяйтесь к пятиминутке в Телеграме @tg_5minphp, Твиттере https://twitter.com/5minphp и на сайте https://5minphp.ru/.
Пятиминутка PHP
Symfony Hackathon в деталях — issues и pull requests
Продолжаем рассказ про The Symfony and API Platform Hackathon, который проходил в Брюсселе 6 и 7 апреля 2019. В этом выпуске Валентин раскрывает технические подробности тех issues и pull requests, …
Получил свой первый бейдж уровня Hard ⭐⭐⭐
https://connect.symfony.com/badge/140/eu-fossa-hackathon-2019-contributor
https://connect.symfony.com/badge/140/eu-fossa-hackathon-2019-contributor
Кому интересно пообщаться со мной вживую и узнать, как контрибьютить в Symfony и зачем это делать, приглашаю проголосовать за мой митап на сайте конференции PHP Russia!
https://phprussia.ru/2019/meetups
Что вас ждет на митапе:
- рассказ об моем участии в международной конференции Symfony Con и закрытом хакатоне в Брюсселе,
- воркшоп по созданию пулл-реквестов в Symfony (о ветках, релизах, ребейзах, форс-пушах и ожидании ответа),
- культура общения в экосистеме Symfony (diversity),
- ответ на вопрос, как активность в открытых проектах PHP поможет лично вам.
https://phprussia.ru/2019/meetups
Что вас ждет на митапе:
- рассказ об моем участии в международной конференции Symfony Con и закрытом хакатоне в Брюсселе,
- воркшоп по созданию пулл-реквестов в Symfony (о ветках, релизах, ребейзах, форс-пушах и ожидании ответа),
- культура общения в экосистеме Symfony (diversity),
- ответ на вопрос, как активность в открытых проектах PHP поможет лично вам.
phprussia.ru
Крупнейшая конференция по PHP в России 2019: Митапы
Митапы на конференции.
Расписание PHP Russia 2019.pdf
567.8 KB
Опубликовано расписание PHP Russia 2019!
Мой митап «Как контрибьютить в Symfony и зачем это делать» пройдет 17 мая в 16:00 в зале S.
Мой митап «Как контрибьютить в Symfony и зачем это делать» пройдет 17 мая в 16:00 в зале S.
Мой второй PR с хакатона в новостях в числе других улучшений форм 🌋
https://symfony.com/blog/new-in-symfony-4-3-more-form-improvements
Также вчера увидела свет первая бета-версия Symfony 4.3.0 🚀
Полный спискок нововведений: https://symfony.com/blog/symfony-4-3-0-beta1-released
https://symfony.com/blog/new-in-symfony-4-3-more-form-improvements
Также вчера увидела свет первая бета-версия Symfony 4.3.0 🚀
Полный спискок нововведений: https://symfony.com/blog/symfony-4-3-0-beta1-released
Symfony
New in Symfony 4.3: More Form improvements (Symfony Blog)
Symfony 4.3 will include many new features to improve the Symfony Forms, such as row attributes, custom errors in data mappers and a better form debug command.
Сегодня наконец-то нашел нормальное объяснение, почему
Подробнее с примерами: https://github.com/ShittySoft/symfony-live-berlin-2018-doctrine-tutorial/pull/3#issuecomment-460441229.
На радостях заменил в проекте все приведения на
Почирикал с @ocramius (https://twitter.com/vudaltsov/status/1201511202205163520). Он сказал, что приведение идентификаторов к примитивам через
В итоге пришлось вернуть
Выводы:
- Psalm & ImplicitToStringCast — 👍🔥,
-
- функциональные тесты — 😘🎉.
__toString лучше не использовать. Приводя объект к строке при помощи (string), мы можем забыть обработать null и получим на выходе '' вместо null. То есть еще один потенциальный способ выстрелить в ногу 🦵🔫.Подробнее с примерами: https://github.com/ShittySoft/symfony-live-berlin-2018-doctrine-tutorial/pull/3#issuecomment-460441229.
На радостях заменил в проекте все приведения на
$vo->toString(), убрал <ImplicitToStringCast errorLevel="suppress"/> в psalm.xml и удалил все методы __toString. Ну и конечно же функциональные тесты красные 🔴. Потому что Doctrine не умеет в ValueObject идентификаторы 😡. Конкретно на этой строке https://github.com/doctrine/orm/blob/2.7/lib/Doctrine/ORM/UnitOfWork.php#L1521 выполняется неявное приведение к строке 🤯.Почирикал с @ocramius (https://twitter.com/vudaltsov/status/1201511202205163520). Он сказал, что приведение идентификаторов к примитивам через
Type::convertToDatabaseValue хорошая идея, но может значительно сказаться на производительности.В итоге пришлось вернуть
__toString() {Entity}Id классам.Выводы:
- Psalm & ImplicitToStringCast — 👍🔥,
-
__toString — 👎 (но будьте внимательны в местах взаимодействия с инфраструктурой),- функциональные тесты — 😘🎉.
GitHub
Value types/value objects - use clearly defined types for anything that would otherwise be a scalar or composition of scalars by…
This patch introduces value objects into the mix.
What we did is isolating these concepts into these specific well-defined data structures, which would otherwise be strings, and therefore prone to ...
What we did is isolating these concepts into these specific well-defined data structures, which would otherwise be strings, and therefore prone to ...
