#advanced
Несколько советов по рефакторингу PHP кода.
https://christoph-rumpel.com/2020/8/refactoring-php
Несколько советов по рефакторингу PHP кода.
https://christoph-rumpel.com/2020/8/refactoring-php
Christoph-Rumpel
Refactoring PHP
I've been programming in PHP now for almost ten years, and if there is one thing I learned over this period, it's that readability and simplicity are the keys for maintainable and sustainable code. Every first attempt to write code should be about making…
#advanced
Если вы задумывались о том, что хотели бы поучаствовать в разработке опенсорс проекта, эта статья расскажет вам, как это делать правильно.
https://johnbraun.blog/posts/contributing-to-a-PHP-package
Если вы задумывались о том, что хотели бы поучаствовать в разработке опенсорс проекта, эта статья расскажет вам, как это делать правильно.
https://johnbraun.blog/posts/contributing-to-a-PHP-package
#video
5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
5 книг, которые должен прочитать каждый разработчик, по мнению Дейва Фарли, автора книги «Непрерывное развертывание ПО».
https://youtu.be/RfOYWeu5pGk
YouTube
5 Books That Can Change A Developer’s Career
What are the best software developer books? This is obviously a subjective question. The best books for a software engineer or developer are always going to be a personal choice, and vary by their interests and maybe the technology that they work in, but…
#testing
Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке
https://httpdump.app/.
Приложение, которое может помочь протестировать входящие http запросы: например, вебхуки. Написано на PHP, кстати. Можно посмотреть исходный код по ссылке
https://httpdump.app/.
#mustread
Большой пополняемый список знаний, в который включены теории, законы, принципы, паттерны разработки и многое другое, что однозначно будет полезно знать каждому разработчику.
https://github.com/dwmkerr/hacker-laws
Большой пополняемый список знаний, в который включены теории, законы, принципы, паттерны разработки и многое другое, что однозначно будет полезно знать каждому разработчику.
https://github.com/dwmkerr/hacker-laws
GitHub
GitHub - dwmkerr/hacker-laws: 🧠 Laws, Theories, Principles and Patterns for developers and technologists.
🧠 Laws, Theories, Principles and Patterns for developers and technologists. - dwmkerr/hacker-laws
#advanced
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
Анна Филина рассуждает про null как о возвращаемом типе.
https://afilina.com/learn/nulls/return-types
#library
Библиотека для реализации долгоживущих воркеров от Валентина Удальцова.
https://github.com/happy-inc-tech/worker
Библиотека для реализации долгоживущих воркеров от Валентина Удальцова.
https://github.com/happy-inc-tech/worker
GitHub
GitHub - happy-inc-tech/worker
Contribute to happy-inc-tech/worker development by creating an account on GitHub.
#advanced
Некоторые приемы асинхронного выполнения кода на PHP. В статьях показаны в основном олдускульные способы, не упоминаются amphp и reactphp, но есть и интересные возможности. Так, например, ларавел и симфони уже используют директиву fastcgi_finish_request, которая позволяет отдать ответ клиенту и после этого выполнить еще код.
https://proglib.io/w/fe2d0b56
Некоторые приемы асинхронного выполнения кода на 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
Статья от любителя PHP. Возможно, добавит вам аргументы в копилку к вопросу о том, почему вы пишете на PHP.
https://medium.com/swlh/stop-saying-php-is-dead-9489ed7dc25e
Medium
Stop Saying PHP Is Dead.
It isn’t. PHP is not dead. It isn’t dying and it isn’t reaching “end-of-life”.
#beginner #book
Напоминаем про полезный и актуальный онлайн ресурс по основам языка PHP. Уникальность этого материала состоит в соблюдении современных стандартов написания приложений на PHP и в большом охвате важных тем, как то composer, psr, фреймворки, тестирование и многих других.
https://phptherightway.com/
Напоминаем про полезный и актуальный онлайн ресурс по основам языка PHP. Уникальность этого материала состоит в соблюдении современных стандартов написания приложений на PHP и в большом охвате важных тем, как то composer, psr, фреймворки, тестирование и многих других.
https://phptherightway.com/
#advanced #laravel
Стейт-машина для моделей Eloquent'а.
https://github.com/asantibanez/laravel-eloquent-state-machines
Стейт-машина для моделей Eloquent'а.
https://github.com/asantibanez/laravel-eloquent-state-machines
GitHub
GitHub - asantibanez/laravel-eloquent-state-machines: State Machines for your Laravel Eloquent models
State Machines for your Laravel Eloquent models. Contribute to asantibanez/laravel-eloquent-state-machines development by creating an account on GitHub.
#advanced
Используем CORS для реализации защиты от CSRF.
https://www.mixmax.com/engineering/modern-csrf/
Используем CORS для реализации защиты от CSRF.
https://www.mixmax.com/engineering/modern-csrf/
Mixmax
Using CORS policies to implement CSRF protection | Mixmax
Cross-Site Request Forgery (CSRF) allows an attacker to make unauthorized requests on behalf of a user. We tackle CSRFs while allowing a subset of Cross-Origin requests.
#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.
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.
GitHub
[9.x] Adds support for Parallel Testing by nunomaduro · Pull Request #35778 · laravel/framework
This pull request adds support for Parallel Testing in Laravel 9.
Docs: https://github.com/laravel/docs/pull/6737/files.
How you can help
You can help testing this pull request by running tests in ...
Docs: https://github.com/laravel/docs/pull/6737/files.
How you can help
You can help testing this pull request by running tests in ...
#advanced
В статье автор рассказывает про один из самых часто используемых им паттернов проектирования — декоратор.
https://backendtea.com/post/every-day-design-pattern-decorator/
В статье автор рассказывает про один из самых часто используемых им паттернов проектирования — декоратор.
https://backendtea.com/post/every-day-design-pattern-decorator/
BackEndTea
Every day design pattern: Decorator | BackEndTea
This is the first post in a series of design patterns i use (almost) daily. You will find the other posts at the bottom of this article.
The Decorator pattern On wikipedia, the decorator pattern is described like so:
In object-oriented programming, the decorator…
The Decorator pattern On wikipedia, the decorator pattern is described like so:
In object-oriented programming, the decorator…
#library #middle
Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.
https://github.com/Roave/Dont
Ocramius не только талантливый разработчик (автор Doctrine и ProxyManager), но и веселый парень, он вместе с roave, где сейчас работает, сделали пакет Dont: это простая библиотека с набором трейтов, которая запрещает использовать магические методы. Пожалуй, это лучшее применение трейтов из всех, что можно найти.
https://github.com/Roave/Dont
GitHub
GitHub - Roave/Dont: :no_entry_sign: Small set of defensive programming utilities/traits for PHP
:no_entry_sign: Small set of defensive programming utilities/traits for PHP - GitHub - Roave/Dont: :no_entry_sign: Small set of defensive programming utilities/traits for PHP
#advanced #hollywar
В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:
https://laravel-news.com/the-mighty-illuminate-request
В Symfony есть замечательный компонент Request, который предоставляет правильный доступ к данным запроса. В Laravel же тоже есть такой компонент, который расширяет компонент Symfony, добавляя пару удачных методов и ворох ненужных возможностей (например, макросы). Наиболее полный обзор компонента можно увидеть в статье:
https://laravel-news.com/the-mighty-illuminate-request
Laravel News
The Mighty Illuminate Request Object
Explore some of the sugar and useful methods that Laravel provides via the Illuminate Request object.
#video
PHPp дайджест в формате видео. Примечателен он тем, что в нем Антон Титов, автор Road Runner, рассказывает про temporal.io, сервис для написания сложных воркфлоу, и их php sdk.
https://youtu.be/3xhOWG8RzEY
PHPp дайджест в формате видео. Примечателен он тем, что в нем Антон Титов, автор Road Runner, рассказывает про temporal.io, сервис для написания сложных воркфлоу, и их php sdk.
https://youtu.be/3xhOWG8RzEY
YouTube
PHP Digest Live #197. Обзор новостей PHP 8.1, Антон Титов про temporal.io — инструмент Uber в PHP
Обзор последних новостей и инструментов из мира PHP. В гостях Антон Титов с рассказом про temporal.io, инструмент, на котором построена архитектура Uber. А также результаты розыгрыша и новый конкурс со слониками.
PHP Дайджест № 197 https://habr.com/ru/post/539034/…
PHP Дайджест № 197 https://habr.com/ru/post/539034/…
#laravel
Продвинутые возможности роутинга в Laravel.
https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
Продвинутые возможности роутинга в Laravel.
https://quickadminpanel.com/blog/laravel-routing-8-advanced-tips-languages-apis-groups-validation/
#beginner
Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.
https://github.com/doganoo/PHPAlgorithms
Сборник алгоритмов, написанных на PHP. Хоть пхпшнику очень редко приходится иметь дело с алгоритмами и сложными вычислениями, знать и уметь работать с алгоритмами важно для развития и поддержания кругозора, а ещё потому, что это основы CS.
https://github.com/doganoo/PHPAlgorithms
GitHub
GitHub - doganoo/PHPAlgorithms: A collection of common algorithms implemented in PHP. The collection is based on "Cracking the…
A collection of common algorithms implemented in PHP. The collection is based on "Cracking the Coding Interview" by Gayle Laakmann McDowell - doganoo/PHPAlgorithms
#advanced #laravel
Настраиваем CI процесс для Laravel приложений с помощью GitHub Actions.
https://dudi.dev/laravel-continuous-integration-github-actions/
Настраиваем CI процесс для Laravel приложений с помощью GitHub Actions.
https://dudi.dev/laravel-continuous-integration-github-actions/
dudi.dev
Continuous integration(CI) for laravel using github actions | dudi.dev
Learn how to create continuous integration(CI) build pipeline for your laravel applications using github actions.