VOOZH about

URL: https://deepwiki.com/auth0/wordpress/1.3-requirements-and-dependencies

⇱ Requirements and Dependencies | auth0/wordpress | DeepWiki


Loading...
Menu

Requirements and Dependencies

This page documents the minimum system requirements, version support policies, and external dependencies required to run the Auth0 WordPress Plugin. This includes PHP runtime requirements, WordPress version compatibility, required PHP extensions, Composer package dependencies, and infrastructure prerequisites.

For installation instructions and configuration steps, see Installation. For details on the development environment setup, see Development Setup.


PHP Runtime Requirements

Minimum Version

The plugin requires PHP 8.1 or higher. This requirement is enforced at the Composer dependency level composer.json36


Version Support Policy

The plugin's PHP version support window mirrors the PHP release support schedule. Support for PHP versions ends when they stop receiving security fixes from the PHP project.

Current Support Matrix:

Plugin VersionPHP VersionSupport Ends
58.3Nov 2026
58.2Dec 2025
58.1Nov 2024

Important: Deprecation of PHP versions that have reached end-of-life is not considered a breaking change and will not result in a major version bump README.md197-198 Sites running unsupported PHP versions will continue to function but will not receive plugin updates until the PHP runtime is upgraded.

Sources: README.md22-28 README.md186-199 composer.json36


Required PHP Extensions

The plugin requires the following PHP extensions to be installed and enabled:

ExtensionPurpose
jsonJSON encoding/decoding for API communication and token processing
opensslCryptographic operations including JWT signature verification and secret generation

These extensions are declared as hard requirements in the Composer manifest composer.json37-38:


The openssl extension is specifically used during plugin activation to generate three cryptographic secrets (cookies, back-channel logout, and authentication) using random_bytes() as described in the Plugin Initialization and Lifecycle Flow diagram.

Sources: composer.json37-38 README.md24


WordPress Requirements

Minimum Version

The plugin requires WordPress 6 or higher. As stated in the official support policy, only the most recent version of WordPress marked as "actively supported" by Automattic is supported README.md25 README.md189

Rationale: Automattic's policy states that "security patches are backported when possible, but this is not guaranteed." To ensure reliable security, the plugin only supports the actively maintained WordPress release.

Version Support Policy

Current Support Matrix:

