Continuous Integration is the first step of a Continuous Delivery Chain and can be used as a standalone solution. It reduces the team's workload in the field of quality management by automation and helps to make sure software quality is maintained in the long run.
Zend\Expressive has been the new dynamo in the Zend Framework universe for quite some time now. As a PSR-7 middleware microframework it promises the creation of lightweight web applications within minutes. Let’s take a look at current and past developments concerning Zend/Expressive.
The two greatest foes of every software developer are a) uncertainty and b) complexity. Over the years, we have invented many tools and methods to fight them. But eventually, we realized that uncertainty cannot be defeated and instead we learned to embrace it with ever shorter feedback cycles, "agile" methods, continuous integration, devops and Test-Driven Development.
The term dependency injection refers to a technique whereby the dependencies of one object are supplied – or injected – by another object. Instead of letting the client (the object that needs those dependencies) build or find the dependencies, the dependencies would be passed to the object. That’s the whole meaning of dependency injection – actually, a pretty simple concept. But let's have a deeper look.
While it is very interesting to learn about new software designs and architecture patterns we tend to forget that our software must be adaptable over time and this might even be more important than choosing the "right" patterns at the very beginning. Requirements for software always changed and will always change.
The PHP community has come a long way: from the early days of a templating engine for “dynamic websites”, through the adventurous years of a hacky scripting language until now. In the past ten years, we started discussing design patterns and good architecture and in general created more robust, versatile and complex applications. And with the complexity came a row of new tools and techniques, which were necessary to harness all the parts which make a sophisticated PHP application. But have we also become more professional on the infrastructural side?