davereid / drupal-environment
Provides a helper for working with environment variables and Drupal hosting providers.
Installs: 182 540
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 4
Forks: 1
Open Issues: 5
Requires
- php: >=7.3
Requires (Dev)
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpunit/phpunit: ^9
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.7
- symfony/phpunit-bridge: ^6.3
This package is auto-updated.
Last update: 2024-11-04 17:52:24 UTC
README
Provides a class for working with Drupal environments and environment variables.
This also standardizes some environment terminology between hosting providers so that you can use the same code across different hosts:
Basic Usage
Getting an environment variable
use DrupalEnvironment\Environment; $value = Environment::get('VARIABLE_NAME');
The advantages of using this is the results are statically cached.
Testing for Drupal hosting or CI environments
use DrupalEnvironment\Environment; // These all return a boolean true/false Environment::isPantheon(); Environment::isAcquia(); Environment::isTugboat(); Environment::isGitHubWorkflow(); Environment::isGitLabCi(); Environment::isCircleCi();
Testing for specific environments
use DrupalEnvironment\Environment; // This gets the specific environment string. $environment = Environment::getEnvironment(); // These all return a boolean true/false Environment::isProduction(); Environment::isStaging(); Environment::isDevelopment(); Environment::isCi(); Environment::isLocal(); // Covers both DDEV and Lando Environment::isDdev(); Environment::isLando();
Testing for executable commands
use DrupalEnvironment\Environment; // This returns a boolean true/false: Environment::commandExists('composer');
Example usage
settings.php
use DrupalEnvironment\Environment; if (Environment::isProduction()) { // Set some production environment settings overrides. } elseif (Environment::isStaging()) { // Set some staging environment settings overrides. } elseif (Environment::isDevelopment()) { // Set some development environment settings overrides. } elseif (Environment::isLocal()) { // Set some development environment settings overrides. } // Include a environment-specific settings file. if ($environment = Environment::getEnvironment()) { $settings_file = 'settings.' . $environment . '.php'; if (is_file($settings_file)) { require_once $settings_file; } }