Configuration
Novaconium ships its own defaults inside the image. Your project changes
only the keys it needs by returning them from a config.php at
the root of your mounted project directory.
How overrides work
The framework's defaults live in novaconium/config.php inside
the image (pages_dirs, cache_dir,
debug, site_name, matomo_url,
matomo_site_id, admin_auth_enabled,
db_connections, draft_routes, and so on). That
file is part of the framework and is not meant to be edited.
Your project provides config.php, which returns an array of
just the keys you want to change. On boot, Novaconium shallow-merges it
over the defaults, so anything you leave out keeps the framework value.
This is the same "project overrides framework" pattern used for pages and
library classes.
<?php
// config.php
return [
'site_name' => 'Example Co',
'debug' => false,
];
A config.php that returns an empty array, or no
config.php at all, is perfectly valid. Every setting then
falls back to the framework default.
Debug mode
debug defaults to true. It is a single boolean
that turns on the things you want while developing and none of the things
you want in production. Set it to false before you deploy.
When debug is on:
- PHP errors are shown. Notices, warnings, and fatals render in the response instead of being logged silently.
- Twig debug mode is on.
{{ dump(x) }}works in templates, and edited templates take effect on the next request. - The static HTML cache is bypassed. Every page renders fresh on each request. Turn
debugoff and normal caching resumes as pages are re-requested.
Site name
site_name (default 'My Site') is used by the root
layout as the default page <title> when a page does not
set its own, as og:site_name, and in the footer copyright
line.
<?php
// config.php
return [
'site_name' => 'Example Co',
];
Pages that were already cached before the change need a cache clear to
pick it up: php novaconium/bin/clear-cache.php.
Admin authentication
admin_auth_enabled (default false) gates every
/admin/* route behind a session login. While it is off,
/admin/* is open and the login and user routes return
404. Turning it on is what enables member-gated and
group-gated content as well.
Draft pages
draft_routes (default []) lists routes only an
authenticated admin can reach. Everyone else gets a plain
404, and a draft route is never written to the static cache.
It needs admin_auth_enabled and at least one user to gate
anything.
Databases
db_connections defines the named PDO connections your pages
can open. See Getting
started for the extensions each driver needs.