|
52 | 52 | Redis and Memcached are example of such adapters. If a DSN is used as the |
53 | 53 | provider then a service is automatically created. |
54 | 54 |
|
55 | | -There are two pools that are always enabled by default. They are ``cache.app`` and |
56 | | -``cache.system``. The system cache is used for things like annotations, serializer, |
57 | | -and validation. The ``cache.app`` can be used in your code. You can configure which |
58 | | -adapter (template) they use by using the ``app`` and ``system`` key like: |
59 | | - |
60 | | -.. configuration-block:: |
61 | | - |
62 | | - .. code-block:: yaml |
63 | | -
|
64 | | - # config/packages/cache.yaml |
65 | | - framework: |
66 | | - cache: |
67 | | - app: cache.adapter.filesystem |
68 | | - system: cache.adapter.system |
69 | | -
|
70 | | - .. code-block:: xml |
71 | | -
|
72 | | - <!-- config/packages/cache.xml --> |
73 | | - <?xml version="1.0" encoding="UTF-8" ?> |
74 | | - <container xmlns="http://symfony.com/schema/dic/services" |
75 | | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
76 | | - xmlns:framework="http://symfony.com/schema/dic/symfony" |
77 | | - xsi:schemaLocation="http://symfony.com/schema/dic/services |
78 | | - https://symfony.com/schema/dic/services/services-1.0.xsd |
79 | | - http://symfony.com/schema/dic/symfony |
80 | | - https://symfony.com/schema/dic/symfony/symfony-1.0.xsd"> |
81 | | -
|
82 | | - <framework:config> |
83 | | - <framework:cache app="cache.adapter.filesystem" |
84 | | - system="cache.adapter.system" |
85 | | - /> |
86 | | - </framework:config> |
87 | | - </container> |
88 | | -
|
89 | | - .. code-block:: php |
90 | | -
|
91 | | - // config/packages/cache.php |
92 | | - $container->loadFromExtension('framework', [ |
93 | | - 'cache' => [ |
94 | | - 'app' => 'cache.adapter.filesystem', |
95 | | - 'system' => 'cache.adapter.system', |
96 | | - ], |
97 | | - ]); |
98 | | -
|
99 | 55 | The Cache component comes with a series of adapters pre-configured: |
100 | 56 |
|
101 | 57 | * :doc:`cache.adapter.apcu </components/cache/adapters/apcu_adapter>` |
@@ -182,6 +138,71 @@ will create pools with service IDs that follow the pattern ``cache.[type]``. |
182 | 138 | ], |
183 | 139 | ]); |
184 | 140 |
|
| 141 | +System Cache and Application Cache |
| 142 | +---------------------------------- |
| 143 | + |
| 144 | +There are two pools that are always enabled by default. They are |
| 145 | +``cache.system`` and ``cache.app``. |
| 146 | + |
| 147 | +The system cache ``cache.system`` is used for things like annotations, |
| 148 | +serializer, and validation. Usage is reserved for Symfony components |
| 149 | +and you should not use it for application cache needs. |
| 150 | +By default the system cache uses the special ``cache.adapter.system`` adapter |
| 151 | +which writes to the file system and chains the APCu adapter if APCu is |
| 152 | +available. In most cases the default adapter should be the right choice for |
| 153 | +your application. It will also be warmed when calling the ``cache:warmup`` |
| 154 | +command. |
| 155 | + |
| 156 | +The application cache ``cache.app`` can be used in your application and bundle |
| 157 | +code. It defaults to use ``cache.adapter.filesystem`` but may be reconfigured |
| 158 | +to fit your needs. Custom pools (see section below) will default to use |
| 159 | +``cache.app`` as adapter unless specified. |
| 160 | +When using autowiring in your service definitions, ``cache.app`` will by |
| 161 | +default be injected if a service argument declares ``CacheItemPoolInterface``, |
| 162 | +``AdapterInterface``, or ``CacheInterface`` as its type. |
| 163 | + |
| 164 | +You can configure which adapter (template) these predefined pools use by using |
| 165 | +the ``app`` and ``system`` key like: |
| 166 | + |
| 167 | +.. configuration-block:: |
| 168 | + |
| 169 | + .. code-block:: yaml |
| 170 | +
|
| 171 | + # config/packages/cache.yaml |
| 172 | + framework: |
| 173 | + cache: |
| 174 | + app: cache.adapter.filesystem |
| 175 | + system: cache.adapter.system |
| 176 | +
|
| 177 | + .. code-block:: xml |
| 178 | +
|
| 179 | + <!-- config/packages/cache.xml --> |
| 180 | + <?xml version="1.0" encoding="UTF-8" ?> |
| 181 | + <container xmlns="http://symfony.com/schema/dic/services" |
| 182 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 183 | + xmlns:framework="http://symfony.com/schema/dic/symfony" |
| 184 | + xsi:schemaLocation="http://symfony.com/schema/dic/services |
| 185 | + https://symfony.com/schema/dic/services/services-1.0.xsd |
| 186 | + http://symfony.com/schema/dic/symfony |
| 187 | + https://symfony.com/schema/dic/symfony/symfony-1.0.xsd"> |
| 188 | +
|
| 189 | + <framework:config> |
| 190 | + <framework:cache app="cache.adapter.filesystem" |
| 191 | + system="cache.adapter.system" |
| 192 | + /> |
| 193 | + </framework:config> |
| 194 | + </container> |
| 195 | +
|
| 196 | + .. code-block:: php |
| 197 | +
|
| 198 | + // config/packages/cache.php |
| 199 | + $container->loadFromExtension('framework', [ |
| 200 | + 'cache' => [ |
| 201 | + 'app' => 'cache.adapter.filesystem', |
| 202 | + 'system' => 'cache.adapter.system', |
| 203 | + ], |
| 204 | + ]); |
| 205 | +
|
185 | 206 | Creating Custom (Namespaced) Pools |
186 | 207 | ---------------------------------- |
187 | 208 |
|
|
0 commit comments