diff --git a/src/content/daily-email/2023-12-13.md b/src/content/daily-email/2023-12-13.md new file mode 100644 index 00000000..462e47d3 --- /dev/null +++ b/src/content/daily-email/2023-12-13.md @@ -0,0 +1,42 @@ +--- +title: > + Reviving an old PHP project +pubDate: 2023-12-13 +permalink: > + archive/2023/12/13/reviving-an-old-php-project +tags: + - php + - phpc + - open-source +--- + +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. + +## Gmail Filter Buider + +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. + +## Updating the project + +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][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. + +[examples]: https://github.com/opdavies/gmail-filter-builder/tree/3.x/examples +[gmail filter builder]: https://github.com/opdavies/gmail-filter-builder/tree/3.x