ONGR Settings Bundle uses Doctrines
PhpFileCache. It works very well, however,
it operates correctly only on a single server. If your system uses
numerous servers to improve its performance, the
not be able to clear the cache correctly throughout your architecture.
There are, in essence, two ways that you can fix this. Below is information about both of them.
Overriding the service
First one is simply overriding the cache service. You will need to use a different cache
Doctrine. More information on that can be found here.
Once you've picked a right class for the job, say
Memcache, you will need
to override the
ong_settings.cache_provider in your projects
file. Here is an example of the configuration:
services: memcache: class: Memcache calls: - [ addServer, [ "127.0.0.1", 11211 ]] - [ addServer, [ "127.0.0.2", 11211 ]] ong_settings.cache_provider: class: Doctrine\Common\Cache\MemcacheCache calls: - [setMemcache, ["@memcache"]]
Writing an event listener
The second option is to write an event listener that would listen to the
ONGR\SettingsBundle\Event\Evens::PRE_UPDATE event and would call the
ongr:settings:cache:clear command from the other servers. Setting name,
that should be provided to the command as an argument, can be fetched from