Exponential 6.0 features
This page lists every feature page of the Exponential 6.0 line, so you can find the one you need without searching. Each page says who it is for, what the feature does and how to use it. The legacy extensions, themes and packages have an index of their own: Extensions, themes and packages. Every change, with its date, is in the 6.0.15 changelog.
Warning
.htaccess slows down every request. When .htaccess files are enabled (AllowOverride anything but None), let alone
used, Apache looks for them and reads and evaluates them on every request, in every directory of the path, and
page loading times go up drastically (measured). The only real fix is to switch the feature off for
the virtual host: AllowOverride None in the HTTPS virtual host, and the rules in the virtual host's own
configuration as mod_rewrite rules. That is far faster in production speed tests and well worth the time it takes
to optimize a production configuration. Switch over right away: copy the rules of the
example HTTPS virtual host into your virtual host (with the static cache, also
staticcache_offload.conf), set AllowOverride None, run apachectl configtest, reload Apache and
test the site. The same rules for other servers: nginx, LiteSpeed,
Caddy, IIS, Velocity (built in); where virtual host rules go in a control
panel: Plesk, cPanel, DirectAdmin, ISPConfig.
On LiteSpeed or OpenLiteSpeed, the server's own page cache can also answer anonymous visitors and crawlers without PHP: Page caching with LiteSpeed and OpenLiteSpeed.
Start here: Velocity is part of Exponential 6.0.15
As of 6.0.15 the Velocity Internet / Web Application Server is part of Exponential: the root composer.json requires
se7enxweb/exponential-velocity ~0.0.4.57 (through se7enxweb/exponential-php-floor, on PHP 8.0 and later), so every installation has it, on PHP 8.0 and later. It marks a turning
point, a cornerstone and a capstone for the project: a new level of application system integration, with even greater
features out of the box in the core product, by default. Exponential is one working stack (server, rapid application
development platform, CMS, digital experience and e-commerce), not just a framework. Read
Velocity is part of Exponential 6.0.15 first.
Velocity is the recommended engine for every stage, FrankenPHP is the production-ready alternative, and Apache or nginx with PHP-FPM keep working as before.
Exponential Velocity, the Internet and web application server
- Velocity web server: the overview
- Velocity: running Exponential in a persistent-worker web server
- Velocity response cache
- Velocity HTTPS and certificates
- Velocity static files and image processing
- Velocity WebSockets, Server-Sent Events and rooms
- Velocity control panel and dashboard
- Velocity Q shell
- Velocity scheduler
- Velocity discovery, federation and deploy
- Velocity packages, Docker images and binaries
- Velocity and the opcode cache: why a page costs what it does, and how to measure it
- uwebserver
- Server control commands: exp:webserver, exp:frankenphp and exp:solr
Installing, deploying and operating
- Installing Exponential in one command
- Kickstarter: install a whole site from one file
- Console commands for .htaccess and config.php
- What a new installation comes with: the default extension distribution
- Extensions of a new installation (6.0.15): bundled, installed, activated by default, their tables
- A clean installation that fits shared hosting and says Exponential
- The setup wizard's new look, and the editor siteaccess
- Settings per environment (EXP_ENV)
- Configuration managed by the deployment (ManagedByDeployment)
- Installation name: never confuse staging with production again
- Change settings from the command line: exp:ini
- The system card: exp:expfetch, exp:info and exp:about
- Benchmark:
exp:benchmark - Maintenance mode
- Migrations in the kernel (recipes, audience pages and FAQ: Migrations)
- Repair a broken installation from the browser
- File consistency check and the release file list
- Quality checks: git hooks, file manifest, code style and PHPStan
- Exponential Components (expcomponents): the kernel's libraries, forked from Zeta Components:
se7enxweb/expcomponents-*under Apache 2.0, the sameezcclasses, the package map and the history - Cache clears that move directories aside
- Keep the content and INI caches in Redis or Valkey
- Static cache generator
- Static publishing: a static copy of a site for GitHub Pages and any static host
- Cronjobs console, Pausing cronjob parts, Leaving out a cronjob part
- Log rotation and pruning, The log viewer, Request logs: 404.log and security.log
- Per-site settings inside extensions (multi-site hosting)
- Logs, INI cache and expiry timestamps per site (multi-site hosting)
Databases
- SQLite database support
- MongoDB as the database
- AdminNeo: the database manager behind the Database Source Editor
- Data tables: module tables as part of the system: the catalogue of persistent classes, named database connections, classes on their own connection
Rapid application development and extensions
- RAD tools: extension wizards, catalogue, survey and health check
- Extensions in more than one folder
- Setup > Extensions: loading order and safe saving
- Extension list: sort, inspect and download any extension
- An extension can replace a kernel module
- Access and view cache filters for extensions
- Content policy limitations of extensions
- Icon themes that live in your extension
- The website sidebar (expwt) in place of the website toolbar (ezwt): the move with
exp:wt:migrate-from-ezwtand the upgrade step 6.0.15-expwt-enable - Pagelayout hooks: one place at the end of every page for extensions
- Remote services: the whole admin as an HTTP API (expservices)
- The GraphQL API: ask the content for exactly the fields a page needs:
/api/graphql, a schema generated from the content classes, policies always applied, Setup > GraphQL with a playground,exp:graphql:status,exp:graphql:schemaandexp:graphql:query - Request rules: decide what happens to a request before its view runs
- Role and policy checks in templates
- PHP string functions as template operators
- Template editor: create, order and edit overrides without touching INI files
- Design > Templates: drag and drop override order
- Template path comments: see which template wrote which markup
- Smarty templates (.stpl) next to .tpl, with a converter for whole designs; the guides: a first .stpl, step by step, writing and running .stpl templates, operators and fetch functions, operator reference, template functions and blocks, caching and performance, performance (Speed), moving from .tpl to .stpl, the converter, migrating a design, troubleshooting and FAQ, writing operators and functions, security and escaping
- Twig templates (.twig) next to .tpl and .stpl, with converters in every direction; the guides: a first .twig, step by step, writing and running .twig templates, operators and fetch functions, operator reference, template functions and tags, caching, performance (Speed), moving from .tpl to .twig, the converter, migrating a design, troubleshooting and FAQ, writing operators and functions, security and escaping, writing Twig-native templates, recipes, debugging, Twig in your editor, versions, upgrades and compatibility, speed of the three template engines, templates side by side, the three template engines compared
- Debug output you can read at a glance and style
- The Exp Debug bar
Packages
- ezpm: the package manager on the command line
- The package wizard
- A package installer that survives big packages
- Look inside a package, compare it with your site, import single items
- Package licenses and Semantic Versioning
- About and Copyright pages
Content management and the administration
- The admin4 design
- The admin4l design: the admin page built from layouts
- The responsive admin design (admin3)
- Left sidebar width and font size
- Exponential Admin UI: the adminui design and siteaccess
- Choosing the administration design for your session
- Administration navigation: the top node, tabs and content browse
- Admin links follow permissions
- Hide admin tabs: HiddenTabs
- Paging, sorting and page sizes in the administration interface
- Custom items per page
- Preload Sites (administration interface)
- Quick location buttons
- Bookmark folders
- Bookmarks of system pages
- The content finder
- Content jobs: large removes, copies and moves in the background
- The content checks: unreferenced objects, broken relations and missing files
- Content classes: move an attribute to the top or the bottom
- The sub-items list: 129 columns, presets and CSV export
- Copy selected sub-items
- Removing and hiding: the check of reverse relations
- The trash shows who trashed an item and where it was
- Version preview in other view modes
- Publish without notification
- The online editor on TinyMCE 8 (opt-in, next to TinyMCE 3)
- Rich text: characters above U+FFFF and TeX source in custom tags
- PDF export
- RSS: Apple Podcasts feeds, a paged feed list and safer exports
- jQuery 4 in the admin, and YUI gone
- The help system: the documentation inside the administration
- Help maintained as content
Sites, languages and digital experience
- Links to content of another site of a multisite installation
- Siteaccess by host prefix, and the redirect to the language
- Importing and exporting URL maps: old addresses kept after a move, with undo
- Translations and languages
- Right-to-left languages in the administration
- Interface language and the UI switch
- Switching designs on a front siteaccess
- The interface language list: every language, the most needed first
- The grouped country list
- A useful robots.txt out of the box
- The product is called Exponential
E-commerce
- Store dashboard and order statuses
- Permanent order receipts
- Sort the order list by any column
- Which siteaccess an order came from
Users, permissions and security
- The audit trail: who did what, and proof that nobody changed the record
- The secret store: passwords and keys of the tools, encrypted, by name
- Preview links: a draft for a reviewer without an account, signed, expiring and revocable
- Content Security Policy
- Review hold: no editing or publishing of a page until a reviewer releases it, and the auto-hold of visitors' submissions
- Recent content: the newest content, held submissions and actions on a selection
- Safe redirects and "back to where you came from"
- Fixes from the Opencontent and Mugo Web forks: limits, one-line logs and safer defaults:
MaxPathDepth, one-lineeZLogentries, REST listeners, the upload blacklist, the subtreeHardLimit - "This form has expired": form token refusals
- SOAP calls over HTTPS: certificates of an internal CA
- Changing your password
- Change password at next sign-in
- Second step on the other sign-in paths: REST, WebDAV, SOAP, expservices; app passwords
- Reset a user password from the command line
- User management from the console: the exp:user commands for accounts, groups, roles, sessions, import and export
- Check user accounts
- User audit log: who changed, signed in or was refused, per account
- Your devices: signed-in sessions per user, signed out for good, an e-mail about a new device
- Signed links in the "New user registered" mail
- Administrators approve new editor accounts
- Roles: policy IDs, sorting and order buttons
- The users and groups of a role, a page at a time
- Permission checks for users with many role assignments
- Faster access arrays for users with many role assignments
- Notifications: the user's guide
- E-mail preferences: the user's guide
The Exponential Platform line
- Exponential Platform DXP skeleton: create-project and a documented install
- Exponential Platform Nexus: a finished site in minutes
- The Exponential Platform administration interface
- Layouts on the platform: the layouts-core fork
- Site bundles, metadata and the Twig tools of the platform
- SQLite for Exponential Platform: no database server needed
- PHP 8.4 and 8.5 for the older Symfony stack: the framework forks
- Legacy bridge: run Exponential 6 inside the Symfony platform