Globals
in package
Centralized management of LWT global variables.
This class encapsulates all global state used throughout LWT, making dependencies explicit and easier to track.
Usage:
// Get database connection
$db = Globals::getDbConnection();
// Get current user ID
$userId = Globals::getCurrentUserId();
// Require user ID (throws if not authenticated)
$userId = Globals::requireUserId();
Tags
Table of Contents
Properties
- $backupRestoreEnabled : bool|null
- Whether backup restore is enabled.
- $currentUserId : int|null
- Current authenticated user ID
- $currentUserIsAdmin : bool
- Whether the current authenticated user is an admin.
- $databaseName : string
- Database name
- $dbConnection : mysqli|null
- Database connection object
- $errorDisplayEnabled : bool
- Whether error display is enabled
- $initialized : bool
- Whether globals have been initialized
- $multiUserEnabled : bool
- Whether multi-user mode is enabled
Methods
- getCurrentUserId() : int|null
- Get the current authenticated user ID.
- getDatabaseName() : string
- Get the database name.
- getDbConnection() : mysqli|null
- Get the database connection.
- initialize() : void
- Initialize all global variables.
- isAuthenticated() : bool
- Check if a user is currently authenticated.
- isBackupRestoreEnabled() : bool
- Check if backup restore is enabled.
- isCurrentUserAdmin() : bool
- Check if the current authenticated user is an admin.
- isErrorDisplayEnabled() : bool
- Check if error display is enabled.
- isMultiUserEnabled() : bool
- Check if multi-user mode is enabled.
- query() : QueryBuilder
- Get a query builder instance for a table.
- requireUserId() : int
- Get the current user ID, throwing if not authenticated.
- reset() : void
- Reset all globals to initial state.
- setBackupRestoreEnabled() : void
- Set whether backup restore is enabled.
- setCurrentUserId() : void
- Set the current authenticated user ID.
- setCurrentUserIsAdmin() : void
- Set whether the current user is an admin.
- setDatabaseName() : void
- Set the database name.
- setDbConnection() : void
- Set the database connection.
- setErrorDisplay() : void
- Enable or disable error display.
- setMultiUserEnabled() : void
- Enable multi-user mode.
- table() : string
- Get a table name.
Properties
$backupRestoreEnabled
Whether backup restore is enabled.
private
static bool|null
$backupRestoreEnabled
= null
Disabled by default in multi-user mode for security.
Null means use default based on multi-user mode
$currentUserId
Current authenticated user ID
private
static int|null
$currentUserId
= null
$currentUserIsAdmin
Whether the current authenticated user is an admin.
private
static bool
$currentUserIsAdmin
= false
$databaseName
Database name
private
static string
$databaseName
= ''
$dbConnection
Database connection object
private
static mysqli|null
$dbConnection
= null
$errorDisplayEnabled
Whether error display is enabled
private
static bool
$errorDisplayEnabled
= false
$initialized
Whether globals have been initialized
private
static bool
$initialized
= false
$multiUserEnabled
Whether multi-user mode is enabled
private
static bool
$multiUserEnabled
= false
When enabled, user_id filtering is applied to queries.
Methods
getCurrentUserId()
Get the current authenticated user ID.
public
static getCurrentUserId() : int|null
Returns null if no user is authenticated.
Tags
Return values
int|null —The current user ID or null
getDatabaseName()
Get the database name.
public
static getDatabaseName() : string
Return values
string —The database name
getDbConnection()
Get the database connection.
public
static getDbConnection() : mysqli|null
Return values
mysqli|null —The database connection object
initialize()
Initialize all global variables.
public
static initialize() : void
This should be called once during application bootstrap.
isAuthenticated()
Check if a user is currently authenticated.
public
static isAuthenticated() : bool
Tags
Return values
bool —True if a user is authenticated
isBackupRestoreEnabled()
Check if backup restore is enabled.
public
static isBackupRestoreEnabled() : bool
In multi-user mode, backup restore is disabled by default for security. Single-user mode allows restore by default. This can be overridden by explicitly setting BACKUP_RESTORE_ENABLED.
Tags
Return values
bool —True if backup restore is enabled
isCurrentUserAdmin()
Check if the current authenticated user is an admin.
public
static isCurrentUserAdmin() : bool
Tags
Return values
bool —True if the current user is an admin
isErrorDisplayEnabled()
Check if error display is enabled.
public
static isErrorDisplayEnabled() : bool
Return values
bool —True if error display is on
isMultiUserEnabled()
Check if multi-user mode is enabled.
public
static isMultiUserEnabled() : bool
Tags
Return values
bool —True if multi-user mode is enabled
query()
Get a query builder instance for a table.
public
static query(string $tableName) : QueryBuilder
Convenience method to start building a database query.
Usage:
// SELECT query
$words = Globals::query('words')
->where('WoLgID', '=', 1)
->get();
// INSERT query
Globals::query('words')
->insert(['WoText' => 'hello', 'WoLgID' => 1]);
Parameters
- $tableName : string
-
The base table name (e.g., 'words')
Tags
Return values
QueryBuilderrequireUserId()
Get the current user ID, throwing if not authenticated.
public
static requireUserId() : int
Use this method when a user must be authenticated for the operation to proceed. It provides a cleaner alternative to checking for null.
Usage:
try {
$userId = Globals::requireUserId();
// Proceed with user-specific operation
} catch (AuthException $e) {
// Handle unauthenticated user
}
Tags
Return values
int —The current user ID
reset()
Reset all globals to initial state.
public
static reset() : void
Primarily used for testing.
setBackupRestoreEnabled()
Set whether backup restore is enabled.
public
static setBackupRestoreEnabled(bool|null $enabled) : void
Parameters
- $enabled : bool|null
-
Whether to enable backup restore, null for default
Tags
setCurrentUserId()
Set the current authenticated user ID.
public
static setCurrentUserId(int|null $userId) : void
This should be called after successful authentication to establish the user context for all subsequent database operations.
Parameters
- $userId : int|null
-
The authenticated user's ID, or null to clear
Tags
setCurrentUserIsAdmin()
Set whether the current user is an admin.
public
static setCurrentUserIsAdmin(bool $isAdmin) : void
This should be called after successful authentication to establish the admin context for authorization checks.
Parameters
- $isAdmin : bool
-
Whether the current user is an admin
Tags
setDatabaseName()
Set the database name.
public
static setDatabaseName(string $name) : void
Parameters
- $name : string
-
The database name
setDbConnection()
Set the database connection.
public
static setDbConnection(mysqli $connection) : void
Parameters
- $connection : mysqli
-
The mysqli connection object
setErrorDisplay()
Enable or disable error display.
public
static setErrorDisplay(bool $enabled) : void
Parameters
- $enabled : bool
-
True to enable error display
setMultiUserEnabled()
Enable multi-user mode.
public
static setMultiUserEnabled(bool $enabled) : void
When enabled, QueryBuilder will automatically filter queries by user_id for user-scoped tables.
Parameters
- $enabled : bool
-
Whether to enable multi-user mode
Tags
table()
Get a table name.
public
static table(string $tableName) : string
Convenience method to get a full table name.
Parameters
- $tableName : string
-
The base table name (e.g., 'words')
Return values
string —The table name