Context
Context class is the central runtime component in WP-Node. It initializes and manages core components such as configuration, roles, hooks, current user, and utilities.
Overview
- Dependency Management: Uses the
Componentssystem for resolving internal services. - User & Role Setup: Handles role assignment and anonymous user initialization.
- Multisite Support: Switches blog/site context automatically when multisite is enabled.
- Environment-aware: Accepts
envflag to isolate or differentiate application contexts. - Cloneable: Can be duplicated via the
clone()method for isolated operations.
Properties
config: Instance of the configuration passed to the context.hooks: Instance of registered hook handlers (filter/action).current: Handles the current user and site state.roles,utils,vars,options,logger: Pre-wired internal modules.env: Returns the current environment (e.g."local").
Methods
getInstance(config, { env, hooks, installing? })
Creates and fully initializes a new Context instance. Sets up the current site/user and fires the core_init hook.
Note: This method is typically not called directly. Use
Application.getContext(env)instead, which handles the proper initialization and configuration setup.
clone()
Creates a fresh copy of the context with the same environment and configuration:
const cloned = await context.clone();
Multisite Behavior
If multisite is enabled, getInstance will automatically switch to the configured default site and blog ID:
if (config.multisite.enabled) {
await context.current.switchSite(
config.multisite.defaultSiteId,
config.multisite.defaultBlogId
);
}
If not, it simply sets default user roles.
Error Handling
During getInstance(), errors in role resolution are handled gracefully—especially during installation. Default roles are applied when needed:
context.current.setDefaultUserRoles();
To avoid install-time crashes:
if (!installing) {
console.warn("Failed to initialize the Current component.", e);
}