Follows utopia-php/http#249 migration guide to drop usage of the shims
kept for one-minor-release compat. Affected call sites switch to:
- Handler / hook context: inject 'route' (Route|null from the per-request
DI container) instead of $utopia->getRoute().
- Resource factories (init/resources/request.php): Router::matchRoute()
returning ?RouteMatch instead of $utopia->match($request).
- Error path in app/http.php: $app->getResource('routeMatch')?->route,
guarded with try/catch for the pre-dispatch error case.
- GraphQL resolver inner-request pattern (Resolvers.php): capture
getResource('routeMatch') as the original, Router::matchRoute() for
the inner URL, rebind 'route' / 'routeMatch' on the resolver container
in finally instead of setRoute($original). Http::execute() shim is
retained — the guide explicitly keeps it for this hand-built-route
case.
Redundant re-match in shared/api.php storage-cache branch removed; the
injected $route is already the current one.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All call sites now use $user->isApp() and $user->isPrivileged() instance
syntax instead of static User::isApp() / $user::isPrivileged() calls.
Added setUser() to Request class for consistency with Response.
https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
PHPStan correctly flagged that Document::isPrivileged() doesn't exist.
Changed type hints from Document $user to User $user in all action
signatures where $user::isPrivileged() is called, since the runtime
instance is always a User (or subclass).
https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
Replace all static User::isPrivileged() calls with $user::isPrivileged()
across the codebase. Since $user is resolved via setDocumentType, this
allows subclasses to override the privilege check without CE needing to
know about downstream-specific roles.
https://claude.ai/code/session_01JLPDurUgyj7qViA8JqQFTH
- Upgrade utopia-php/cli from 0.15 to 0.22
- Upgrade utopia-php/analytics from 0.10 to 0.15
- Upgrade utopia-php/orchestration from 0.9 to 0.19
- Use dev branches for utopia-php/framework and utopia-php/platform
- Remove utopia-php/swoole dependency (merged into framework)
- Migrate Utopia\CLI\Console to Utopia\Console across all files
- Migrate Utopia\Http to Utopia\Http\Http namespace
- Migrate Utopia\Swoole\Files to Utopia\Http\Files (now instance-based)
- Convert static CLI::setResource() calls to instance-based Dependency API
- Fix StatsResources task named parameter mismatch