---
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