uuid: - value: d4beee99-ab37-4663-b331-4de9f42ec333 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:26+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: | Reviving an old PHP project created: - value: '2023-12-13T00:00:00+00:00' changed: - value: '2025-05-11T09:00:26+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2023/12/13/reviving-an-old-php-project langcode: en body: - value: |
I use Gmail/Google Apps for my email address, and I used to use a LOT of filters.
Inspired by a Ruby gem, I created a PHP library that allows me to declare my filters in PHP and create them in XML.
I could import the generated XML into Gmail to create the filters.
The project is Gmail Filter Builder, and the last commit was in July 2020.
It was based on PHP 7 (unsupported since November 2022) and uses five Symfony components and several other packages.
Today, as I looked at my current Gmail filters, I decided to revisit and update Gmail Filter Builder.
I set PHP 8.1 as the minimum required version and used a Nix Flake to ensure this was available.
I updated the Symfony components from the 3.x versions to 6.x, the latest versions compatible with PHP 8.1. I also updated the other PHP packages to their compatible versions.
After some small changes to the application's code, it worked with PHP 8.1 and generated filters.
Once it worked, I updated the examples.
Whilst it wasn't a difficult process in this instance, having a test suite I could rely on helped me to know it worked as expected during the upgrade.
I don't know if I'll continue to use or maintain Gmail Filter Builder again, but it was an interesting exercise to do this morning.
format: full_html processed: |I use Gmail/Google Apps for my email address, and I used to use a LOT of filters.
Inspired by a Ruby gem, I created a PHP library that allows me to declare my filters in PHP and create them in XML.
I could import the generated XML into Gmail to create the filters.
The project is Gmail Filter Builder, and the last commit was in July 2020.
It was based on PHP 7 (unsupported since November 2022) and uses five Symfony components and several other packages.
Today, as I looked at my current Gmail filters, I decided to revisit and update Gmail Filter Builder.
I set PHP 8.1 as the minimum required version and used a Nix Flake to ensure this was available.
I updated the Symfony components from the 3.x versions to 6.x, the latest versions compatible with PHP 8.1. I also updated the other PHP packages to their compatible versions.
After some small changes to the application's code, it worked with PHP 8.1 and generated filters.
Once it worked, I updated the examples.
Whilst it wasn't a difficult process in this instance, having a test suite I could rely on helped me to know it worked as expected during the upgrade.
I don't know if I'll continue to use or maintain Gmail Filter Builder again, but it was an interesting exercise to do this morning.
summary: null field_daily_email_cta: { }