blob: 5c23a3a644823215f6ce793ab20a24319d52e62a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<?php
/**
* Handles storage of message change files.
*
* @author Niklas Laxström
* @license GPL-2.0-or-later
* @since 2016.02
* @file
*/
class MessageChangeStorage {
const DEFAULT_NAME = 'default';
/**
* Writes change array as a serialized file.
*
* @param array $array Array of changes as returned by processGroup
* indexed by message group id.
* @param string $file Which file to use.
*/
public static function writeChanges( $array, $file ) {
$cache = \Cdb\Writer::open( $file );
$keys = array_keys( $array );
$cache->set( '#keys', serialize( $keys ) );
foreach ( $array as $key => $value ) {
$value = serialize( $value );
$cache->set( $key, $value );
}
$cache->close();
}
/**
* Validate a name.
*
* @param string $name Which file to use.
* @return bool
*/
public static function isValidCdbName( $name ) {
return preg_match( '/^[a-zA-Z_-]{1,100}$/', $name );
}
/**
* Get a full path to file in a known location.
*
* @param string $name Which file to use.
* @return string
*/
public static function getCdbPath( $name ) {
return TranslateUtils::cacheFile( "messagechanges.$name.cdb" );
}
}
|