Welcome to eZpedia!

The free eZ Publish encyclopedia that anyone can edit. eZpedia has accumulated 722  english articles since 2006. We encourage you to create an account and create or edit a page yourself. Some folks create an article in the people namespace with their full name as the article name with a brief description of who they are, their interests, goals and objectives.

Ask A Question

Do you have an eZ Publish question, do you need an eZ Publish answer? Simply login and ask your question in our discussion forum. We publicly write free documentation based on your submissions. Posting on eZpedia is a great way to get answers you need and contribute to our freely available community documentation for eZ Publish.

Chat with other eZ Publish Developers LIVE from around the World!

Ecosystem

Read about what is going on within the various eZ Publish related websites on internet.

Recent development activity

Track the development progress through the roadmap by reviewing recent Exponential Git activity from the github repository.

github.com/ezsystems/ezpublish-legacy commit log rss feed
Last updated: 2026-04-15T01:09:22Z
2026-04-15T01:09:22Z
fix(sqlite3): use recursive mkdir when creating SQLite3 DB directory

mkdir() without the recursive flag fails if any intermediate directory
does not exist. Passing true as the third argument ensures the full path
is created, matching the behaviour expected on a fresh install.
2026-04-13T09:18:32Z
fix(ezsession): PHP 8 — guard $GLOBALS['eZCurrentAccess'] before access

PHP 8 issues E_WARNING (treated as fatal by strict callers) when reading
an undefined global variable or accessing an array offset on null.
Use null-coalescing and isset() guard so session name generation skips
the md5 suffix when eZCurrentAccess is not yet populated (e.g. during
legacy autoload generation outside a full request context).
2026-04-08T13:42:26Z
fix(ezsession): PHP 8 compat — read() returns '', gc() uses time() + gcStartTime

Bug1: read() returned false on DB-not-connected and no-row paths. PHP 8
  enforces SessionHandlerInterface strictly — false causes a recursive
  session restart ("Cannot call session save handler in a recursive manner").
  Fixed: both failure paths now return ''.

Bug2: gc() WHERE clause used $maxLifeTime (a duration, e.g. 1440 seconds)
  against expiration_time (an absolute Unix timestamp). The condition
  'expiration_time < 1440' never matched any real session, so expired
  sessions were never deleted. Fixed: both iterating and non-iterating
  paths now use time().

Bug3: gc() timeout guard computed elapsed time as ($stopTime - $maxLifeTime),
  treating $maxLifeTime as a start timestamp (~1.7 billion seconds elapsed),
  so the guard always fired after the first batch. Fixed: $gcStartTime =
  time() is captured before the do-while loop and used as the reference.

Tests: tests/tests/lib/ezsession/EzpSessionHandlerDBPhp8BugfixesTest.php
  12 tests, 28 assertions, PHPUnit 13.0.0 / PHP 8.5.5, zero notices,
  no live DB or eZ kernel required (hand-rolled stubs).

Docs: doc/bc/6.0/ezpsessionhandlerdb-php8-bugfix-and-tests.md
2026-04-07T22:38:32Z
SQLite3: register eZSQLite3DB autoload + support absolute DB path

Two fixes to enable the legacy kernel to work with a shared Doctrine/DBAL
SQLite database file (as used by the Platform v4 new-stack integration):

autoload/ezp_kernel.php:
- Added 'eZSQLite3DB' => 'lib/ezdb/classes/ezsqlite3db.php' entry so PHP
  can autoload the class. Without this the [DatabaseSettings] ImplementationAlias
  sqlite3=eZSQLite3DB mapping in site.ini resulted in a fatal autoload failure
  and a null DB connection.

lib/ezdb/classes/ezsqlite3db.php:
- connect() now detects when $fileName is an absolute path (starts with /)
  and uses it directly instead of prepending 'var/storage/sqlite3/'. This
  allows the legacy bridge to pass the full absolute path from DBAL's
  SQLite connection params ('path' key) via site.ini DatabaseSettings/Database,
  so both stacks share the same .db file rather than each creating a separate one.
2026-03-31T23:30:47Z
Added: Added rstring, ristring and many other php string operators as template operators. New features.
2026-03-31T23:30:14Z
Updated: Upgraded phpunit test suite support to v13. Upgrade.
2026-03-11T07:58:59Z
Revise issue tracker links and eZ Platform description

Updated issue tracker links and clarified eZ Platform information.

Recent discussions

Read what others are discussing

Recently updated articles

Read recently modified articles

ezpedia.org updated content rss feed
  1. eZ : Main page
  2. Solution : Read-only site
    • @5 | 2025/01/25 @ 17:17:56 : Graham Brookins : History - based on version 4, republishing in attempt to regain example settings display
  3. Solution : Reseting the admin password in eZ publish
    • @15 | 2024/10/25 @ 21:09:06 : Graham Brookins : History - based on version 14 added missing comma to example copy and paste code.
  4. Learning : Extensions
  5. Learning : Standard Events
  6. Learning : Standard Triggers
  7. Learning : A workflow
  8. Learning : Events
  9. Learning : Workflow
  10. Learning : Roles
  11. Learning : Policies
  12. Learning : User Groups
  13. Learning : Site Access
  14. Learning : Design Structure
  15. Learning : Default Design
  16. Learning : Access Control
  17. Learning : Designs
  18. Learning : Template Override System
  19. Learning : Pagelayout.tpl
  20. Learning : Custom System Templates