This blog post describes a small proof of concept how we can handle different plugin configurations for multi stage environments. I use our Paypal plugin as an example and will overwrite the two config values
At first, we have to create our environment variables. For a quick test, I added the environment variables to my
SetEnv paypalUsername EnvPayPalUsername SetEnv paypalPassword EnvPaypalPassword
I recommend for a production environment to set this kind of environment variables in your vhosts configuration file to protect you for unintentionally changes. After creating our environment variables we should make them available via the dependency injection container. You have to add the following lines to your config.php:
<?php return [ 'db' => [...], 'custom' => [ 'paypalUsername' => getenv('paypalUsername'), 'paypalPassword' => getenv('paypalPassword'), ], ];
With this addition our environment variables are available as parameter in the %shopware.custom% array.
In the last step we can install the ShopwareEnvironmentVariables plugin and extend our mapping in: Reader If you don't know the name of the configuration element, you can easily create a small debug statement in the Reader.php.
This is a very small proof of concept how to overwrite plugin configurations by environment variables. Nothing more. You can extends this proof of concept to overwrite other configurations as well.