DEV Community

Andrej Rypo
Andrej Rypo

Posted on

2

Swiftmailer on PHP 8.2

One of the essential requirements for software to be maintained is the ability to upgrade the internals, hardware, operating system etc. to the latest possible versions. Long-term.

Lately, I've been working on a few legacy apps that needed new life breathed into them. Some ran 7.4, some even older versions of PHP.

One of external dependencies that these apps had in common was now long abandoned Swiftmailer by Symfony.

The original Swiftmailer runs on PHP versions up to 8.1, and no later. PHP 8.1 will be end-of-life by the end of 2024.

For some reason I've had trouble finding a fork that would reliably support PHP 8.2.

Without further ado, here is a Swiftmailer fork that can be run without any deprecation warnings on PHP 8.2:

GitHub logo viaaurea / swiftmailer-legacy

Comprehensive mailing tools for PHP with recent PHP support

Swift Mailer Legacy

This is a fork of legacy swiftmailer/swiftmailer updated to run on PHP 8.2 and possibly future versions without any deprecation warnings or compatibility issues, maintained by Via Aurea.

Installation:

composer require viaaurea/swiftmailer-legacy -W

Legacy port development notes here.


Swift Mailer

The original Swiftmailer stopped being maintained at the end of November 2021.

Please, move to Symfony Mailer at your earliest convenience. Symfony Mailer is the next evolution of Swiftmailer. It provides the same features with support for modern PHP code and support for third-party providers.

Swift Mailer is a component based mailing solution for PHP. It is released under the MIT license.

Swift Mailer is highly object-oriented by design and lends itself to use in complex web application with a great deal of flexibility.

For full details on usage, read the documentation.




All anyone willing to upgrade to PHP 8.2 has to do is type



composer require viaaurea/swiftmailer-legacy -W


Enter fullscreen mode Exit fullscreen mode

This will replace the original package without breaking requirements by other packages that rely on Swiftmailer being installed.

The fork is a fully compatible drop-in replacement of the original Swiftmailer with minimal code changes to support PHP 8.2.

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (2)

Collapse
 
xwero profile image
david duymelinck

I checked the dependents on packagist and most of them are abandoned.

So my question is why would you keep using swiftmailer?
Another question I have is are the packages that depend on swiftmailer PHP 8.2 compatible?

I think it would be better to update the packages to ones that are actively maintaned.

As a coding exercise updating an abandoned package is a great way to learn more about the new language features and use them in a real world situation.

Collapse
 
dakujem profile image
Andrej Rypo

I can only agree.
By all means, upgrade to other mailers ASAP. Symfony mailer works great for us.

This legacy port package is intended solely for those attempting incremental upgrades of legacy code bases. There are projects where Swiftmailer would block such an upgrade and while being used for a feature or two, mailing might not be the core of the project's business. As such, replacing it with new tech might get the least priority. With a monolith design it's hard to decouple such parts and the project has to be migrated as a whole. This is where this legacy port comes handy.

The dependencies come from the original Swiftmailer and work with PHP 8.2, as far as I can tell. We do not intend to alter the codebase heavily, because there is no point in doing so. That's why it's unlikely the dependencies will be changed. However, quality PRs would be welcome.

As for the dependents, there still are many projects using swiftmailer. Many would not even use Composer, as Swiftmailer predates Composer.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay