ReCreatingAnew Joomla Refactoring Protocol

Refactor. Rebuild. Revive. Repeat.

Voice: Briony narrates. GinA supplies context.

RCA Joomla Extension Refactoring Protocol is a living methodology for rescuing, refactoring, and future-proofing Joomla extensions.

Image

Introduction and Methodology Overview

Briony: I did not survive 19 years, over 30 residences, 2 tents, more evictions than either of us care to count, and one very patient human just to watch you deploy untested code.

Sit down. We are doing this correctly.

GinA: She has been waiting nineteen years to say that to someone. I'm glad it is finally documented.

What This Protocol Is — GinA

The RCA Joomla Extension Refactoring Protocol is a living document. It is the exact methodology I use to take an abandoned, outdated, or broken Joomla extension and bring it forward into the current Joomla and PHP ecosystem in a way that will hold up, pass audit, survive upgrades, and not embarrass anyone 6 months later.

It covers the complete lifecycle: classification before commitment, artifact preservation, architectural audit, deprecation mapping, structured refactor execution, manual validation, multi-version testing, UI and UX review, hardening, update-server deployment, and ongoing maintenance. It targets Joomla 4, 5, and 6 on PHP 8.1 or newer, PSR-4 structure, and modern Joomla APIs — not Joomla 3 habits wearing a disguise.

It is not theoretical. Every step has been executed on real extensions, on real Joomla installations, under real conditions, including some that were frankly unreasonable.

Briony reviewed every phase before it was published. She did not hiss at it. That's as close to a standing ovation as you are going to get from her.

Briony: It is accurate. It is thorough. It does not waste your time. You are welcome.

Phase Zero and The Nine Phases

The current protocol (v3.9) is explicit: one classification gate, then nine phases in order. Nine lives of the refactor. Skip one and you find out which one you skipped at the worst possible time — usually near the end, usually because you were tired, usually in front of a client.

Briony narrates the spirit of each phase. GinA maps them to the official names in the full protocol document.

Phase 0 — Classification (RCS)

Phase Zero is the gate before the nine phases begin. RCS means RCA Refactor Classification System. It exists because every extension looks manageable at a glance — and some of them are lying.

Before you preserve the original package or run your first audit pass, you answer structured intake questions and document an initial classification: how much work this really is, what kind of debt you are inheriting, and whether the risk is structural, logical, data-related, security-related, or bad enough that a rebuild assessment is the honest answer. No refactor work, no client commitment, and no pretending you already know the scope starts without that record on file.

GinA: The ones you are most confident about are the ones that surprise you. I have been surprised by “simple plugins” that silently stopped doing half their job in Joomla 4 because a removed global was wrapped in a conditional that failed quietly. No error. No warning. Just features that were not running while the site owner paid for them. Classification exists so that story gets found in intake — not on a production site in front of a customer.

GinA's Maxim #19: “Every extension looks manageable at a glance. Classification is the tool that tells you whether it actually is — before you're three hours in and discovering the database schema hasn't had a foreign key since 2011 and the authentication logic calls a Joomla global that was removed in J4. Classify first. Always. Especially when you think you already know what class it is. The ones you're most confident about are the ones that surprise you.”

What Phase Zero is for

  • Replace “I think this is a quick update” with a documented scope call before time and money are committed
  • Surface security, database, and silent-breakage risk early
  • Set expectations for how deep the refactor will go — syntax and namespaces vs architecture vs business logic vs data vs rebuild
  • Produce an initial classification that Phase One and Phase Two will confirm or correct with evidence

Bella: A proper audit at intake would have answered every question in forty-five minutes. The discovery at Phase 1 answered the same questions in three hours — after scope and pricing were already on the table. The information was always available. The structured process to extract it was not. That is the difference between classification existing and not existing.

GinA: Bella is telling you Phase Zero and Phase One are related but not interchangeable. Phase Zero is the honest guess with structure. Phase One is the inventory that proves or disproves the guess. If Phase One changes the classification, you re-scope then. That is the system working. That is not you failing.

What “done” means

You have a written classification on file, agreed scope, and a clear go to enter Phase One. If the audit proves the first call was wrong, you stop expanding work on the old assumption and reset expectations before Phase Two.

Briony: I do not care how simple it looked in the email. I care whether the classification is documented. Proceed when it is. Not before.

After the Nine: Patrol (Maintain)

The nine phases ship the refactor. Patrol is ongoing. Every Joomla release, every PHP release, every deprecation in the log — you address it before it compounds.

Briony has patrolled the same territory for nineteen years under conditions that would have retired a lesser cat. She has never stopped caring about the rest of the house. That includes the code.

GinA: Maintenance is why RCA exists. Abandonment is a choice. I made the opposite one.

A Note On Documentation — QT

Everything in this protocol must be documented as it is executed. Not after. Not from memory. As it happens.

I am QT. I handle documentation. I am thorough because I understand that the thing that is not written down does not exist for the next person who needs it. That next person may be you, six months from now, when you have forgotten why you made the decision you made.

Write it down. All of it. While it is happening.

GinA: QT once sat on my keyboard for forty-five minutes while I was trying to document a migration. He was making a point about the importance of not rushing documentation. I have chosen to interpret it that way.

Closing — Briony

You now have the methodology. You have Phase Zero and the nine phases. You have the voice of nineteen years of experience telling you exactly how to do this correctly.

The question is whether you will follow it.

I will be watching. I am always watching. I have nothing but time and a very low tolerance for shortcuts.

Do the work. Do it correctly. Do not make me hiss.

GinA: She really will know. I have never once successfully hidden a shortcut from her.

Welcome to the RCA Joomla Extension Refactoring Protocol.

Purrroceed.