Docker for local web development, part 1: a basic LEMP stack
I trust you already read the introduction to this series and are now ready for some action. The first thing to do is to head over to the Docker website and download and install Docker Desktop for Mac...
View ArticleDocker for local web development, part 2: put your images on a diet
By using standard Linux distributions, we embark a lot of tools and services we don't always need, unnecessarily increasing the size of the images in the process. In turn, this has an impact on...
View ArticleDocker for local web development, part 3: a three-tier architecture with...
There are many ways to manage a multitiered project with Docker, and while the approach I am about to describe certainly isn't the only one, I also think this is a subject that doesn't get much...
View ArticleDocker for local web development, part 4: smoothing things out with Bash
As our development environment is taking shape, the number of commands we need to remember starts to build up. With little effort, Bash will allow us to add a layer on top of Docker to abstract away...
View ArticleDocker for local web development, part 5: HTTPS all the things
While it is getting ever cheaper and easier to encrypt the web, somehow this evolution doesn't extend to local environments, where bringing in HTTPS is still far from a sinecure. This article intends...
View ArticleDocker for local web development, part 6: expose a local container to the...
While using Docker for local development allows us to replicate a production environment as closely as possible in a self-contained way, in some instances exposure to the outside world is unavoidable....
View ArticleDocker for local web development, part 7: using a multi-stage build to...
There are many ways to increase an API's responsivity, and one of them which is also the focus of today's article is the use of queues. Queues are basically lists of tasks to be performed at a later...
View ArticleDocker for local web development, part 8: scheduled tasks
Once we start to get comfortable around Docker and make it a full component of our development environment, inevitably there will come a time when we have to deal with some form of task scheduling.
View ArticleDocker for local web development, conclusion: where to go from here
I hope you enjoyed going through these tutorials as much as I enjoyed writing them, and that you now clearly see how to use Docker to your advantage, and feel comfortable doing so. That being said, you...
View ArticleA simple Git pre-commit hook running PHP_CodeSniffer
Git hooks are scripts that are run every time a specific Git-related event happens, like a commit or a checkout. This article shows you how to use a simple hook to enforce a coding standard at every...
View ArticleDynamic GitHub profile README with Github Actions and PHP
A few weeks ago, GitHub quietly released a feature that didn't go unnoticed for long – profile READMEs. A profile README is essentially a README file for your GitHub profile, rather than a specific...
View ArticleOpenAPI-backed API testing in PHP projects – a Laravel example
In this article, we will see how to combine OpenAPI 3.0.x definitions with integration tests to validate whether an API behaves the way it's supposed to, using the OpenAPI HttpFoundation Testing package.
View ArticleYou don't need Laravel Sail
This post is about what to expect from Laravel Sail, how it works and how to make the most of it; it is also a plea to developers to break away from it, in favour of their own, tailored solution.
View ArticleVim is much cooler than you think
To a large extent, Vim still has a bad rep. This needs to change. But Vim does need a little help to get started, so here's an article explaining the basics, with gifs. The best part? There's probably...
View ArticleHow to build and distribute beautiful command-line applications with PHP and...
When you think of command-line applications, PHP doesn't immediately come to mind. Yet the language powers many popular tools, either as independent programs or intended to be used within projects....
View ArticleA GitHub workflow to check the compatibility of your PHP package with a range...
A common aspect of a PHP developer's job is to deal with Composer dependencies. We don't usually need to think about supporting various versions of these dependencies, just as we don't need to think...
View ArticleA crypto activity tracking tool. Introduction: why?
This is the introduction to a series of blog posts about building a crypto activity tracking tool. I haven't built anything yet – the goal is to document my progress as I go, publicly. The tool will be...
View ArticleBuilding a PHP CLI tool using DDD and Event Sourcing. Part 1: the domain
We continue our exploration of DDD with the expression of the domain. A domain is a group of related concepts and ideas about a field, articulated by experts in that field. Expressing the domain is a...
View ArticleBuilding a PHP CLI tool using DDD and Event Sourcing. Part 2: the model
The model is where the software meets the domain. The goal of the model is to identify and express the use cases and constraints that will be built into the software, using schemas and diagrams. It is...
View ArticleBuilding a PHP CLI tool using DDD and Event Sourcing: why?
This is the introduction to a blog series about building a PHP CLI tool to help me track my crypto activity. I haven't built anything yet – the goal is to document my progress as I go, publicly. I...
View Article
More Pages to Explore .....