Class Documentation: x_class_debug
Documentation
The x_class_debug
class is designed to aid in debugging and monitoring of PHP applications. It provides functionality to check for required PHP modules, display error screens, log errors, and gather system information. This class is useful for developers who need to ensure that their application has all necessary PHP extensions and to monitor the application’s resource usage and performance.
- Error Screen Customization: The
error_screen()
method provides a basic HTML template for displaying critical errors. Customize the HTML/CSS as needed for your application.
- Database Logging: The
js_error_action()
method requires a valid x_class_mysql
instance. Ensure that the database connection and table creation logic aligns with your database schema.
- System Resource Monitoring: Methods like
memory_usage()
, cpu_load()
, and upload_max_filesize()
provide insights into system resource usage and configuration settings.
This class provides various debugging tools to help with monitoring and troubleshooting PHP applications. It includes methods for:
- Displaying error screens.
- Checking for required PHP modules.
- Gathering system resource usage.
- Logging JavaScript errors to a database.
Requirements
PHP Modules
- None Required: The class utilizes built-in PHP functions and does not have external module dependencies beyond PHP itself.
External Classes
- x_class_mysql: Required for methods that interact with MySQL databases for logging errors. Ensure that the
x_class_mysql
class is properly included and instantiated in your application.
Table Structure
This section explains the table structure that will be automatically created by the debugging class to log JavaScript errors encountered by users. The table captures essential details such as the error message, user information, and the URL where the error occurred. Below is a summary of the columns and keys used in the table, along with their intended usage.
Column Name |
Data Type |
Attributes |
Description |
id |
int(11) |
NOT NULL , AUTO_INCREMENT , PRIMARY KEY |
A unique identifier for each error log entry. |
fk_user |
int(11) |
NOT NULL , DEFAULT 0 |
The foreign key referencing the user who encountered the error. Defaults to 0 if user is unknown. |
creation |
datetime |
DEFAULT CURRENT_TIMESTAMP |
The timestamp when the error was logged. Automatically set when a new record is inserted. |
errormsg |
longtext |
DEFAULT NULL |
The full error message captured from the JavaScript error. |
urlstring |
varchar(512) |
DEFAULT NULL |
The URL where the error occurred, providing context for the source of the error. |
section |
varchar(128) |
DEFAULT NULL |
For Multi Site Purposes to split database data in categories. |
Key Name |
Key Type |
Columns |
Usage |
PRIMARY KEY |
Primary |
id |
Ensures that each error log entry is uniquely identifiable. |
Class Properties
Property |
Type |
Description |
microtime_start |
float |
The timestamp when the object was instantiated, used for measuring elapsed time. |
Class Methods
__construct(...)
Parameter |
Type |
Description |
None |
None |
Initializes the microtime_start property with the current timestamp. |
- Description: Sets up the initial state of the object by recording the current time.
- Returns: None.
error_screen(...)
Parameter |
Type |
Description |
$text |
string |
The error message to display on the error screen. |
- Description: Displays a styled error page with a critical error message. This method sets the HTTP response code to 503 (Service Unavailable).
- Returns: None. Exits the script execution.
required_php_modules(...)
Parameter |
Type |
Description |
$array |
array |
An array of PHP module names to check. |
$errorscreen |
bool |
Optional. If true , will display an error screen if any module is missing (default is false ). |
- Description: Checks if the specified PHP modules are loaded. If some modules are missing and
$errorscreen
is true
, it will display an error screen.
- Returns: An array of missing module names if any; otherwise, an empty array.
required_php_module(...)
Parameter |
Type |
Description |
$name |
string |
The name of the PHP module to check. |
$errorscreen |
bool |
Optional. If true , will display an error screen if the module is missing (default is false ). |
- Description: Checks if a specific PHP module is loaded. If the module is missing and
$errorscreen
is true
, it will display an error screen.
- Returns:
true
if the module is loaded; false
otherwise.
php_modules(...)
Parameter |
Type |
Description |
None |
None |
Returns the list of currently loaded PHP extensions. |
- Description: Retrieves the list of PHP modules currently loaded in the environment.
- Returns: An array of loaded PHP module names.
memory_usage(...)
Parameter |
Type |
Description |
None |
None |
Returns the current memory usage. |
- Description: Retrieves the current memory usage of the script.
- Returns: A string representing the memory usage in kilobytes (e.g.,
"1024KB"
).
memory_limit(...)
Parameter |
Type |
Description |
None |
None |
Returns the maximum memory limit. |
- Description: Retrieves the memory limit set for the PHP script.
- Returns: A string representing the memory limit (e.g.,
"128M"
).
cpu_load(...)
Parameter |
Type |
Description |
None |
None |
Returns the current CPU load average. |
- Description: Retrieves the system’s average CPU load. Uses
sys_getloadavg()
if available.
- Returns: A float representing the average CPU load;
"intl-mod-missing"
if the function is not available.
upload_max_filesize(...)
Parameter |
Type |
Description |
None |
None |
Returns the maximum file upload size. |
- Description: Retrieves the maximum file upload size allowed by the PHP configuration.
- Returns: A string representing the maximum upload size (e.g.,
"2M"
).
timer(...)
Parameter |
Type |
Description |
None |
None |
Returns the elapsed time. |
- Description: Calculates and returns the elapsed time since the object was instantiated.
- Returns: A float representing the elapsed time in seconds, rounded to three decimal places.
js_error_script(...)
Parameter |
Type |
Description |
$action_url |
string |
The URL where JavaScript errors should be sent. |
- Description: Outputs JavaScript code to capture JavaScript errors and send them to the specified URL via a POST request.
- Returns: None. The JavaScript code is output directly.
js_error_action(...)
Parameter |
Type |
Description |
$x_class_mysql |
object |
An instance of the x_class_mysql class. |
$table |
string |
The name of the table where errors should be logged. |
$current_user_id |
int |
Optional. The ID of the current user (default is 0 ). |
$section |
string |
Optional. Additional context or section name (default is "" ). |
- Description: Logs JavaScript error details into a MySQL database. Creates the error table if it does not exist.
- Returns: None.
js_error_create_db(...)
Parameter |
Type |
Description |
$x_class_mysql |
object |
An instance of the x_class_mysql class. |
$table |
string |
The name of the table to create if it does not exist. |
- Description: Creates a MySQL table for logging JavaScript errors if it does not already exist.
- Returns: None.