osteel's blog Web development resources

Vim 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 a Vim extension for your favourite code editor already, so you can start using it today.

A complete guide to 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.

Validate your PHP API tests against OpenAPI definitions – a Laravel example

This article demonstrates how to write integration tests that compare API responses to OpenAPI 3+ definitions in order to validate that the former conform to the latter.

Dynamic GitHub profile README with Github Actions and PHP

A few weeks ago, GitHub quietly released a feature that was quickly noticed by the community – profile READMEs. A profile README is a global README file for your GitHub profile; in this article, I describe how I've used GitHub Actions and PHP to automatically update my profile README to list my blog's latest publications.

A 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 commit in a PHP project.

Docker 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 might still feel like some stones are left unturned, so I will try and flip some of them in this conclusion, the same way I used the introduction to try and address some of the concerns you might have had before taking the plunge.

Docker 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.

Docker for local web development, part 7: using a multi-stage build to introduce a worker

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 time which, unlike flossing, will be completed eventually. What's important about those tasks – called jobs – is that they don't need to be performed during the lifecycle of the initial request.

Docker for local web development, part 6: expose a local container to the Internet

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. Typical use cases include testing a third-party service's webhook (like a transaction confirmation from a payment gateway), or showing a project's advancement to a client.

Docker 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 to ease the pain by showing you how to generate a self-signed SSL/TLS certificate and how to use it with our Docker-based setup, thus getting us one step closer to perfectly mimicking a production environment.