In SilverStripe 3.4.1 I want to control _config.php
file values through the Admin settings. I want to set some variables in Admin > Settings > MyTab and then access these variables in _config.php
.
Is there a way to access SiteConfig
variables in the _config.php
file?
I tried to use several different ways to get the config data:
Config::inst()
print_r
/var_dump
gives all the values as an arrayConfig::inst()->get($this->class, 'PropertyName')
or $this->config()-> get('PropertyName')
SiteConfig::current_site_config()
or any other similar variations based on the previous two
The reason I want to do this is I have a plugin that replaces some SilverStripe default action but it requires some data to be inserted. If this data is not inserted it should stay as default.
Here are some resources I have read through to try to find a solution:
The issue is DB::connect
is not called at that stage in _config.php
. Therefore we cannot retrieve items from the database.
What we can do is call DB::connect
in our _config.php
before we retrieve our SiteConfig
.
Assuming our database config settings are stored in $databaseConfig
, here is the code to fetch our SiteConfig
:
DB::connect($databaseConfig);
$siteConfig = SiteConfig::current_site_config();
Then we can retrieve SiteConfig
variables like so:
$siteConfig->Title;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With