Thanks to visit codestin.com
Credit goes to github.com

Skip to content

v5.0.2 — First Stable, Fully Documented Legacy Bridge Release

Choose a tag to compare

@se7enxweb se7enxweb released this 16 Apr 16:34
· 2117 commits to master since this release

Exponential Platform Legacy v5.0.2

The definitive stable release of the v5 series — featuring the complete Legacy Bridge integration running on Symfony 7.4 LTS, full Ibexa DXP 5 namespace compatibility, Twig service public visibility fix, and a leaner composer dependency graph.


What Is This?

Exponential Platform Legacy v5 is the open-source DXP skeleton that ships the complete eZ Publish legacy kernel running inside Symfony 7.4 LTS via the se7enxweb/legacy-bridge package — active by default, zero post-install setup required. You get:

  • A fully working classic legacy site at /legacy_site/
  • A fully working classic legacy admin at /legacy_admin/
  • The modern Platform v5 Admin UI at /adminui/
  • REST API v2 and GraphQL on Symfony 7.4 LTS
  • Multi-database legacy kernel support (MySQL 8.0, MariaDB 10.6, PostgreSQL 14+, SQLite 3.35+) via the sevenx_exponential_platform_v5_database_translator extension

🗄️ Major New Capability: SQLite Support (Zero-Config Local Development)

For the first time in the platform's history, the legacy kernel runs on SQLite 3.35+ with no database server required.

This is a significant quality-of-life improvement for every developer who wants to spin up a local Exponential Platform Legacy site — no MySQL, no MariaDB, no PostgreSQL server to install, configure, or manage. SQLite works out of the box on every macOS, Linux, and Windows (WSL) development machine.

What SQLite support means in practice

# Start a fully working Platform v5 + Legacy Bridge site in under 5 minutes
composer create-project se7enxweb/exponential-platform-legacy my-project
cd my-project

# .env.local — two lines, no database server needed:
echo 'DATABASE_URL="sqlite:///%kernel.project_dir%/var/data_dev.db"' >> .env.local
echo 'MESSENGER_TRANSPORT_DSN=sync://' >> .env.local

# Install — creates the .db file automatically, imports all demo content:
php bin/console exponential:install exponential-oss

When to use SQLite

Use case SQLite?
Local development (single developer) ✅ Ideal
Automated CI/CD test runs ✅ Ideal
Demo / evaluation install ✅ Ideal
Air-gapped / offline environments ✅ Ideal
Multi-user production site ❌ Use MySQL/MariaDB or PostgreSQL
Clustered / multi-server deployment ❌ Use MySQL/MariaDB or PostgreSQL

Bug Fixes

se7enxweb/ngsymfonytools v5.0 branch — Ibexa 5 Namespace Compatibility

Error fixed: NgSymfonyToolsApiContentConverter::__construct(): Argument #1 must be of type eZ\Publish\API\Repository\Repository, Ibexa\Core\Repository\SiteAccessAware\Repository given.

Ibexa DXP 5 moved the Repository interface from the eZ namespace to Ibexa\Contracts\Core\Repository. The legacy extension type-hinted against the old interface, causing a fatal TypeError at runtime.

Fix: A class_alias shim at the top of ngsymfonytoolsapicontentconverter.php maps the old interface to the new one when running under Ibexa 5:

if ( interface_exists( 'Ibexa\Contracts\Core\Repository\Repository', true )
    && !interface_exists( 'eZ\Publish\API\Repository\Repository', true ) )
{
    class_alias( 'Ibexa\Contracts\Core\Repository\Repository', 'eZ\Publish\API\Repository\Repository' );
}

se7enxweb/legacy-bridge v5.0.9 — Twig Service Visibility Fix

Error fixed: ServiceNotFoundException: The "twig" service or alias has been removed or inlined when the container was compiled.

In Symfony 5+, services default to private and are compiled into $container->privates[]. The legacy extension (NgSymfonyToolsIncludeOperator) called $container->get('twig') at runtime which only checks $container->services[], causing a fatal exception on any page rendering a symfony_include legacy template tag.

Fix: TwigPass.php in se7enxweb/legacy-bridge now calls ->setPublic(true) on the twig service definition during container compilation, making it accessible from legacy code.

Composer Dependency Graph Cleanup

Package Before After Reason
se7enxweb/legacy-bridge constraint in skeleton direct with duplicated deps single ^5.0.0.0 entry ngsymfonytools, richtext-datatype-bundle, site-bundle, site-legacy-bundle moved to be dependencies of legacy-bridge
ibexa/admin-ui-assets in replace "dev-5.0-next" removed now owned and declared by se7enxweb/admin-ui-assets
se7enxweb/ngsymfonytools constraint in legacy-bridge ^4.0.0.0dev-v5.0 v5.0.x-dev correct Composer branch-alias format for a version-like branch name
se7enxweb/ngsymfonytools constraint in site-legacy-bundle ^4.0.0.0 v5.0.x-dev same fix, was conflicting with legacy-bridge requirement

Documentation (v5.0.2)

Complete ground-up rewrite of both README.md and INSTALL.md:

README.md — full Legacy Bridge advertisement and URL reference:

  • New top-level section: Legacy Bridge — Architecture & Default Siteaccess URLs
  • Dual-kernel architecture diagram
  • Complete URL reference tables: 25+ /legacy_site/* default URLs and 30+ /legacy_admin/* default admin URLs (all documented individually)
  • Updated Quick Start with all 9 post-install access points and correct legacy bridge step sequence

INSTALL.md — comprehensive installation and operations guide:

  • New Section 3: Legacy Bridge — What You Get Out of the Box (9 subsections covering siteaccess config, extension management, database translator, INI override system, template/design customisation, cache management, CLI command reference)
  • Architecture overview updated: dual-kernel diagram, four-siteaccess table, complete directory tree
  • Production deploy checklist extended with legacy bridge steps
  • 6 new legacy bridge troubleshooting entries

Dependency Versions (this release)

Package Version
se7enxweb/legacy-bridge v5.0.9
se7enxweb/ngsymfonytools v5.0.x-dev
se7enxweb/site-legacy-bundle 5.0.x-dev
se7enxweb/site-bundle 5.0.x-dev
Symfony ^7.4
PHP >=8.3

New Project Quick Start

composer create-project se7enxweb/exponential-platform-legacy my-project
cd my-project
cp .env .env.local
# Edit .env.local: set DATABASE_* vars and APP_SECRET
php bin/console exponential:install exponential-oss
source ~/.nvm/nvm.sh && nvm use 20 && yarn install && yarn build
php bin/console assets:install --symlink --relative public
php bin/console ibexa:build
php bin/console lexik:jwt:generate-keypair
php bin/console cache:clear
symfony server:start

Access points:

  • https://127.0.0.1:8000/legacy_site/ — Legacy site frontend
  • https://127.0.0.1:8000/legacy_admin/ — Legacy admin interface (admin / publish)
  • https://127.0.0.1:8000/adminui/ — Platform v5 Admin UI
  • https://127.0.0.1:8000/api/ezp/v2/ — REST API v2
  • https://127.0.0.1:8000/graphql — GraphQL

See INSTALL.md for the full step-by-step guide.


Full Changelog: v5.0.1...v5.0.2