Shiphp The PHP Developer's Guide to Docker

Latest Blog Posts

Running a PHP Application with Postgres and Docker

MySQL may be the standard choice in relational databases for PHP developers, but Postgres is a great option as well. The setup is very similar, and running Postgres and PHP within Docker containers is just as easy. 1. Create a PHP Script that Connects to Postgres Let’s start by writing a simple PHP script that will connect to a Postgresql da... Read more

Introduction to Interfaces and Abstract Classes

Object oriented languages like PHP have many tools for layering objects. Among PHP’s tools are interfaces and abstract classes which can be used in similar ways. I think many new developers tend to get confused and misuse them, so I’m hoping a little tutorial here will help. What is an Interface? An object interface in PHP is like a class te... Read more

Array Functions in PHP

Arrays are an important and widely used type in PHP. They are essentially ordered maps that allow developers quick access to key-value storage in their applications. For some basic array examples, see my previous post of working with arrays in PHP. PHP has over 75 array functions to help you manipulate and use arrays more efficiently. Since t... Read more

Running a Laravel Application in Docker

My favorite PHP framework for the past few years has been Laravel. It combines modern best practices with developer-friendly tools and pretty much all the common components that web developers need. There are already several good ways to set up a local development environment for Laravel including Homestead and Valet, but if you’re interested... Read more

Deploying a Docker-Based PHP Project with Hyper.sh

Once you’ve built a local PHP application using Docker, you have many options for hosting. One of my favorite tools is Hyper.sh, a container-based hosting platform that works for just about any Dockerized project you have including PHP projects. Hyper.sh charges you only for uptime on your containers, so it’s a perfect solution for continuous ... Read more