PHP-BE1
311 subscribers
338 photos
11 videos
19 files
620 links
Канал по PHP, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
#advanced

Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
#library

Библиотека для реализации долгоживущих воркеров от Валентина Удальцова.

https://github.com/happy-inc-tech/worker
#advanced

Некоторые приемы асинхронного выполнения кода на PHP. В статьях показаны в основном олдускульные способы, не упоминаются amphp и reactphp, но есть и интересные возможности. Так, например, ларавел и симфони уже используют директиву fastcgi_finish_request, которая позволяет отдать ответ клиенту и после этого выполнить еще код.

https://proglib.io/w/fe2d0b56
#advanced #whyphp

Статья от любителя PHP. Возможно, добавит вам аргументы в копилку к вопросу о том, почему вы пишете на PHP.

https://medium.com/swlh/stop-saying-php-is-dead-9489ed7dc25e
#beginner #book

Напоминаем про полезный и актуальный онлайн ресурс по основам языка PHP. Уникальность этого материала состоит в соблюдении современных стандартов написания приложений на PHP и в большом охвате важных тем, как то composer, psr, фреймворки, тестирование и многих других.

https://phptherightway.com/
#framework_digest

Laravel:

1. В 9-ю версию одного из самых популярных и быстро меняющего версий развивающихся фреймворков предлагают добавить параллельный запуск тестов:
https://github.com/laravel/framework/pull/35778

Тесты должны стать быстрее. Если вам не терпится попробовать быстрые тесты уже сейчас, вы можете поставить ... Symfony. Это не совсем шутка, медленные тесты в Laravel связаны в основном с Eloquent, который не позволяет так просто замокать данные в тестах.

2. Один из недавно закрытых PR добавляет возможность запускать слушатели только после того, как текущая активная транзакция выполнится успешно: https://github.com/laravel/framework/pull/35434

Реализация странная, но возможность полезная.

3. Такой же PR есть и для очередей: https://github.com/laravel/framework/pull/35422

Аналогично предыдущему PR сообщения в очередь попадут только после завершения транзакции.

Symfony:

1. Планируется добавить транспорт для Kafka в symfony/messenger:
https://github.com/symfony/symfony/pull/39712

2. Еще один полезный PR в symfony/messenger, добавляющий RouterContextMiddleware, который позволит для асинхронных обработчиков получить доступ к возможностям роутера для генерации абсолютного урла, хоста и т.д, например, для генерации ссылки в письме: https://github.com/symfony/symfony/pull/39688

3. Интеграция компонента Notifier с MessageBus: https://github.com/symfony/symfony/pull/39353

4. Планируется добавить новый компонент Encryption: https://github.com/symfony/symfony/pull/39344. Компонент сделал Nyholm, так что, вероятнее всего, что он точно попадет в релиз одной из следующих версий фреймворка. К PR приложен подробный обзор, зачем нужен компонент и что использует, предлагаем ознакомиться.

5. Интересный спор на тему, нужно ли логаутить пользователя при смене его роли или нет: https://github.com/symfony/symfony/issues/39763

6. Ишьюс, автор которого предлагает добавить в Symfony компонент Scheduler: https://github.com/symfony/symfony/issues/39719. Пример реализации уже есть: https://github.com/Guikingone/symfony/tree/_component/scheduler/src/Symfony/Component/Scheduler. Аналогичный компонент давно существует в Laravel.
#library #middle

Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.

https://github.com/Roave/Dont
#advanced #hollywar


В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:

https://laravel-news.com/the-mighty-illuminate-request
#laravel

Продвинутые возможности роутинга в Laravel.

https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
#beginner

Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.

https://github.com/doganoo/PHPAlgorithms
Philosophy of Software Design.epub
703.9 KB
#advanced #book

Замечательная книга на тему разработки правильного ПО. В книге вы узнаете про сложность ПО и как ее контролировать, про модульность (что такое хороший модуль), какие бывают абстракции, что такое сокрытие информации и почему это важно, а также почему нейминг - одна из сложных и важных вещей в разработке программ с хорошим дизайном.
#laravel #junior

Роадмап для начинающих Laravel разработчиков от 2020-го года, но актуален также и для нынешнего.

https://raw.githubusercontent.com/Hasnayeen/laravel-developer-roadmap/master/images/roadmap.png