docs(daily-email): add 2023-11-21
Why I built "Build Configs"
This commit is contained in:
parent
1bdcafd6d2
commit
f5682a8d51
52
src/content/daily-email/2023-11-21.md
Normal file
52
src/content/daily-email/2023-11-21.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
title: >
|
||||
Why I built "Build Configs"
|
||||
pubDate: 2023-11-21
|
||||
permalink: >
|
||||
archive/2023/11/21/why-i-built-build-configs
|
||||
tags:
|
||||
- docker
|
||||
- docker-compose
|
||||
- php
|
||||
- phpc
|
||||
- drupal
|
||||
- symfony
|
||||
---
|
||||
|
||||
[Build Configs] is a tool I wrote and recently [gave a lightning talk about][talk] at the PHP South West meetup in Bristol, UK.
|
||||
|
||||
It's a command-line tool that creates customised per-project configuration files from a set of reusable templates.
|
||||
|
||||
It's a Symfony project using components such as Console, Validator, and Twig for templating.
|
||||
|
||||
But why did I build it?
|
||||
|
||||
## What was I doing before?
|
||||
|
||||
When starting a new project, I'd copy configuration files from an existing project and alter them as needed.
|
||||
|
||||
If a project uses a `docroot` directory instead of `web`, a different version of PHP, or Caddy instead of Nginx, I'd need to change the files manually for the new project, add any required features, or fix any bugs.
|
||||
|
||||
## What was the issue with this?
|
||||
|
||||
It took time to set up new projects, and there would be drift between them.
|
||||
|
||||
I may have added a feature to one project, but it wouldn't exist in the one I was working on.
|
||||
|
||||
If I needed to move a feature from one project to another, I needed to do it manually.
|
||||
|
||||
## How does Build Configs solve the issue?
|
||||
|
||||
Now, I have a canonical set of template files.
|
||||
|
||||
Instead of making ad-hoc changes to each project, I can add new features and fix bugs in the templates, and re-generate the configuration files for each project.
|
||||
|
||||
I don't need to worry about drift between projects because they're all in sync and generated automatically.
|
||||
|
||||
It's quicker to create and onboard projects using existing configurations instead of copying files and making manual changes.
|
||||
|
||||
If you want to see an example, [watch this video][video] where I set up a new Drupal 10 project from nothing to running website in less than a minute.
|
||||
|
||||
[build configs]: https://www.oliverdavies.uk/build-configs
|
||||
[talk]: https://www.oliverdavies.uk/talks/building-build-configs
|
||||
[video]: https://www.youtube.com/watch?v=LkhsdmxReUc
|
Loading…
Reference in a new issue