Skip to content

Phase 14a: bootstrap iManager 2.0 container in Scriptor#18

Merged
bigin merged 1 commit into
imanager-2.0from
phase-14a-bootstrap
May 3, 2026
Merged

Phase 14a: bootstrap iManager 2.0 container in Scriptor#18
bigin merged 1 commit into
imanager-2.0from
phase-14a-bootstrap

Conversation

@bigin
Copy link
Copy Markdown
Owner

@bigin bigin commented May 3, 2026

Summary

  • composer.json: path-repo to ../imanager (symlink), bigins/imanager:2.0.x-dev,
    platform pinned to PHP 8.2 to match ServBay's runtime.
  • New PSR-4 namespace Scriptor\Boot\ (boot/):
    • ImanagerBootstrap::create() — wires PDO + Sqlite storage + all repos +
      Sanitizer + FieldTypeRegistry (16 field types) + FilesystemCache +
      LocalFileStorage + ImageProcessor + FullTextSearch.
    • App — process-wide service locator bridge for the 14b–14e transition.
  • boot.php gutted to container-only. Legacy 1.x site/editor are
    intentionally non-functional on this branch (Imanager\ namespace clash).
    master remains the working 1.x build as the rollback path.
  • test-bootstrap.php smoke page resolves every registered service and
    reads back categories+fields+item counts from the migrated SQLite DB.
  • .gitignore for vendor/, imanager.db*, uploads-2.0/, cache/sections/,
    data.bak.*.

Migration ran beforehand against /data with the iManager 2.0 CLI:
2 categories, 10 fields, 9 items, 12 assets, 0 errors. Backup at
data.bak.2026-05-03/.

Test plan

  • composer install läuft auf PHP 8.3 (ServBay)
  • php test-bootstrap.php gibt JSON mit allen Services + Categories aus
  • php -r 'require "boot.php"; ...' lädt Container ohne Fehler
  • Browser-Smoke: https://<scriptor-host>/test-bootstrap.php

- composer.json now requires bigins/imanager:2.0.x-dev via a path
  repository on ../imanager (symlinked); platform pinned to PHP 8.2
  so the lock file matches ServBay's runtime even when the dev
  machine has a newer PHP.
- New PSR-4 namespace `Scriptor\Boot\` (-> boot/) holds:
    - ImanagerBootstrap::create() — wires PDO + Sqlite storage +
      every repository + Sanitizer + FieldTypeRegistry (all 16 v1
      field types) + FilesystemCache + LocalFileStorage +
      ImageProcessor + FullTextSearch.
    - App — process-wide service-locator bridge so legacy code can
      reach the container during the 14b–14e transition; emptied
      out at the end of Phase 14.
- boot.php is gutted to container-only. The legacy 1.x library
  (Scriptor/imanager/) shares the `Imanager\` namespace with the
  new vendor package and cannot coexist, so the public site and
  editor are intentionally non-functional on this branch until
  14b/14c rebuild them. `master` remains the working 1.x build.
- test-bootstrap.php is the §14a smoke page: boots the container,
  resolves every registered service, and dumps categories + fields
  + item counts as JSON.
- .gitignore covers vendor/, the migrated SQLite db (+ wal/shm),
  the new uploads-2.0 layout, the section cache, and data.bak.*
  migration backups.

Migration was run beforehand against /data with the iManager 2.0
CLI (PR #17): 2 categories, 10 fields, 9 items, 12 assets, 0
errors. Backup at data.bak.2026-05-03.
@bigin bigin merged commit ccb4eee into imanager-2.0 May 3, 2026
@bigin bigin deleted the phase-14a-bootstrap branch May 15, 2026 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant