New phpstan-magento release
Besides supporting PHPStan version 1.3, the latest phpstan-magento extension release 0.15.0 adds support for extension attributes for both Magento modules and Magento applications.
Besides supporting PHPStan version 1.3, the latest phpstan-magento extension release 0.15.0 adds support for extension attributes for both Magento modules and Magento applications.
Two weeks ago the bitExpert PHP team participated in the first API Platform Conference as part of our Learn&Grow initiative. Having built a number of projects based on the API Platform components already, we were keen to get the latest insights and learn from the core team about upcoming features.
As I have written before, we are big fans of Mark Shust's Docker Configuration for Magento project. It comes with quite some useful tools installed out of the box. However, I was missing one: Being able to run PHPUnit from the host environment.
As I have written before, we are big fans of Mark Shust's Docker Configuration for Magento project. Even though we customized the setup a bit for our needs, it comes with a lot of good stuff out of the box, like Xdebug support.
About code quality, automation and git hooks
Besides being big fans of Mark Shust's Docker Configuration for Magento project as I already blogged about, we also love Traefik, the Cloud Native Edge Router. I discovered Traefik years ago and try to use it wherever we can. Depending on the project's goals we either use the open-source version or the enterprise edition. Disclaimer: I am Traefik Ambassador, so I might be a bit biased :)
For a few projects we make use of the Event Engine by prooph software which is a biased - in a good way(tm) - way of quickly building event sourced applications. While building a user registration context, I was stuck a bit how and where to properly hash the password for the user. I could have done it in the init() method of the command, that way I would have made sure that the cleartext password is not "visible" anywhere in the application code. In the end, I decided to make use of a provider class. The return value of the provider will be passed to the specified aggregate method and allows me to pass it to the respective event.
We are big fans of Mark Shust's Docker Configuration for Magento project. We use a lot of our projects, the ones we start from scratch as well for ones that we have taken over and have some weird setup in place that we simply cannot get to work.
In a recent project, we make use of the Event Engine which is an Event Sourcing framework for PHP helping you to rapidly develop event sourced applications. Since parts of the exposed API by the Event Engine should be access proteced, we decided to use OAuth2 for access delegation. That way each route exposed by the Event engine application can be marked as "protected" if needed.