Register Plugin
If you want to use the Doctrine cache component, skip this section.
If you want to use your own version of cache plugin, use following pattern.
<?php
namespace YourNamespace;
use Bartlett\Reflect\Plugin\CachePlugin as BaseCachePlugin;
class CachePlugin extends BaseCachePlugin
{
// all additional code you need
}
And the configuration in JSON file :
{
"source-providers": [
],
"plugins": [
{
"name": "Cache",
"class": "YourNamespace\\CachePlugin",
"options": []
}
],
"analysers" : [
],
"services": [
]
}
Doctrine Adapter
Use one of the most famous caching solution, provided by the Doctrine project.
Use this shortcut version that is strictly equivalent to next in section file cache.
{
"source-providers": [
],
"plugins": [
{
"name": "Cache",
"class": "Bartlett\\Reflect\\Plugin\\CachePlugin",
"options": []
}
],
"analysers" : [
],
"services": [
]
}
File cache
Doctrine File backend to store your Reflect results in the local file system.
{
"source-providers": [
],
"plugins": [
{
"name": "Cache",
"class": "Bartlett\\Reflect\\Plugin\\CachePlugin",
"options": {
"adapter": "DoctrineCacheAdapter",
"backend": {
"class": "Doctrine\\Common\\Cache\\FilesystemCache",
"args": [
"%{TEMP}/bartlett/cache"
]
}
}
}
],
"analysers" : [
],
"services": [
]
}
In the source code above, we use the standard Doctrine File cache provider, and store results in the default system temporary directory ( see php sys_get_temp_dir() function ).
SQLite3 cache
See a full example with doctrine SQLite3Cache driver at https://raw.githubusercontent.com/llaville/php-reflect/master/examples/api_analyser_run_with_cache.php