|
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