Skip to content

2.1.0

Choose a tag to compare

@koriym koriym released this 27 Aug 03:52
· 16 commits to 2.x since this release

Added

  • QiqCompileStep compiles every template into {buildDir}/qiq during the build, so a read-only tree can serve

Changed

  • QiqProdModule() without a cache path binds a read-only Catalog reading {buildDir}/qiq, so prod ships no template tree, works inside a phar, and raises TemplateNotCompiledException until the compile step has run
  • Require PHP 8.2+ (from PHP 8.1), the floor of the bear/sunday that carries CompileStepInterface
  • QiqErrorPageRenderer renders with the injected Template instead of Template::new()

Deprecated

  • QiqProdModule($cachePath) keeps compiling at serve time into the path, unchanged; the parameter goes away in 3.0

Migration Guide

Existing prod modules keep working as before, with a deprecation notice. To serve the
compiled build instead, compile the application before serving it and drop the cache
path so the read side looks where the step wrote:

// Before
$this->install(new QiqProdModule($this->appMeta->appDir . '/var/tmp/cache/qiq'));

// After: templates are read from the build directory the compile step filled
$this->install(new QiqProdModule());

Delete the existing var/build and compile again rather than compiling on top of it. A Meta
baked into DI scripts from before bear/app-meta 1.13 carries no $buildDir, and it is read
while the container is built, so the application stops answering at boot instead of losing a
single template.

The argument-less form needs the bear/package release that runs compile steps.