The best way to understand what Joomla 7 is doing to your extension is to actually run it. The 7.0-dev branch is live on GitHub and actively evolving — every sprint that removes deprecated code changes what breaks and what doesn't. Setting up a local Joomla 7 development environment lets you catch compatibility issues now, not after release day.

This guide walks you through the complete setup: cloning the repository, configuring your local server, installing Joomla, and running your extension against the dev branch. No surprises, no guesswork.


What You'll Need

  • PHP 8.1+ — PHP 8.2 or 8.3 recommended
  • Composer — from getcomposer.org
  • MySQL 8.0+ or MariaDB 10.4+
  • Git
  • A local web server — MAMP, XAMPP, Laravel Herd, or similar
  • Node.js 20+ and npm — for building front-end assets

Step 1: Clone the Joomla 7.0-dev Branch

# Clone the 7.0-dev branch only
git clone --branch 7.0-dev --single-branch \
  https://github.com/joomla/joomla-cms.git joomla7-dev

cd joomla7-dev

To keep it up to date after sprints:

git pull origin 7.0-dev

Step 2: Install PHP Dependencies

composer install

This pulls all libraries Joomla needs. May take a few minutes on first run.


Step 3: Build Front-End Assets

# Install Node.js dependencies
npm ci

# Build assets
npm run build

Skip this and the admin panel will look broken. For active development, use npm run watch instead.


Step 4: Configure Your Local Web Server

MAMP / XAMPP

Set the document root to the joomla7-dev folder and restart Apache.

Laravel Herd

mv joomla7-dev ~/Herd/joomla7-dev
# Accessible at http://joomla7-dev.test

PHP Built-in Server (quick testing only)

php -S localhost:8080 -t /path/to/joomla7-dev

Step 5: Create the Database

mysql -u root -p
CREATE DATABASE joomla7dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'joomla7'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON joomla7dev.* TO 'joomla7'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Keep this database completely separate from any production databases.


Step 6: Run the Joomla Installer

Open your browser at your local Joomla 7 URL. The web installer launches automatically. Configure:

  • Database Type: MySQLi
  • Host: localhost
  • Username/Password: as created above
  • Database Name: joomla7dev
  • Table Prefix: j7_

Step 7: Enable Deprecation Logging

This is the most important step for extension compatibility testing:

  1. Log in to the Joomla 7 admin
  2. System → Global Configuration → System tab
  3. Set Debug SystemYes
  4. Set Log Deprecated APIYes
  5. Save

Every deprecated API call will now be logged to /logs/deprecated.php.


Step 8: Install and Test Your Extension

  1. Package your extension as a zip
  2. System → Install → Extensions → upload and install
  3. Browse every page your extension affects

Watch for:

  • Fatal errors — a removed class or method is being called
  • Warning messages — non-fatal but will become fatal in later sprints
  • Entries in /logs/deprecated.php — shows remaining deprecated API calls

Step 9: Keep Your Dev Branch Updated

cd joomla7-dev
git pull origin 7.0-dev
composer install
npm ci && npm run build

Pull updates weekly. A warning from last week may be a fatal error this week.


Useful Tips

PHP Error Reporting

error_reporting = E_ALL
display_errors = On
log_errors = On

Xdebug

Install Xdebug + VS Code or PhpStorm to step through code when something breaks unexpectedly.

Automate Extension Testing

#!/bin/bash
zip -r /tmp/com_myext.zip . --exclude=".git/*"
php /path/to/joomla7-dev/cli/joomla.php extension:install --path=/tmp/com_myext.zip

When Things Break

  1. Read the error — PHP tells you the exact class or method missing
  2. Search your codebase — find every call to that class/method
  3. Apply the replacement — use the JFactory cheatsheet or Joomla Manual
  4. Test again — repeat until clean

Conclusion: Start Testing Today

The Joomla 7 dev environment setup takes less than an hour. The insight it provides — knowing exactly what breaks and what needs fixing — is invaluable. Every week you wait is another sprint worth of changes you haven't tested against.

Set it up. Pull updates weekly. Fix issues as they appear. By the time Joomla 7 reaches release candidate, your extension will be ready.

Follow thepixel.dev for more Joomla 7 developer guides. Also see: Joomla 7 Breaking Changes: The Complete List.