maxserv/composer-application-context

There is no license information available for the latest version (1.0.2) of this package.

1.0.2 2020-03-06 12:21 UTC

This package is auto-updated.

Last update: 2024-04-06 21:20:45 UTC


README

This plugin sets some additional environment variables by patching entry files like index.php. In environments where FCGI variables can not be set this plugin patches a list of defined PHP files to bootstrap with the proper putenv calls to lete the application "think" it's running in a certain environment.

"extra": {
  "application-context": {
    "paths": [
      "index.php"
    ],
    "variables": {
      "APPLICATION_CONTEXT": "%env(APPLICATION_CONTEXT)%"
    }
  }
}

Variables that should be set and thus included in the generated snippet can be configured in composer.json under extra. Files that should be patched can also be configured here.

A snippet like the one below is added to the top each file.

// Prefixed by MaxServ\ComposerApplicationContext\Plugin
call_user_func(function(){
if (function_exists('getenv') !== false && function_exists('putenv') !== false){
if ('%env(APPLICATION_CONTEXT)%' !== '' && stripos('%env(APPLICATION_CONTEXT)%', '%env(') === false) {
  if (getenv('APPLICATION_CONTEXT') === false){putenv('APPLICATION_CONTEXT=%env(APPLICATION_CONTEXT)%');}
  if ($_SERVER['APPLICATION_CONTEXT'] === null){$_SERVER['APPLICATION_CONTEXT'] = '%env(APPLICATION_CONTEXT)%';}
}
}
});

At runtime the variable (that is possibly replaced by another script) is evaluated before invoking getenv and putenv.