The Config object depends on the Event Dispatcher which depends on the Kernel which depends on PHP storage which by default depends on finding the public files directory which is retrieved using the Config object. This is a circular dependency.
The simple case of using settings.php to override very early configuration values is not working because , again, we need the whole Kernel to be up.
Yet, the write events are not reliable because config import and module install and whoever else wants to do so can bypass Config by using the storage layer instead. There is, in fact, no way, to react to the import or the install of new config. This has bitten me when I was trying to write my metadata patch and whileis a good idea it is not doable at this moment.
- Move the file path into settings.php as you need to copy the config directory anyways before you can change the file path so changing it is not supported from the UI anyways (catch pointed this out).
- Move the $conf override to something non-kernel dependent
- Remove the write events because they are unusuable.
Figure something out for writes which, again, is not kernel dependent.
User interface changes
We shall see.