How to Upgrade Phalcon project

Phalcon is a PHP framework that is written in C and is known for its speed. It was created in 2012 and it has own PHP-like language - Zephir. After CakePHP, this is the most requested framework to handle. We though we'll share your options if you want to upgrade your project running on Phalcon.

In 2010-2015 there was a boom of PHP frameworks - FuelPHP, CodeIgniter, CakePHP or Yii. While you can still download these packages over composer, they are no longer active nor growing. Phalcon belongs to this group.

Finished Upgrade != Successful Upgrade

We did a huge Phalcon upgrade to from version 4 in 2019 lead by Kerrial Newham, and we used to provide upgrade set in Rector. It was quite a challenge, because Phalcon project is not written in PHP, but in slightly different syntax. We had to create a custom parser for it.

Yes, we helped our client to use a newer version... but:

We've completed the upgrade task as we agreed.
but they still struggled with the same issues as before.

Our mission is not only to upgrade projects but also to make them cheaper and easier to maintain in the futureand help our clients grow in the long term.

They could not hire new developers that use Phalcon, because they were so rare they were costly.

If they did hire a junior developer, they could not teach them new technologies like Vue, Redis, RabbitMQ, notifications, or sockets. They were stuck in the past, only with a newer version of the same framework.

Why Phalcon is Not a Good Choice in 2024

Why was that? The Phalcon framework - like many others - did not get enough traction to create an active community. In 2020, there was announced Phalcon 6 as a native PHP framework like every other, but it's still not released—the composer package has 77 downloads over the past 3 years.

The same goes for cphalcon package, which has, on average ~ 400 daily downloads:

That means even if you upgrade to the latest Phalcon 5 version, your next upgrade will be even harder - because of the flip from C extension to native PHP code.

It's like getting a mortgage with the following deal:
when you finally pay it off,
we'll reset it, and you'll start paying again.

We don't mean to sound negative, but we want to help you make the best decision for future of your project. It's better to work with realistic data and make informed decisions.

What is a Successful Upgrade?

Would you buy a house with a beautiful facade, but the inside is still from the 1950s? There is no internet, poor electricity, and coal heating. Probably not. The same goes for software. The facade is the framework; the inside is the code. If you upgrade the facade but not the inside, you're not getting any extra value.

Our priority is to get our clients to sustainable and maintainable codebasethat will accelerate the business growth. Even after we're long done, your code should work for you, so your company can:

  • hire new developers at a reasonable price
  • have free resources to educate them - videos, articles, or book
  • have a framework that attracts new developers with talent
  • have cheap and fast adoption of new technologies

This often depends on the community around the framework. If your developers can't get to a meetup or a conference of your framework, they can't learn an effective way to use it and become stuck in the past. So will your project.

Should we Rewrite the project?

Saying that, the only option seems to rewrite the project into a modern framework like Symfony or Laravel, right? Not necessarily. Much cheaper than known "rewrite from scratch" mistake, is to switch the framework.

Various PHP MVC frameworks are sometimes more similar than version 2 or 3 of the same framework. That means switching from Phalcon to Symfony/Laravel is easier than from Phalcon 4 to Phalcon 5.

The reason is that we migrate framework X to Symfony/Laravel so often,
it's getting easier and cheaper every year.

While upgrade of non-active framework X to X+1 is done once in a blue moon, and is always a challenge from scratch, often costly.

Migrate to Symfony/Laravel

Since migration to Symfony/Laravel is requested so often that we have a boilerplate ready, and can fill in edge cases specific toto your project.

We mainly handle these migrations behind NDA, but we can share some stories:

Both Symfony and Laravel communities are active with 4-6 conferences every year:

Migrate your Project to Success

Despite your first initial choice to "only upgrade" a single version, the framework migration is a cheaper and faster solution that brings you long-term success.

That way, your facade and interiore will be modern and attractive to new developers who will be happy to take care of your project.

Happy coding!