Blog

Here is a collection of articles that I have written about software development, software testing, DevOps, and developer education.

In this tutorial, we're going to step beyond the in-built ZFTool Diagnostic class and write our own custom checks, specifically to lint a Zend Framework 2 module configuration file.

Today, I'll show you a 7-step workflow for producing a professional video tutorial every time, regardless of your product or service.

In this tutorial, we cover how to use ZFTool Diagnostics to ensure Zend Framework 2 module dependencies are available and clearly documented; ensuring they work in whatever environment they're used in.

Zend Framework 2 reduces session management, configuration and storage complexity with minimal complexity. Today, let's look at session validators and save handlers.

Zend Framework 2 reduces session management, configuration and storage complexity with minimal complexity. Today, let's get started with the basics.

In this screencast we'll create an application from the ZF2Skeleton project on Github and getting it up and running, using PHP’s built-in web server.

Zend Framework 2, like all great PHP frameworks, provides thorough infrastructure for creating forms in your application. Whether that's form objects, form elements, fieldsets, validation groups or that they interact with so many other components in the Zend Framework 2 default libraries. But how do you handle external dependencies?

Is it right to use setter injection? Or is it evil, to be avoided at all costs, for the explicitness of constructor injection? In today's post, we explore that and how to implement constructor injection in ZF2 controller classes.

There are 2 common ways for building and executing SQL queries in Zend, closures and the selectWith function. In this tutorial, we learn how to use both.

Routing is one of the key requirements in modern applications, especially in Zend Framework 2; but they shouldn't be overly-complicated. Today, we're going to look at how to build a routing table, simply and easily using child and segment routes.