Plugin VersionWordPress VersionSupport Ends
56TBD (follows Automattic's support schedule)

Like PHP version deprecations, WordPress version deprecations are not considered breaking changes and will not result in a major version bump.

Sources: README.md25 README.md189 README.md191-195


Composer Dependencies

Auth0-PHP SDK

The plugin is built on top of the Auth0-PHP SDK which provides the core authentication and management API functionality. The plugin requires version 8.18 or higher composer.json39:


The Auth0-PHP SDK instance is initialized by the Plugin singleton and accessed throughout the codebase. For custom WordPress development, developers should use wpAuth0()->getSdk() to retrieve the configured SDK instance rather than extending the plugin's internal classes README.md173-182

PSR Standard Implementations

The Auth0-PHP SDK depends on several PHP Standards Recommendations (PSR) interfaces. When the plugin is installed via Composer, the consuming application must provide implementations for:

  • PSR-18 (HTTP Client): Interface for sending HTTP requests
  • PSR-17 (HTTP Factory): Interface for creating PSR-7 HTTP messages
  • PSR-6 (Cache): Interface for caching (declared as direct dependency)

The PSR-6 Cache interface is explicitly required composer.json40:


Recommended Implementations

The recommended installation command includes two libraries that satisfy PSR-18 and PSR-17 requirements README.md65:


However, any compatible PSR-18 and PSR-17 implementations can be used. Alternative providers are available from Packagist:

For Bedrock or other Composer-based WordPress configurations, these implementations may already be satisfied by other installed packages, allowing installation of auth0/wordpress without additional dependencies README.md73-74

Sources: README.md68-77 composer.json39-40


Dependency Resolution Architecture

The following diagram illustrates how the plugin's dependencies are resolved at runtime and how PSR interfaces are satisfied:


Dependency Resolution Flow:

  1. The WordPress Plugin declares auth0/auth0-php as a direct dependency
  2. The Auth0-PHP SDK declares PSR-18, PSR-17, and PSR-6 interface dependencies
  3. Composer requires the consuming application to provide concrete implementations
  4. The recommended installation command includes symfony/http-client and nyholm/psr7
  5. Any compatible PSR implementation can be substituted based on the application's needs

Sources: composer.json35-41 README.md68-77


Database Requirements

The plugin uses custom database tables to guarantee high performance for user account mapping and event synchronization. These tables are:

  • auth0_accounts - Maps WordPress user IDs to Auth0 subject identifiers
  • auth0_sync - Queues user synchronization events for background processing

Required Permissions

The database credentials configured for WordPress must have table creation privileges README.md26 README.md159 During plugin activation and on subsequent runs, the plugin will create these tables if they do not exist using the Database abstraction layer.

The rationale for custom tables (rather than WordPress options or post meta) is explicitly stated in the codebase as being for high performance on high-traffic sites with frequent user operations, as described in the Data Flow - WordPress to Auth0 Synchronization diagram.

Sources: README.md26 README.md157-161


WordPress Infrastructure Requirements

Cron Configuration

The plugin uses WordPress's background task manager to perform critical periodic tasks including:

  • User synchronization event processing (AUTH0_CRON_SYNC)
  • Account table maintenance (AUTH0_CRON_MAINTENANCE)

Default Behavior: WordPress cron runs on every page load, which is inadvisable for production sites README.md167

Production Recommendation: Configure WordPress to use a system cron job to run these tasks periodically README.md167 This ensures reliable background processing without impacting site performance.

The sync system architecture (described in the Data Flow - WordPress to Auth0 Synchronization diagram) relies on scheduled cron execution to process the auth0_sync table queue.

Sources: README.md163-168


Development Dependencies

The following table lists additional dependencies required only for development, testing, and building the plugin. These are declared in the require-dev section composer.json42-59:

PackagePurpose
humbug/php-scoperNamespace isolation for vendor dependencies during build
pestphp/pestTesting framework
phpstan/phpstanStatic analysis
vimeo/psalmStatic analysis
friendsofphp/php-cs-fixerCode formatting
rector/rectorAutomated refactoring
mockery/mockeryTest mocking
nyholm/psr7PSR-7/PSR-17 implementation for testing
symfony/cachePSR-6 cache implementation for testing

These dependencies are not required for production installations and are automatically excluded when installing with --no-dev flag or when the build process creates the distribution ZIP.

Sources: composer.json42-59


Dependency Scope Diagram

The following diagram maps dependencies to their usage contexts within the plugin architecture:


Key Dependency Relationships:

  1. Bootstrap Phase: wpAuth0.php uses ext-openssl to generate cryptographic secrets during activation
  2. Initialization Phase: Plugin singleton creates the Auth0-PHP SDK instance with PSR dependencies
  3. Authentication Phase: Authentication class validates tokens using the SDK, which requires ext-json for JWT decoding
  4. Synchronization Phase: Synchronization class processes queued events via WordPress cron, calling the Management API through the SDK
  5. Configuration Phase: Configuration class stores settings in WordPress database using wpdb

Sources: composer.json35-41 README.md169-184


Installation Verification Checklist

Before installing the plugin, verify your environment meets these requirements:

PHP Environment:

  • PHP version is 8.1 or higher (php -v)
  • ext-json is installed and enabled (php -m | grep json)
  • ext-openssl is installed and enabled (php -m | grep openssl)

WordPress Environment:

  • WordPress version 6 or higher
  • Database user has table creation permissions
  • WordPress cron is configured (preferably system cron for production)

Composer Installation:

  • Composer is installed (composer --version)
  • PSR-18 implementation is available (or will be installed)
  • PSR-17 implementation is available (or will be installed)
  • PSR-6 cache implementation is available (or will be installed)

Infrastructure:

  • Site uses HTTPS (required for secure OAuth flows)
  • Site URL is accessible from Auth0 (not localhost in production)
  • wp-login.php is never cached

Sources: README.md22-28 README.md157-168


Compatibility Notes

WPackagist Compatibility

The plugin is compatible with WPackagist, allowing installation via Composer in standard WordPress setups and WordPress distributions like Bedrock README.md58

Bedrock Installations

For Bedrock installations, the Composer command is typically run from the root WordPress installation directory. Bedrock often includes PSR implementations, so the minimal installation command may suffice README.md60 README.md73:


Standard WordPress Installations

For standard WordPress installations, run the Composer command from the wp-content/plugins subdirectory with all dependencies README.md62 README.md65:


Sources: README.md56-77


Support Policy Summary

The plugin follows an active deprecation policy for platform versions:

  • PHP versions are deprecated when they stop receiving security fixes from the PHP project
  • WordPress versions are deprecated when they exit Automattic's "actively supported" window
  • Deprecations are not breaking changes - no major version bump occurs
  • Existing installations continue to function but do not receive updates until upgraded

Composer and WordPress package managers prevent automatic upgrades to incompatible versions, ensuring stability.

Sources: README.md186-199