Хранилище данных

Оглавление

1. Введение
2. Список методов




Введение #
К оглавлению

Часто бывает нужно передать большой объем разрозненной информации между скриптами. Для этого идеально подходит этот сервис. Суть его в том, что он помещает в один объект любые данные: переменные, массивы и готовые объекты. И передать эти данные в другой скрипт можно одним аргументом. А если сервис инициализировать, как shared, то и передавать ничего не нужно, данные и так будут доступны из сервиса.

Инициализировать сервис можно так:
1
2
3
4
5
6
7

    $storage 
ABC::newService(ABC::STORAGE);
    
    
// Или расшареный
    
$storage ABC::sharedService(ABC::STORAGE);
    




Данные хранятся под уникальными регистронезависимыми ключами в двух возможных уровнях. Однако при этом сохраняется оригинальное имя параметра.



Сервис хранилища предоставляет следующие публичные методы #
К оглавлению


1 add() Помещает данные в хранилище
2 addArray() Помещает в хранилище данные из массива
3 get() Получает данные из хранилища по ключу
4 getByName() Получает данные из хранилища по имени
5 all() Получает все данные из хранилища
6 has() Проверяет, есть ли в хранилище данные с таким именем и ключем
7 merge() Добавляет данные к уже существующим
8 delete() Удаляет из хранилища данные по указанному ключу и имени




add() public method
К списку методов

Помещает данные в хранилище.

Метод поместит данные в хранилище с оригинальным именем. Однако обратиться к этим данным можно по регистронезависимому имени. Если данные с таким адресом есть в хранилище, то они перезапишутся.

Если указать дополнительный ключ, данные будут упакованы в массив с именем ключа.
См. также addArray()

public Storage::add ( $name, $value, $key null )
$name string Имя параметра.
$value mixed Значение параметра.
$key string Ключ второго уровня.
return void


Примеры: #

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

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test 'Тестовые данные';
        
$storage->add('Test'$test);

        
var_dump($storage);
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=1)
      'test' => string 'Test' (length=4)
  private 'data' => 
    array (size=1)
      'Test' => string 'Тестовые данные' (length=29)
*/

        
$storage->add('Test'$test'data');

        
var_dump($storage);
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=1)
      'data' => 
        array (size=1)
          'test' => string 'Test' (length=4)
  private 'data' => 
    array (size=1)
      'data' => 
        array (size=1)
          'Test' => string 'Тестовые данные' (length=29)
*/
    






addArray() public method
К списку методов

Помещает данные в хранилище из массива.

Если передать аргументом массив, данные будут помещены с именами, соответствующими ключам массива, и значениями, соответствующими этим ключам. Если данные с таким адресом есть в хранилище, то они перезапишутся.

Усли указать ключ второго уровня, данные инкапсулируются в массив с именем этого ключа.
См. также add()

public Storage::addArray ( $array, $key null )
$array array Массив с параметрами.
$key string Ключ второго уровня.
return void


Примеры: #

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

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test);

        
var_dump($storage);
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=2)
      'first' => string 'First' (length=5)
      'second' => string 'Second' (length=6)
  private 'data' => 
    array (size=2)
      'First' => string 'Первое значение' (length=29)
      'Second' => string 'Второе значение' (length=29)
*/

        
$storage->addArray($test'Key');

        
var_dump($storage);
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=1)
      'Key' => 
        array (size=2)
          'first' => string 'First' (length=5)
          'second' => string 'Second' (length=6)
  private 'data' => 
    array (size=1)
      'Key' => 
        array (size=2)
          'First' => string 'Первое значение' (length=29)
          'Second' => string 'Второе значение' (length=29)
*/
    






get() public method
К списку методов

Получает данные из хранилища.

Метод извлекает данные из хранилища по регистронезависимому имени. Если данные хранятся с дополнительным ключем, нужно передать его вторым параметром.

public Storage::get ( $name, $key null )
$name string Имя параметра.
$key string Ключ второго уровня.
return mixed Данные из хранилища


