mirror of
https://github.com/flextype/flextype.git
synced 2025-08-08 22:26:46 +02:00
Merge branch 'Move_to_PhpFastCache_#457' into dev
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
"doctrine/collections": "~1.6.7",
|
||||
|
||||
"flextype-components/arrays" : "3.0.1",
|
||||
"flextype-components/strings" : "1.0.0",
|
||||
"flextype-components/cookie" : "1.2.0",
|
||||
"flextype-components/filesystem" : "2.0.8",
|
||||
"flextype-components/i18n" : "1.3.0",
|
||||
|
@@ -11,7 +11,7 @@ namespace Flextype;
|
||||
|
||||
use Bnf\Slim3Psr15\CallableResolver;
|
||||
use Cocur\Slugify\Slugify;
|
||||
//use Flextype\App\Foundation\Cache\Cache;
|
||||
use Flextype\Component\Strings\Strings;
|
||||
use Flextype\App\Foundation\Cors;
|
||||
use Flextype\App\Foundation\Entries\Entries;
|
||||
use Flextype\App\Foundation\Media\MediaFiles;
|
||||
@@ -102,17 +102,6 @@ flextype()->container()['slugify'] = static function () {
|
||||
|
||||
flextype()->container()['cache'] = static function () {
|
||||
|
||||
$drivers = [
|
||||
'apcu' => 'Apcu',
|
||||
'wincache' => 'Wincache',
|
||||
'array' => 'Array',
|
||||
'filesystem' => 'Filesystem',
|
||||
'memcached' => 'Memcached',
|
||||
'redis' => 'Redis',
|
||||
'sqlite3' => 'SQLite3',
|
||||
'zenddatacache' => 'ZendDataCache',
|
||||
];
|
||||
|
||||
$driver_name = flextype('registry')->get('flextype.settings.cache.driver');
|
||||
|
||||
if (! $driver_name || $driver_name === 'auto') {
|
||||
@@ -126,47 +115,90 @@ flextype()->container()['cache'] = static function () {
|
||||
}
|
||||
|
||||
if (flextype('registry')->get('flextype.settings.cache.enabled') === false) {
|
||||
$driver_name = 'Devfalse';
|
||||
$driver_name = 'devfalse';
|
||||
}
|
||||
|
||||
function getDriverConfig(string $driver_name): array
|
||||
{
|
||||
$config = [];
|
||||
|
||||
foreach (flextype('registry')->get('flextype.settings.cache.drivers.'. $driver_name) as $key => $value) {
|
||||
if ($key == 'path' && in_array($driver_name, ['files', 'sqlite', 'leveldb'])) {
|
||||
$config['path'] = (!empty($value)) ? PATH['cache'] . $value : sys_get_temp_dir();
|
||||
} else {
|
||||
$config[Strings::camel($key)] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
switch ($driver_name) {
|
||||
case 'apcu':
|
||||
$config = new \Phpfastcache\Drivers\Apcu\Config([]);
|
||||
$config = new \Phpfastcache\Drivers\Apcu\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'wincache':
|
||||
$config = new \Phpfastcache\Drivers\Wincache\Config([]);
|
||||
case 'cassandra':
|
||||
$config = new \Phpfastcache\Drivers\Cassandra\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'cookie':
|
||||
$config = new \Phpfastcache\Drivers\Cookie\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'couchbase':
|
||||
$config = new \Phpfastcache\Drivers\Couchbase\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'couchdb':
|
||||
$config = new \Phpfastcache\Drivers\Couchdb\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'devfalse':
|
||||
$config = new \Phpfastcache\Drivers\Devfalse\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'devnull':
|
||||
$config = new \Phpfastcache\Drivers\Devnull\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'devtrue':
|
||||
$config = new \Phpfastcache\Drivers\Devtrue\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'files':
|
||||
$config = new \Phpfastcache\Drivers\Files\Config([
|
||||
'path' => flextype('registry')->get('flextype.cache.drivers.files.path') !=='' ? PATH['cache'] . '/' . flextype('registry')->get('flextype.cache.drivers.files.path') : sys_get_temp_dir(),
|
||||
'secureFileManipulation' => flextype('registry')->get('flextype.settings.cache.drivers.files.secure_file_manipulation'),
|
||||
'htaccess' => flextype('registry')->get('flextype.settings.cache.drivers.files.htaccess'),
|
||||
'securityKey' => (string) flextype('registry')->get('flextype.settings.cache.drivers.files.security_key'),
|
||||
'cacheFileExtension' => flextype('registry')->get('flextype.settings.cache.drivers.files.cache_file_extension'),
|
||||
'itemDetailedDate' => flextype('registry')->get('flextype.settings.cache.drivers.files.item_detailed_date'),
|
||||
'autoTmpFallback' => flextype('registry')->get('flextype.settings.cache.drivers.files.auto_tmp_fallback'),
|
||||
'defaultTtl' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_ttl'),
|
||||
'defaultKeyHashFunction' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_key_hash_function'),
|
||||
'defaultFileNameHashFunction' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_file_name_hash_function'),
|
||||
'defaultChmod' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_chmod'),
|
||||
'preventCacheSlams' => flextype('registry')->get('flextype.settings.cache.drivers.files.prevent_cache_slams'),
|
||||
'cacheSlamsTimeout' => flextype('registry')->get('flextype.settings.cache.drivers.files.cache_slams_timeout'),
|
||||
]);
|
||||
$config = new \Phpfastcache\Drivers\Files\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'leveldb':
|
||||
$config = new \Phpfastcache\Drivers\Leveldb\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'memcache':
|
||||
$config = new \Phpfastcache\Drivers\Memcache\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'memcached':
|
||||
$config = new \Phpfastcache\Drivers\Memcached\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'memstatic':
|
||||
$config = new \Phpfastcache\Drivers\Memstatic\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'mongodb':
|
||||
$config = new \Phpfastcache\Drivers\Mongodb\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'predis':
|
||||
$config = new \Phpfastcache\Drivers\Predis\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'redis':
|
||||
$config = new \Phpfastcache\Drivers\Redis\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'riak':
|
||||
$config = new \Phpfastcache\Drivers\Riak\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'sqlite':
|
||||
$config = new \Phpfastcache\Drivers\Sqlite\Config([
|
||||
'path' => flextype('registry')->get('flextype.cache.drivers.files.path') !=='' ? PATH['cache'] . '/' . flextype('registry')->get('flextype.cache.drivers.files.path') : sys_get_temp_dir(),
|
||||
'secureFileManipulation' => flextype('registry')->get('flextype.settings.cache.drivers.files.secure_file_manipulation'),
|
||||
'htaccess' => flextype('registry')->get('flextype.settings.cache.drivers.files.htaccess'),
|
||||
'securityKey' => (string) flextype('registry')->get('flextype.settings.cache.drivers.files.security_key'),
|
||||
'cacheFileExtension' => flextype('registry')->get('flextype.settings.cache.drivers.files.cache_file_extension'),
|
||||
'itemDetailedDate' => flextype('registry')->get('flextype.settings.cache.drivers.files.item_detailed_date'),
|
||||
'autoTmpFallback' => flextype('registry')->get('flextype.settings.cache.drivers.files.auto_tmp_fallback'),
|
||||
'defaultTtl' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_ttl'),
|
||||
'defaultChmod' => flextype('registry')->get('flextype.settings.cache.drivers.files.default_chmod'),
|
||||
'preventCacheSlams' => flextype('registry')->get('flextype.settings.cache.drivers.files.prevent_cache_slams'),
|
||||
'cacheSlamsTimeout' => flextype('registry')->get('flextype.settings.cache.drivers.files.cache_slams_timeout'),
|
||||
]);
|
||||
$config = new \Phpfastcache\Drivers\Sqlite\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'ssdb':
|
||||
$config = new \Phpfastcache\Drivers\Ssdb\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'wincache':
|
||||
$config = new \Phpfastcache\Drivers\Wincache\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'zenddisk':
|
||||
$config = new \Phpfastcache\Drivers\Zenddisk\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
case 'zendshm':
|
||||
$config = new \Phpfastcache\Drivers\Zendshm\Config(getDriverConfig($driver_name));
|
||||
break;
|
||||
default:
|
||||
// code...
|
||||
@@ -176,69 +208,6 @@ flextype()->container()['cache'] = static function () {
|
||||
return new Cache($driver_name, $config);
|
||||
};
|
||||
|
||||
|
||||
if(flextype()->container('cache')->has('test-key')){
|
||||
// Setter action
|
||||
|
||||
echo '1';
|
||||
|
||||
|
||||
// Getter action
|
||||
$data = flextype()->container('cache')->get('test-key');
|
||||
|
||||
}else{
|
||||
echo '2';
|
||||
|
||||
$data = 'lorem ipsum';
|
||||
flextype()->container('cache')->set('test-key', 'lorem ipsum', 300);// 5 minutes
|
||||
|
||||
}
|
||||
|
||||
dd($data);
|
||||
|
||||
/**
|
||||
* Adds the cache adapter to the Flextype container
|
||||
*/
|
||||
flextype()->container()['cache_adapter'] = static function () {
|
||||
$driver_name = flextype('registry')->get('flextype.settings.cache.driver');
|
||||
|
||||
if (! $driver_name || $driver_name === 'auto') {
|
||||
if (extension_loaded('apcu')) {
|
||||
$driver_name = 'apcu';
|
||||
} elseif (extension_loaded('wincache')) {
|
||||
$driver_name = 'wincache';
|
||||
} else {
|
||||
$driver_name = 'phparrayfile';
|
||||
}
|
||||
}
|
||||
|
||||
$drivers_classes = [
|
||||
'apcu' => 'Apcu',
|
||||
'wincache' => 'WinCache',
|
||||
'phpfile' => 'PhpFile',
|
||||
'phparrayfile' => 'PhpArrayFile',
|
||||
'array' => 'Array',
|
||||
'filesystem' => 'Filesystem',
|
||||
'memcached' => 'Memcached',
|
||||
'redis' => 'Redis',
|
||||
'sqlite3' => 'SQLite3',
|
||||
'zenddatacache' => 'ZendDataCache',
|
||||
];
|
||||
|
||||
$class_name = $drivers_classes[$driver_name];
|
||||
|
||||
$adapter = "Flextype\\App\\Foundation\\Cache\\{$class_name}CacheAdapter";
|
||||
|
||||
return new $adapter();
|
||||
};
|
||||
|
||||
/**
|
||||
* Add cache service to Flextype container
|
||||
*/
|
||||
flextype()->container()['cache'] = static function () {
|
||||
return new Cache();
|
||||
};
|
||||
|
||||
/**
|
||||
* Add shortcode parser service to Flextype container
|
||||
*/
|
||||
|
@@ -126,7 +126,7 @@ entries:
|
||||
|
||||
cache:
|
||||
enabled: true
|
||||
driver: sqlite
|
||||
driver: auto
|
||||
drivers:
|
||||
apcu: {}
|
||||
cassandra:
|
||||
@@ -164,14 +164,14 @@ cache:
|
||||
devfalse: {}
|
||||
devtrue: {}
|
||||
files:
|
||||
path: /tmp
|
||||
path: '/data'
|
||||
security_key: 'auto'
|
||||
htaccess: true
|
||||
secure_file_manipulation: false
|
||||
cache_file_extension: txt
|
||||
default_ttl: 900
|
||||
leveldb:
|
||||
path: /tmp
|
||||
path: '/data'
|
||||
security_key: 'auto'
|
||||
htaccess: true
|
||||
default_ttl: 900
|
||||
@@ -180,7 +180,7 @@ cache:
|
||||
port: 11211
|
||||
sasl_user: ''
|
||||
sasl_password: ''
|
||||
path: '/'
|
||||
path: ''
|
||||
compress_data: false
|
||||
servers: {}
|
||||
default_ttl: 900
|
||||
@@ -189,7 +189,7 @@ cache:
|
||||
port: 11211
|
||||
sasl_user: ''
|
||||
sasl_password: ''
|
||||
path: '/'
|
||||
path: ''
|
||||
compress_data: false
|
||||
servers: {}
|
||||
default_ttl: 900
|
||||
@@ -226,7 +226,7 @@ cache:
|
||||
prefix: 'riak'
|
||||
default_ttl: 900
|
||||
sqlite:
|
||||
path: /tmp
|
||||
path: '/data'
|
||||
security_key: auto
|
||||
htaccess: true
|
||||
default_ttl: 900
|
||||
|
Reference in New Issue
Block a user