Help for Developers
Build on it: extensions, templates, settings, the APIs, the command line and upgrades.
5997 pages
Start here
Read these pages in this order.
- Develop with Git: grow from user to developer The recommended way to build websites with Exponential. Install the kernel and every se7enxweb extension as...
- Extension development: the book (start here) A complete book on growing from user to builder, extension developer and theme developer with Exponential:...
- Add a database table A migration that creates a table of the site's own on every engine from a share/db_schema.dba definition, w...
- AI, agents and agentic: start here The landing page for people who use AI with Exponential and for people who build agents and agentic workflo...
- Ecosystem: start here The landing page for the Exponential Ecosystem - the greater Exponential world within the PHP stack, its us...
- Integrators: start here The landing page for system integrators and integration developers who connect Exponential with CRM, ERP, P...
Good to know
-
Migrations
The start of everything about migrations in Exponential 6.0.15 - schema and content changes written once as files under version control and applied to every installation of a site in the same order, with a caption…
-
Migrations: a first PHP migration, step by step
In this tutorial you write two PHP migrations for a site: one creates a table exp_news_note with a first row, the other publishes a folder "News" below the content root and notes it in the table. You check them, look at…
-
Add a database table
A migration that creates a table of the site's own on every engine from a share/db_schema.dba definition, writes a first row, and drops it again in down() - with the dry run, the run, the checks and the rollback.
-
Testing migrations: check, simulate, diff and CI
Four layers of tests for migrations - the lint without a database, the dry run, the simulation with a diff on PostgreSQL or SQLite, and a PHPUnit test on a throwaway SQLite database - and how to run them in CI.
-
Deploying with migrations: CI/CD and GitHub Actions
Run migrations as part of every deploy - the order of the steps, a complete GitHub Actions workflow that checks pull requests and deploys over SSH, the exit codes a pipeline acts on, the installation lock, and runs…
-
Team workflow with git: branches, conflicts and order
How several developers write migrations on branches without stepping on each other - timestamps and order, requires for real dependencies, two migrations with the same timestamp, rebasing, renaming only before a merge…
Search by topic
Each button lists the pages of one topic for Developers.
- Getting started33
- User manual1
- Editing content1
- Languages2
- Your account1
- Layouts1
- Two ways to build244
- Help and support5
- Project leadership7
- Sales and marketing1
- Theme design16
- Templates84
- Extension development216
- Theme extensions23
- Publishing and distribution17
- Selling themes and services1
- Maintenance life cycle25
- Hosting1
- Building applications64
- Building websites16
- Public sector96
- Exponential for businesses6
- Training205
- Community24
- Ecosystem33
- PHP development55
- Reselling3
- Bundles and distributions24
- AI and agents31
- Software engineering40
- Adopting Exponential12
- Mobile apps55
- Web frameworks55
- E-commerce10
- Integration53
- The Exponential project12
- Administration36
- Features323
- Standards204
- Development140
- Examples2860
- Installation and upgrades252
- Migrations51
- Project files7
- Release notes236
- History329
- Reference5
- Extensions81
Latest commits to Exponential
Full history on GitHub (opens in a new window)What changed in the source code most recently: the main branch of se7enxweb/exponential, read from its public feed by this server.
-
Added: Documentation of the URL map helpers in the BC note, the chang… (opens in a new window)
Message
67868df148 -
Added: URL map helpers: from an old sitemap, from the 404 log, sugges… (opens in a new window)
Message
c9118c9eeb -
Updated: Expiring the wildcard cache removes its index, so a new wild… (opens in a new window)
Message
7caccc0a69 -
Updated: A wildcard or redirect added or removed answers at once inst… (opens in a new window)
Message
9ce358c12c -
Added: Documentation of URL map import and export, a tutorial for mig… (opens in a new window)
Message
7e95a4b2d7 -
Updated: URL map targets resolve as the siteaccess serves them, below… (opens in a new window)
Message
a95101d160 -
Added: Import, export, history and undo of URL maps in the administra… (opens in a new window)
Message
2d794ad83a -
Updated: Redirects of URL map imports answer for any old address, and… (opens in a new window)
Message
aee5f8721a -
Updated: URL map commands and temporary folders follow the kernel rules (opens in a new window)
Message
add21407bc -
Added: Import, export and undo of URL maps, and redirects checked on … (opens in a new window)
Message
9abefc5714
« Previous Next » 1 2 3 4
Key pages
All pages for Developers- Mobile app developers: start here The landing page for developers who build iOS, Android, cross-platform or browser apps on top of Exponential content - the three HTTP int...
- PHP Developers: start here Where PHP developers start - what Exponential is as a PHP code base, your first hour, the rules every PHP change follows, and a map of ev...
- Site packages: start here The start of the site packages help. What a site installer package is, the package server that publishes them, what sevenx_multisite and...
- Software engineers: start here Where software engineers start who evaluate, architect, operate, review or contribute to Exponential as a system. The system in one parag...
- Static publishing The start of everything about static publishing in Exponential 6.0.15 - a free, fast and safe public copy of a site on GitHub Pages or an...
- The Exponential project: start here A map of the Exponential project as its website exponential.earth presents it, mapped onto this help - what the project is, the FAQ, the...
- Two ways to build, every page The index of the "two ways to build" help - templates in a design extension and the Layouts editor - with the header and footer how-tos w...
- User management from the console The start of everything about the exp:user commands in Exponential 6.0.15 - list, create, change, disable and remove user accounts, reset...
- Web framework developers: start here Where developers who know Symfony, Laravel, Slim, CodeIgniter, Yii, CakePHP, Laminas, Django, Rails, Express or Spring start with Exponen...
- Contribute your site package 7x and the Exponential Foundation strongly encourage you to submit your own site package by pull request to the repository behind the pac...
Recently updated
- Exponential 6.0.15 Updated: The documented INI load order matches the kernel, in English and German
- Configuring Exponential 6.0 Updated: The documented INI load order matches the kernel, in English and German
- Per-site settings inside extensions (multi-site hosting) Updated: The documented INI load order matches the kernel, in English and German
- Installing, then and now: the files, the database, the virtual host Updated: The documented INI load order matches the kernel, in English and German
- Extensions sevenx_multisite activates Updated: The documented INI load order matches the kernel, in English and German
- The switch to expcomponents: what to check when you upgrade (6.0.15) Updated: The expcomponents documentation names the released forks and the switch of 6.0...
- Exponential Components (expcomponents): the kernel's libraries, forked from Zeta Components Updated: The expcomponents documentation names the released forks and the switch of 6.0...
- Third-party components and their licenses Updated: The expcomponents documentation names the released forks and the switch of 6.0...
Related audiences
Free documentation: use it to help yourself and others
This help is free documentation, licensed under the GNU Free Documentation License 1.3 or later. You may use it, share it and improve it:
- Study it Read any page as often as you like, for any purpose.
- Copy it and share it Give pages to other users, on paper or as files. Keep the copyright notice, the license notice and a copy of the license with every copy.
- Translate, adapt and improve it Share your version under the same license, with the original notices and a note of what you changed.
- Cite it Refer to a page by its title and its address in the help, or its file in the doc directory.
- Contribute fixes back Use "Edit on GitHub" on any page. Changes are accepted under the same license, so they stay free for everyone.
Exponential Copyright © 1998-2026 Exponential Foundation and 7x