Примеры: #

1
2
3
4
5
6
7
8
9
10
11
12
13

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test'Key');
        
$data $storage->get('first''Key');
        
var_dump($data);
//  string 'Первое значение' (length=29)
    






getByName() public method
К списку методов

Получает данные из хранилища по имени.

Метод извлекает данные из хранилища по регистронезависимому имени. Если данные не найдены, вернет дефолтное значение, переданное вторым аргументом

public Storage::getByName ( $name, $default null )
$name string Имя параметра.
$default mixed Значение, возвращаемое при отсутствии данных в хранилище.
return mixed Данные из хранилища или дефолтное значение


Примеры: #

1
2
3
4
5
6

        $data 
$storage->getByName('Dummy''Дефолтное значение');
        
var_dump($data);
//  string 'Дефолтное значение' (length=35)
    






all() public method
К списку методов

Получает все данные из хранилища.

Метод извлекает все данные из хранилища в виде массива. Если указан ключ, то вернет все данные с этим ключем

public Storage::all ( $key null )
$key string Ключ.
return mixed Данные из хранилища


Примеры: #

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

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test'Key');
        
$data $storage->all();
        
var_dump($data);
/*
array (size=1)
  'Key' => 
    array (size=2)
      'First' => string 'Первое значение' (length=29)
      'Second' => string 'Второе значение' (length=29)
*/
        
$data $storage->all('Key');
        
var_dump($data);
/*
array (size=2)
  'First' => string 'Первое значение' (length=29)
  'Second' => string 'Второе значение' (length=29)
*/
    






has() public method
К списку методов

Проверяет, есть ли данные в хранилище.

Вернет true, если данные есть, и false, если нет. Если указан ключ, поиск будет произведен в этом уровне.

public Storage::has ($name, $key null )
$name string Имя параметра
$key string Ключ
return boolean Результат поиска (булево значение)


Примеры: #

1
2
3
4
5
6
7
8
9
10
11
12

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test'Key');
        
        
var_dump($storage->has('First'));  // boolean false  
        
var_dump($storage->has('First''Key')); // boolean true






merge() public method
К списку методов

Добавляет данные к уже существующим.

Добавляет в массив с указанным ключем новые данные. Если данные с таким адресом есть в хранилище, то они перезапишутся.

public Storage::merge ( $name, $value, $key null )
$name string Имя параметра
$value mixed Значение
$key string Ключ
return mixed Void


Примеры: #

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

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test'Key');
        
        
$third 'Третье значение';
        
        
$storage->merge('Third'$third'Key');  
        
var_dump($storage); 
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=1)
      'Key' => 
        array (size=3)
          'first' => string 'First' (length=5)
          'second' => string 'Second' (length=6)
          'third' => string 'Third' (length=5)
  private 'data' => 
    array (size=1)
      'Key' => 
        array (size=3)
          'First' => string 'Первое значение' (length=29)
          'Second' => string 'Второе значение' (length=29)
          'Third' => string 'Третье значение' (length=29)
*/






delete() public method
К списку методов

Удаляет данные из хранилища

Удалит из хранилища данные с указанным именем и ключем.

public Storage::delete ( $name, $key null )
$name string Имя параметра
$key string Ключ
return mixed Void


Примеры: #

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

        $storage 
ABC::newService(ABC::STORAGE);       
 
        
$test = ['First' => 'Первое значение'
                 
'Second' => 'Второе значение'
        
];
        
        
$storage->addArray($test'Key');

        
$storage->delete('First''Key');  
        
var_dump($storage); 
/*
object(ABC\ABC\Services\Storage\Storage)[24]
  private 'names' => 
    array (size=1)
      'Key' => 
        array (size=1)
          'second' => string 'Second' (length=6)
  private 'data' => 
    array (size=1)
      'Key' => 
        array (size=1)
          'Second' => string 'Второе значение' (length=29)
*/