#advanced #symfony
В последних версиях Symfony обновился компонент Security и, по словам, мейнтейнтеров стал проще в конфигурации и использовании. Так ли это – разбираемся в статье:
https://smaine-milianni.medium.com/the-new-features-of-the-symfony-security-component-from-5-2-8eff0d2487ce
В последних версиях Symfony обновился компонент Security и, по словам, мейнтейнтеров стал проще в конфигурации и использовании. Так ли это – разбираемся в статье:
https://smaine-milianni.medium.com/the-new-features-of-the-symfony-security-component-from-5-2-8eff0d2487ce
Medium
The new features of the Symfony Security component from 5.2
(Retrouvez cet article en 🇫🇷 sur le blog de Yousign)
#advanced #infrastructure
Библиотека для работы с back-off стратегиями. Если кратко, back-off – это откладывание проблемных запросов (http, запросов к базе и так далее) на некоторое время, чтобы не ронять ни свой, ни чужой сервера.
https://github.com/EventSaucePHP/BackOff
Библиотека для работы с back-off стратегиями. Если кратко, back-off – это откладывание проблемных запросов (http, запросов к базе и так далее) на некоторое время, чтобы не ронять ни свой, ни чужой сервера.
https://github.com/EventSaucePHP/BackOff
GitHub
GitHub - EventSaucePHP/BackOff: A back-off strategy interface for retrying operations.
A back-off strategy interface for retrying operations. - GitHub - EventSaucePHP/BackOff: A back-off strategy interface for retrying operations.
#advanced #video
Ранее Антон Титов, автор RoadRunner, уже проводил воркшоп, в котором демонстрировал sdk на php для взаимодействия с temporal.io. В этом видео он покажет практические примеры работы с temporal.
https://www.youtube.com/watch?v=upL8o-OXYEc
Ранее Антон Титов, автор RoadRunner, уже проводил воркшоп, в котором демонстрировал sdk на php для взаимодействия с temporal.io. В этом видео он покажет практические примеры работы с temporal.
https://www.youtube.com/watch?v=upL8o-OXYEc
YouTube
Оркестрация и закон Мерфи: обрабатываем ошибки-бизнес процессов - Антон Титов (Spiral Scout)
Вторая часть воркшопа по работе с Workflows и Temporal
На нем мы углубимся в инструментарий Temporal и посмотрим на практике, как обрабатывать сложные сценарии с ошибками.
В этот раз будут рассмотрены следующие темы:
- Coroutines, signals, queries
- Retry…
На нем мы углубимся в инструментарий Temporal и посмотрим на практике, как обрабатывать сложные сценарии с ошибками.
В этот раз будут рассмотрены следующие темы:
- Coroutines, signals, queries
- Retry…
#advanced
Back off – это паттерн разработки программного обеспечения, описывающий взаимодействие программных компонентов в случае недоступности вызываемого сервиса или различных ошибок. Back off предполагает, что вызывающая процедура будет откладывать свою работу на некоторое время, чтобы дать другому сервису время на восстановление ресурсов. Подробнее про определение и реализацию на PHP можно почитать в блоге Frank De Jonge, автора популярной библиотеки Flysystem.
https://blog.frankdejonge.nl/back-the-func-off/
Back off – это паттерн разработки программного обеспечения, описывающий взаимодействие программных компонентов в случае недоступности вызываемого сервиса или различных ошибок. Back off предполагает, что вызывающая процедура будет откладывать свою работу на некоторое время, чтобы дать другому сервису время на восстановление ресурсов. Подробнее про определение и реализацию на PHP можно почитать в блоге Frank De Jonge, автора популярной библиотеки Flysystem.
https://blog.frankdejonge.nl/back-the-func-off/
Frank on Software
Back the func off, this is my abstraction!
How to deal with failures when designing abstractions.
#book #advanced
Приложение с API имеют ряд сложностей по развитию по сравнению с обычными веб-приложениями: вы должны соблюдать контракт, не должны ломать обратную совместимость в минорных и патч версиях, должны долгое время жить с легаси и многое другое. Как не запутаться во всем этом и выбирать по большей части лучшие решения – расскажет данная книга.
Приложение с API имеют ряд сложностей по развитию по сравнению с обычными веб-приложениями: вы должны соблюдать контракт, не должны ломать обратную совместимость в минорных и патч версиях, должны долгое время жить с легаси и многое другое. Как не запутаться во всем этом и выбирать по большей части лучшие решения – расскажет данная книга.
#junior
Большой туториал с подробностями про куки: зачем и как использовать, когда не надо использовать, какие есть проблемы с безопасностью, как использовать куки между поддоменами, XSS и многое другое.
https://blog.webf.zone/ultimate-guide-to-http-cookies-2aa3e083dbae
Большой туториал с подробностями про куки: зачем и как использовать, когда не надо использовать, какие есть проблемы с безопасностью, как использовать куки между поддоменами, XSS и многое другое.
https://blog.webf.zone/ultimate-guide-to-http-cookies-2aa3e083dbae
Medium
Ultimate Guide to HTTP Cookies
What every web developer needs to know about HTTP Cookies!!!
#symfony
Разработчики Symfony в очередной раз раньше остальных фреймворков внедряют фичи будущих версий PHP в ядро фреймворка. На этот раз они внедрили поддержку Enum (перечисления), который будет доступен начиная с PHP 8.1.
https://github.com/symfony/symfony/pull/40857
Разработчики Symfony в очередной раз раньше остальных фреймворков внедряют фичи будущих версий PHP в ядро фреймворка. На этот раз они внедрили поддержку Enum (перечисления), который будет доступен начиная с PHP 8.1.
https://github.com/symfony/symfony/pull/40857
GitHub
[DependencyInjection] Add support of PHP enumerations by alexandre-daubois · Pull Request #40857 · symfony/symfony
Q
A
Branch?
4.4
Bug fix?
yes (new PHP version compatibility)
New feature?
no
Deprecations?
no
Tickets
Fix #40233
License
MIT
Doc PR
(see below)
Added support of enums using !php/...
A
Branch?
4.4
Bug fix?
yes (new PHP version compatibility)
New feature?
no
Deprecations?
no
Tickets
Fix #40233
License
MIT
Doc PR
(see below)
Added support of enums using !php/...
#advanced #laravel
Symfony не всегда является хорошим примером, как нужно делать. Например, автовайринг зависимостей через свойства, помеченными аннотацией @required, — это плохая фича. Будем надеяться, авторы Laravel не одобрят данный PR, добавляющий аналогичную возможность в контейнер фреймворка.
https://github.com/laravel/framework/pull/37331
Symfony не всегда является хорошим примером, как нужно делать. Например, автовайринг зависимостей через свойства, помеченными аннотацией @required, — это плохая фича. Будем надеяться, авторы Laravel не одобрят данный PR, добавляющий аналогичную возможность в контейнер фреймворка.
https://github.com/laravel/framework/pull/37331
GitHub
[9.x] Autowire public typed properties by ahmedash95 · Pull Request #37331 · laravel/framework
Hello,
This POC PR adds the Autowiring of public typed properties in PHP 7.4. it's inspired by Symfony 5.1.
It works only for public properties
doc block /** @required */ is required to tell ...
This POC PR adds the Autowiring of public typed properties in PHP 7.4. it's inspired by Symfony 5.1.
It works only for public properties
doc block /** @required */ is required to tell ...
#advanced
Библиотека для создания cron задач без модификации crontab.
https://github.com/jobbyphp/jobby
Библиотека для создания cron задач без модификации crontab.
https://github.com/jobbyphp/jobby
GitHub
GitHub - jobbyphp/jobby: Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more.
Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more. - jobbyphp/jobby
#advanced #nginx
Подробный справочник по nginx с примерами конфигураций и объяснением: что, зачем и когда использовать. Бросайте свой Apache и используйте современные инструменты.
https://www.freecodecamp.org/news/the-nginx-handbook/
Подробный справочник по nginx с примерами конфигураций и объяснением: что, зачем и когда использовать. Бросайте свой Apache и используйте современные инструменты.
https://www.freecodecamp.org/news/the-nginx-handbook/
freeCodeCamp.org
The NGINX Handbook – Learn NGINX for Beginners
A young Russian developer named Igor Sysoev was frustrated by older web servers' inability to handle more than 10 thousand concurrent requests. This is a problem referred to as the C10k problem. As an answer to this, he started working on a new web s...
#advanced #rabbitmq
О RabbitMQ в микросервисной архитектуре.
https://www.cloudamqp.com/blog/why-use-rabbitmq-in-a-microservice-architecture.html
О RabbitMQ в микросервисной архитектуре.
https://www.cloudamqp.com/blog/why-use-rabbitmq-in-a-microservice-architecture.html
CloudAMQP
Microservices - why use RabbitMQ? - CloudAMQP
Today’s monolithic systems are being replaced at a rapid pace by microservice architecture. To understand why this is the case requires a closer look into the core of message queuing and the benefits of using RabbitMQ as a message broker in a microservice…
#advanced #phpfpm
Подробный материал о том, что такое php-fpm, зачем он нужен и как оптимизировать его работу.
https://geekflare.com/php-fpm-optimization/
Подробный материал о том, что такое php-fpm, зачем он нужен и как оптимизировать его работу.
https://geekflare.com/php-fpm-optimization/
Geekflare
Optimizing PHP-FPM for High Performance
PHP is everywhere and is arguably the language most widely deployed on the Internet Web. However, it's not exactly known for its high-performance
#junior #rest
Исчерпывающая статья на тему того, что такое REST. Вы узнаете многое про клиент-серверное общение, заголовки, http и посмотрите примеры реализаций.
https://www.codecademy.com/articles/what-is-rest
Исчерпывающая статья на тему того, что такое REST. Вы узнаете многое про клиент-серверное общение, заголовки, http и посмотрите примеры реализаций.
https://www.codecademy.com/articles/what-is-rest
Codecademy
What is REST?
Learn about the REST (Representational State Transfer) paradigm and how rest architecture streamlines communication between web components.
#advanced #laravel
Большой туториал по laravel tinker.
https://beyondco.de/blog/the-ultimate-guide-to-php-artisan-tinker
Большой туториал по laravel tinker.
https://beyondco.de/blog/the-ultimate-guide-to-php-artisan-tinker
Tinkerwell
The ultimate guide to php artisan tinker
The tinker command is built into every Laravel application and you can use it to run code within the context of your application. Let's explore what this means.
#advanced
Как TDD меняет отношение к тестированию приложений и немного полезных графиков о том, как происходи процесс TDD.
https://proglib.io/w/28da9918
Как TDD меняет отношение к тестированию приложений и немного полезных графиков о том, как происходи процесс TDD.
https://proglib.io/w/28da9918
Medium
TDD changed my relationship with Software Testing
TDD has many benefits, but, for me, the best one is that you have to think how you are going to implement the code before doing it…
ReleaseIt!.pdf
8.4 MB
#advanced #book
Книга о том, как проектировать и правильно эксплуатировать ПО. В книге рассматриваются различные паттерны и антипаттерны, ситуации, при которых нужно действовать быстро, популярные решения многих проблем: отказы, интеграция с API, ретраи, медленные запросы и многое другое. Также в книге рассматриваются примеры плохих решений: слишком много JS, большие Cookie, плохой SQL код, кэширование и т.д.
Книга о том, как проектировать и правильно эксплуатировать ПО. В книге рассматриваются различные паттерны и антипаттерны, ситуации, при которых нужно действовать быстро, популярные решения многих проблем: отказы, интеграция с API, ретраи, медленные запросы и многое другое. Также в книге рассматриваются примеры плохих решений: слишком много JS, большие Cookie, плохой SQL код, кэширование и т.д.
#advanced
Статья для тех, кто часто вовлечен в процессы, связанные с оплатой. Автор рассматривает проблемы дублированных платежей и как их избежать.
https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bb
Статья для тех, кто часто вовлечен в процессы, связанные с оплатой. Автор рассматривает проблемы дублированных платежей и как их избежать.
https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bb
Medium
Avoiding Double Payments in a Distributed Payments System
How we built a generic idempotency framework to achieve eventual consistency and correctness across our payments micro-service…
#advanced
Список алгоритмов, используемых в стандартных функциях PHP.
https://stackoverflow.com/questions/2473989/list-of-big-o-for-php-functions/2484455#2484455
Список алгоритмов, используемых в стандартных функциях PHP.
https://stackoverflow.com/questions/2473989/list-of-big-o-for-php-functions/2484455#2484455
Stack Overflow
List of Big-O for PHP functions
After using PHP for a while now, I've noticed that not all built-in PHP functions are as fast as expected. Consider these two possible implementations of a function that finds if a number is prime ...
#advanced #testing
Очередная статья от Матьяса Нобака с вызывающим названием: «Не тестируйте конструкторы».
https://matthiasnoback.nl/2021/05/dont-test-constructors/
Очередная статья от Матьяса Нобака с вызывающим названием: «Не тестируйте конструкторы».
https://matthiasnoback.nl/2021/05/dont-test-constructors/
matthiasnoback.nl
Don't test constructors
Common constructor problems will be caught by your static analyzer | Exposing state breaks encapsulation | The test doesn't explain why you need the property assignments | Replace the constructor unit test with some higher-level test | What if I just want…
#advanced #laravel
Пагинация в Laravel с помощью курсора и офсета: за и против.
https://www.laravel-enlightn.com/blog/laravel-offset-vs-cursor-pagination/
Пагинация в Laravel с помощью курсора и офсета: за и против.
https://www.laravel-enlightn.com/blog/laravel-offset-vs-cursor-pagination/
Enlightn
Offset vs Cursor Pagination in Laravel [In-Depth Guide]
Curious to learn pagination strategies in Laravel? Here's an in-depth guide on offset and cursor pagination, and the pros and cons of each.