maxserv / composer-application-context
Installs: 264
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Type:composer-plugin
Requires
- composer-plugin-api: ^1.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-06 22:45:31 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
.