100 lines
No EOL
6.3 KiB
JSON
100 lines
No EOL
6.3 KiB
JSON
{
|
|
"uuid": [
|
|
{
|
|
"value": "8460744f-1150-4b0a-911a-a103ba91b955"
|
|
}
|
|
],
|
|
"langcode": [
|
|
{
|
|
"value": "en"
|
|
}
|
|
],
|
|
"type": [
|
|
{
|
|
"target_id": "daily_email",
|
|
"target_type": "node_type",
|
|
"target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7"
|
|
}
|
|
],
|
|
"revision_timestamp": [
|
|
{
|
|
"value": "2025-04-21T01:21:42+00:00"
|
|
}
|
|
],
|
|
"revision_uid": [
|
|
{
|
|
"target_type": "user",
|
|
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
|
}
|
|
],
|
|
"revision_log": [],
|
|
"status": [
|
|
{
|
|
"value": true
|
|
}
|
|
],
|
|
"uid": [
|
|
{
|
|
"target_type": "user",
|
|
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
|
}
|
|
],
|
|
"title": [
|
|
{
|
|
"value": "Why I built \"Build Configs\"\n"
|
|
}
|
|
],
|
|
"created": [
|
|
{
|
|
"value": "2023-11-21T00:00:00+00:00"
|
|
}
|
|
],
|
|
"changed": [
|
|
{
|
|
"value": "2025-04-21T01:21:42+00:00"
|
|
}
|
|
],
|
|
"promote": [
|
|
{
|
|
"value": false
|
|
}
|
|
],
|
|
"sticky": [
|
|
{
|
|
"value": false
|
|
}
|
|
],
|
|
"default_langcode": [
|
|
{
|
|
"value": true
|
|
}
|
|
],
|
|
"revision_translation_affected": [
|
|
{
|
|
"value": true
|
|
}
|
|
],
|
|
"path": [
|
|
{
|
|
"alias": "\/daily\/2023\/11\/21\/why-i-built-build-configs",
|
|
"langcode": null
|
|
}
|
|
],
|
|
"body": [
|
|
{
|
|
"value": "\n <p><a href=\"https:\/\/www.oliverdavies.uk\/build-configs\">Build Configs<\/a> is a tool I wrote and recently <a href=\"https:\/\/www.oliverdavies.uk\/presentations\/building-build-configs\">gave a lightning talk about<\/a> at the PHP South West meetup in Bristol, UK.<\/p>\n\n<p>It's a command-line tool that creates customised per-project configuration files from a set of reusable templates.<\/p>\n\n<p>It's a Symfony project using components such as Console, Validator, and Twig for templating.<\/p>\n\n<p>But why did I build it?<\/p>\n\n<h2 id=\"what-was-i-doing-before%3F\">What was I doing before?<\/h2>\n\n<p>When starting a new project, I'd copy configuration files from an existing project and alter them as needed.<\/p>\n\n<p>If a project uses a <code>docroot<\/code> directory instead of <code>web<\/code>, 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.<\/p>\n\n<h2 id=\"what-was-the-issue-with-this%3F\">What was the issue with this?<\/h2>\n\n<p>It took time to set up new projects, and there would be drift between them.<\/p>\n\n<p>I may have added a feature to one project, but it wouldn't exist in the one I was working on.<\/p>\n\n<p>If I needed to move a feature from one project to another, I needed to do it manually.<\/p>\n\n<h2 id=\"how-does-build-configs-solve-the-issue%3F\">How does Build Configs solve the issue?<\/h2>\n\n<p>Now, I have a canonical set of template files.<\/p>\n\n<p>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.<\/p>\n\n<p>I don't need to worry about drift between projects because they're all in sync and generated automatically.<\/p>\n\n<p>It's quicker to create and onboard projects using existing configurations instead of copying files and making manual changes.<\/p>\n\n<p>If you want to see an example, <a href=\"https:\/\/www.youtube.com\/watch?v=LkhsdmxReUc\">watch this video<\/a> where I set up a new Drupal 10 project from nothing to running website in less than a minute.<\/p>\n\n ",
|
|
"format": "full_html",
|
|
"processed": "\n <p><a href=\"https:\/\/www.oliverdavies.uk\/build-configs\">Build Configs<\/a> is a tool I wrote and recently <a href=\"https:\/\/www.oliverdavies.uk\/presentations\/building-build-configs\">gave a lightning talk about<\/a> at the PHP South West meetup in Bristol, UK.<\/p>\n\n<p>It's a command-line tool that creates customised per-project configuration files from a set of reusable templates.<\/p>\n\n<p>It's a Symfony project using components such as Console, Validator, and Twig for templating.<\/p>\n\n<p>But why did I build it?<\/p>\n\n<h2 id=\"what-was-i-doing-before%3F\">What was I doing before?<\/h2>\n\n<p>When starting a new project, I'd copy configuration files from an existing project and alter them as needed.<\/p>\n\n<p>If a project uses a <code>docroot<\/code> directory instead of <code>web<\/code>, 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.<\/p>\n\n<h2 id=\"what-was-the-issue-with-this%3F\">What was the issue with this?<\/h2>\n\n<p>It took time to set up new projects, and there would be drift between them.<\/p>\n\n<p>I may have added a feature to one project, but it wouldn't exist in the one I was working on.<\/p>\n\n<p>If I needed to move a feature from one project to another, I needed to do it manually.<\/p>\n\n<h2 id=\"how-does-build-configs-solve-the-issue%3F\">How does Build Configs solve the issue?<\/h2>\n\n<p>Now, I have a canonical set of template files.<\/p>\n\n<p>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.<\/p>\n\n<p>I don't need to worry about drift between projects because they're all in sync and generated automatically.<\/p>\n\n<p>It's quicker to create and onboard projects using existing configurations instead of copying files and making manual changes.<\/p>\n\n<p>If you want to see an example, <a href=\"https:\/\/www.youtube.com\/watch?v=LkhsdmxReUc\">watch this video<\/a> where I set up a new Drupal 10 project from nothing to running website in less than a minute.<\/p>\n\n ",
|
|
"summary": null
|
|
}
|
|
],
|
|
"feeds_item": [
|
|
{
|
|
"imported": "2025-04-21T01:21:42+00:00",
|
|
"guid": null,
|
|
"hash": "1ee4600295e86488919b3420dfa02534",
|
|
"target_type": "feeds_feed",
|
|
"target_uuid": "90c85284-7ca8-4074-9178-97ff8384fe76"
|
|
}
|
|
]
|
|
} |