|
1 |
| -# PHP-Cache cache-bundle |
2 |
| -[](https://travis-ci.org/php-cache/cache-bundle) [](https://insight.sensiolabs.com/projects/ea12a1b3-09c9-4f0a-9a2c-63d72b47db5a) |
3 |
| - |
4 |
| -#### Cache Bundle for Symfony 2.6 and above |
| 1 | +# PSR-6 Cache bundle |
| 2 | +[](https://packagist.org/packages/cache/cache-bundle) [](https://codecov.io/github/php-cache/cache-bundle?branch=master) [](https://travis-ci.org/php-cache/cache-bundle) [](https://packagist.org/packages/cache/cache-bundle) [](https://packagist.org/packages/cache/cache-bundle) [](https://insight.sensiolabs.com/projects/21963379-2b15-4cc4-bdf6-0f98aa292f8a) [](LICENSE) |
5 | 3 |
|
6 | 4 | This is a Symfony bundle that lets you you integrate your PSR-6 compliant cache service with the framework.
|
7 | 5 | It lets you cache your sessions, routes and Doctrine results and metadata. It also provides an integration with the
|
8 |
| -debug toolbar. |
9 |
| - |
10 |
| - |
11 |
| -#### Requirements |
| 6 | +debug toolbar. This bundle does not contain any pool implementation nor does it help you register cache pool services. |
| 7 | +You maybe interested in [AdapterBundle](https://github.com/php-cache/adapter-bundle) which will help you configure and |
| 8 | +register PSR-6 cache pools as services. |
12 | 9 |
|
13 |
| -- PHP >= 5.5, < 7.1 |
14 |
| -- Symfony >= 2.6, ^3.0 |
15 |
| -- [Composer](http://getcomposer.org) |
| 10 | +This bundle is a part of the PHP Cache organisation. To read about features like tagging and hierarchy support please |
| 11 | +read the shared documentation at [www.php-cache.com](http://www.php-cache.com). |
16 | 12 |
|
17 | 13 | ### To Install
|
18 | 14 |
|
19 |
| -You need to install and enable this bundle and also a PSR-6 cache implementation. In the example below we use the |
20 |
| -[DoctrineAdapterBundle]. |
21 |
| - |
22 | 15 | Run the following in your project root, assuming you have composer set up for your project
|
23 | 16 | ```sh
|
24 |
| -composer require cache/cache-bundle cache/doctrine-adapter-bundle |
| 17 | +composer require cache/cache-bundle |
25 | 18 | ```
|
26 | 19 |
|
27 |
| -Add the bundles to app/AppKernel.php |
| 20 | +Add the bundle to app/AppKernel.php |
28 | 21 |
|
29 | 22 | ```php
|
30 | 23 | $bundles(
|
31 | 24 | // ...
|
32 | 25 | new Cache\CacheBundle\CacheBundle(),
|
33 |
| - new Cache\Adapter\DoctrineAdapterBundle\DoctrineAdapterBundle(), |
34 | 26 | // ...
|
35 | 27 | );
|
36 | 28 | ```
|
37 | 29 |
|
38 |
| -To see all the config options, run `php app/console config:dump-reference cache` to view the config settings |
39 |
| - |
40 |
| - |
41 |
| -#### A word on the cache implementation |
42 |
| - |
43 |
| -This bundle does not register any cache services for you. This is done by [DoctrineAdapterBundle] you should look |
44 |
| -at its documentation to see how you configure that bundle. Below in an example configuration: |
45 |
| - |
46 |
| -```yml |
47 |
| -cache_adapter_doctrine: |
48 |
| - providers: |
49 |
| - acme_redis_cache: |
50 |
| - type: redis |
51 |
| - database: 'foo' |
52 |
| - acme_apc_cache: |
53 |
| - type: apc |
54 |
| - namespace: my_ns |
55 |
| -``` |
56 |
| -
|
57 |
| -### Configuration |
58 |
| -
|
59 |
| -#### Doctrine |
60 |
| -
|
61 |
| -This bundle allows you to use its services for Doctrine's caching methods of metadata, result, and query. To use this |
62 |
| -feature you need to install the [DoctrineBridge]. |
63 |
| -
|
64 |
| -```sh |
65 |
| -composer require cache/psr-6-doctrine-bridge |
66 |
| -``` |
67 |
| - |
68 |
| - |
69 |
| -If you want Doctrine to use this as the result and query cache, you need this configuration: |
70 |
| - |
71 |
| -```yml |
72 |
| -cache: |
73 |
| - doctrine: |
74 |
| - enabled: true |
75 |
| - metadata: |
76 |
| - service_id: cache.provider.acme_redis_cache |
77 |
| - entity_managers: [ default ] # the name of your entity_manager connection |
78 |
| - document_managers: [ default ] # the name of your document_manager connection |
79 |
| - result: |
80 |
| - service_id: cache.provider.acme_redis_cache |
81 |
| - entity_managers: [ default, read ] # you may specify multiple entity_managers |
82 |
| - query: |
83 |
| - service_id: cache.provider.acme_redis_cache |
84 |
| - entity_managers: [ default ] |
85 |
| -``` |
86 |
| -
|
87 |
| -To use this with Doctrine's entity manager, just make sure you have `useResultCache` and/or `useQueryCache` set to true. |
88 |
| - |
89 |
| -```php |
90 |
| -$em = $this->get('doctrine.orm.entity_manager'); |
91 |
| -$q = $em->('SELECT u.* FROM Acme\User u'); |
92 |
| -$q->useResultCache(true, 3600); |
93 |
| -$result = $q->getResult(); |
94 |
| -
|
95 |
| -``` |
96 |
| - |
97 |
| -#### Session |
98 |
| - |
99 |
| -This bundle even allows you to store your session data in one of your cache clusters. To enable: |
100 |
| - |
101 |
| -```yml |
102 |
| -cache: |
103 |
| - session: |
104 |
| - enabled: true |
105 |
| - service_id: cache.provider.acme_redis_cache |
106 |
| - ttl: 7200 |
107 |
| -``` |
108 |
| - |
109 |
| -#### Router |
110 |
| - |
111 |
| -This bundle also provides router caching, to help speed that section up. To enable: |
112 |
| - |
113 |
| -```yml |
114 |
| -cache: |
115 |
| - router: |
116 |
| - enabled: true |
117 |
| - service_id: cache.provider.acme_redis_cache |
118 |
| - ttl: 86400 |
119 |
| -``` |
120 |
| - |
121 |
| -If you change any of your routes, you will need to clear the cache. If you use a cache implementation that supports |
122 |
| -tagging (implements [TaggablePoolInterface](https://github.com/php-cache/taggable-cache/blob/master/src/TaggablePoolInterface.php)) |
123 |
| -you can clear the cache tagged with `routing`. |
124 |
| - |
125 |
| -The routing cache will make the route lookup more performant when your application have many routes, especially many |
126 |
| -dynamic routes. If you just have a few routes your performance will actually be worse enabling this. |
127 |
| -Use [Blackfire](https://blackfire.io/) to profile your application to see if you should enable routing cache or not. |
128 |
| - |
129 |
| - |
130 |
| -#### Logging |
131 |
| - |
132 |
| -If you want to log all the interaction with the cache you may do so with the following configuration. |
133 |
| - |
134 |
| -```yml |
135 |
| -cache: |
136 |
| - logging: |
137 |
| - enabled: true |
138 |
| - logger: 'logger' # Default service id to use for logging |
139 |
| - level: 'info' # Default logging level |
140 |
| -``` |
141 |
| - |
142 |
| -#### Annotation |
143 |
| - |
144 |
| -To use a PSR-6 cache for your annotations, use the following confguration. |
145 |
| - |
146 |
| -```yml |
147 |
| -cache: |
148 |
| - annotation: |
149 |
| - enabled: true |
150 |
| - service_id: cache.provider.acme_apc_cache |
151 |
| - |
152 |
| -framwork: |
153 |
| - annotations: |
154 |
| - cache: cache.service.annotation |
155 |
| -``` |
156 |
| - |
157 |
| -#### Serialization |
158 |
| - |
159 |
| -To use a PSR-6 cache for the serialzer, use the following confguration. |
160 |
| - |
161 |
| -```yml |
162 |
| -cache: |
163 |
| - serializer: |
164 |
| - enabled: true |
165 |
| - service_id: cache.provider.acme_apc_cache |
166 |
| - |
167 |
| -framwork: |
168 |
| - serializer: |
169 |
| - cache: cache.service.serializer |
170 |
| -``` |
171 |
| - |
172 |
| -#### Validation |
173 |
| - |
174 |
| -To use a PSR-6 cache for the validation, use the following confguration. |
175 |
| - |
176 |
| -```yml |
177 |
| -cache: |
178 |
| - validation: |
179 |
| - enabled: true |
180 |
| - service_id: cache.provider.acme_apc_cache |
181 |
| -
|
182 |
| -framwork: |
183 |
| - validation: |
184 |
| - cache: cache.service.validation |
185 |
| -``` |
186 |
| - |
187 |
| - |
188 |
| -### Clearing the cache |
189 |
| - |
190 |
| -If you want to clear the cache you can run the following commands. |
191 |
| - |
192 |
| -```sh |
193 |
| -php app/console cache:flush session |
194 |
| -php app/console cache:flush router |
195 |
| -php app/console cache:flush doctrine |
196 |
| -
|
197 |
| -echo "Or you could run:" |
198 |
| -php app/console cache:flush all |
199 |
| -
|
200 |
| -echo "Run the following command to see all your options:" |
201 |
| -php app/console cache:flush help |
202 |
| -``` |
203 |
| - |
204 |
| -*Caution: If you are using a implementation that does not support tagging you will clear all with any of the above commands.* |
205 |
| - |
206 |
| -### Need Help? |
207 |
| - |
208 |
| -Create an issue if you've found a bug, or ping one of us on twitter: @aequasi or @TobiasNyholm |
209 |
| - |
210 |
| - |
211 |
| -[DoctrineAdapterBundle]:https://github.com/php-cache/doctrine-adapter-bundle |
212 |
| -[DoctrineBridge]:https://github.com/php-cache/doctrine-bridge |
| 30 | +Read the documentation at [www.php-cache.com/symfony/cache-bundle](http://www.php-cache.com/en/latest/symfony/cache-bundle/). |
0 commit comments