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,81 @@ 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 mainly used by Symfony components for
148
+ things like annotations, serializer, and validation. For advanced use-cases it
149
+ is also available for application code under the following constraints:
150
+
151
+ - Entries are derived from source code and can be generated during cache warmup
152
+ by a CacheWarmer
153
+ - Cached content only needs to change if the source code also changes (i.e.
154
+ only on deployment on non-development machines); it should be regarded as
155
+ read-only after deployment
156
+
157
+ By default the system cache uses the special ``cache.adapter.system `` adapter
158
+ which writes to the file system and chains the APCu adapter if APCu is
159
+ available. In most cases the default adapter should be the right choice for
160
+ your application.
161
+
162
+ The application cache ``cache.app `` can be used as a multi-purpose data cache
163
+ in your application and bundle code. In general, data in this pool does not
164
+ need to be flushed on deployment. It defaults to ``cache.adapter.filesystem ``
165
+ but it is recommended to configure another adapter like Redis if available, so
166
+ that data both "survives" deployments and is available on multiple instances in
167
+ a multi-server setup.
168
+ Custom pools (see section below) will default to ``cache.app `` as adapter if
169
+ not specified explicitly.
170
+ When using autowiring in your service definitions, ``cache.app `` will by
171
+ default be injected if a service argument declares ``CacheItemPoolInterface ``,
172
+ ``AdapterInterface ``, or ``CacheInterface `` as its type.
173
+
174
+ You can configure which adapter (template) these predefined pools use by using
175
+ the ``app `` and ``system `` key like:
176
+
177
+ .. configuration-block ::
178
+
179
+ .. code-block :: yaml
180
+
181
+ # config/packages/cache.yaml
182
+ framework :
183
+ cache :
184
+ app : cache.adapter.filesystem
185
+ system : cache.adapter.system
186
+
187
+ .. code-block :: xml
188
+
189
+ <!-- config/packages/cache.xml -->
190
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
191
+ <container xmlns =" http://symfony.com/schema/dic/services"
192
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
193
+ xmlns : framework =" http://symfony.com/schema/dic/symfony"
194
+ xsi : schemaLocation =" http://symfony.com/schema/dic/services
195
+ https://symfony.com/schema/dic/services/services-1.0.xsd
196
+ http://symfony.com/schema/dic/symfony
197
+ https://symfony.com/schema/dic/symfony/symfony-1.0.xsd" >
198
+
199
+ <framework : config >
200
+ <framework : cache app =" cache.adapter.filesystem"
201
+ system =" cache.adapter.system"
202
+ />
203
+ </framework : config >
204
+ </container >
205
+
206
+ .. code-block :: php
207
+
208
+ // config/packages/cache.php
209
+ $container->loadFromExtension('framework', [
210
+ 'cache' => [
211
+ 'app' => 'cache.adapter.filesystem',
212
+ 'system' => 'cache.adapter.system',
213
+ ],
214
+ ]);
215
+
185
216
Creating Custom (Namespaced) Pools
186
217
----------------------------------
187
218
0 commit comments