Meet Lando — the Perfect Tool for Your Local PHP Development Environment

Giorgi Jibladze
The FIG Platform
Published in
3 min readMar 25, 2023

A comfortable development environment is crucial for engineers to work efficiently. It dramatically increases productivity, and what’s often more important — facilitates collaboration. I believe that every team should invest in building a comfortable and effective environment.

There are three critical factors for creating an effective local development environment, that works.

  1. The ability to isolate and encapsulate the environment from the host, and then — facilitate painless configuration, and changes.
  2. The capacity to effortlessly bring, adjust, and configure other software and tools that support the development of your application — databases, message brokers, static storages, caches, and others.
  3. The capability to synchronize the setup with the team members.

Simply:

  1. Isolation
  2. Tooling
  3. Synchronization

Now, most readers will be all like, “That’s why we have Docker and Docker Compose.” I agree, we’ve been using containers for local development for years now. (I might write a whole blog post about how elegant and smart the container concept is. But that’s for another day). Let’s simply agree that yes, containers, in general, and Docker and Docker Compose, specifically, are perfect tools for addressing the requirements mentioned above, and the engineering community in its broader sense is extensively using them despite their tech stack and tooling.

Then, what is Lando and why am I trying to sell it to you?

In one sentence, Lando is a layer on top of docker-compose, facilitating running services, tooling, and networking for our projects’ local dev environment.

How does it work? I will not duplicate the content of its documentation here, you can check it for an in-depth understanding of how to use it, how to extend and generally learn how it is built. Instead, I will list the most important features in my opinion.

  1. Utilizing the docker containers — this fact is very important. We anyways need to build some form of abstraction on top of docker-compose, right? either with custom bash scripts combining them with Make files or building custom utility commands per project in other ways, but in any case, we always build something custom on top of docker-compose. So, if there is an already established standardized way to build that kind of custom abstraction for your need, at least it's interesting.
  2. Completely customizable and extendable — if you ask, what is the most important part of Lando, to me it's the Recipes concept. Recipes are the way to describe your needed services, tooling, and relationships between them. This is what replaces your bash scripts and Makefiles with a proper structure. It ships with its pre-defined recipes and more importantly gives us ways to create our plugins for our needs.
  3. It is OS-independent — although it is strongly recommended to use containers in Linux — their native host environment for maximum performance and comfort, Lando works with ease for other operating systems too. So it's not a problem anymore if different team members use the OS of their choice.

Now, where is PHP or its frameworks here? Isn’t it stack-agnostic all, that I described above?

Yes, it is. Lando is a complete stack/language-agnostic tool, that can be used for building any development environment. Then what makes Lando special for PHP projects? The answer is again recipes. It is shipped with already perfectly built recipes for PHP projects, LAMP, Symfony, Drupal, Joomla, WordPress, etc.

For example, you just need to specify the drupal 10 recipe name in lando configuration, then run the necessary command (lando start) and that’s it. All necessary PHP modules for drupal, composer, drush, and everything you need for developing drupal applications are there. And again, you can add other tools for your projects.

Same for Symfony, WordPress, and others.

This makes Lando especially handy for PHP projects.

Again, you can check detailed documentation on their website and try it with your projects — it's super easy to add Lando to your existing projects, with just several commands to run.

--

--

Giorgi Jibladze
The FIG Platform

🚀 Helping startups with SaaS & Cloud Native Development 👨‍💻 Supporting enterprises with staff augmentation 🟡 Creating no/low-code tools for the industry.