Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Порівняння попередніх версій Попередня ревізія | Попередня ревізія | ||
ubillingcache [2018/08/03 01:47] |
ubillingcache [2023/06/16 15:39] (поточний) nightfly |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
+ | ====== Підсистема кешування ====== | ||
+ | Являє собою штатний рівень абстракції для задач, котрі вимагають кешування даних на певний час. Присутній у складі, | ||
+ | |||
+ | <code ini> | ||
+ | ; Встановлює тип сховища системного кешу, можливі значення: | ||
+ | ; files - у файлах, | ||
+ | ; memcached - використовує Memcached для кешування даних в оперативній пам' | ||
+ | ; redis - використовує Redis як мережеве журнальоване сховище даних типу " | ||
+ | ; fake - фейковий кеш - вважається, | ||
+ | UBCACHE_STORAGE=files | ||
+ | ; Необов' | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | </ | ||
+ | |||
+ | ====== Приклад використання ====== | ||
+ | |||
+ | Вся робота з класом намотана навколо методу **getCallback**: | ||
+ | |||
+ | <code php> | ||
+ | $cache = new UbillingCache(); | ||
+ | $cacheTime=60; | ||
+ | $someData = $cache-> | ||
+ | return (web_AnalyticsPaymentsMonthGraph(' | ||
+ | }, $cacheTime); | ||
+ | |||
+ | // | ||
+ | show_window(__(' | ||
+ | </ | ||
+ | |||
+ | Варто зауважити, | ||
+ | |||
+ | ====== ООП або використання у своєму класі ====== | ||
+ | |||
+ | Для протягування властивостей вашого об' | ||
+ | |||
+ | <code php> | ||
+ | | ||
+ | $result = ''; | ||
+ | $this-> | ||
+ | // а саме створюємо $this-> | ||
+ | $obj = $this; // а ось власне і хак | ||
+ | $result = $this-> | ||
+ | return ($obj-> | ||
+ | }, $this-> | ||
+ | return ($result); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ====== Очищення ====== | ||
+ | |||
+ | Хоча дані з кеша самостійно видаляються після закінчення часу $expiration, | ||
+ | |||
+ | <code php> | ||
+ | $cache-> | ||
+ | </ | ||
+ | |||
+ | ====== А якщо без наркоманії? | ||
+ | |||
+ | Ви можете використовувати це все просто на рівні set/get, вказуючи час зберігання даних ключа в кеші. Так, у цьому разі нам доведеться самим вирішувати, | ||
+ | |||
+ | Якось так: | ||
+ | |||
+ | <code php> | ||
+ | $cache=new UbillingCache(); | ||
+ | $cacheTime=60; | ||
+ | $dataToPush=' | ||
+ | |||
+ | |||
+ | // | ||
+ | $dataInCache=$cache-> | ||
+ | if (!empty($dataInCache)) { | ||
+ | //якщо щось отримано і воно не порожнє - показуємо це у віконці | ||
+ | show_window(__(' | ||
+ | } else { | ||
+ | // | ||
+ | $cache-> | ||
+ | show_warning(__(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Слід також пам' | ||
+ | |||
+ | ====== Memcached ====== | ||
+ | |||
+ | Цілком зрозуміло, | ||
+ | |||
+ | / | ||
+ | <file ini rc.conf> | ||
+ | memcached_enable=" | ||
+ | memcached_flags=" | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | # / | ||
+ | </ | ||
+ | |||
+ | ====== Redis ====== | ||
+ | |||
+ | Вмикаємо в / | ||
+ | |||
+ | <file ini rc.conf> | ||
+ | redis_enable=" | ||
+ | </ | ||
+ | |||
+ | з подальшим запуском | ||
+ | < | ||
+ | # service redis restart | ||
+ | </ | ||
+ | |||
+ | ====== Хочу особливе сховище ====== | ||
+ | |||
+ | Припустимо, | ||
+ | |||
+ | <code php> | ||
+ | $this-> | ||
+ | $this-> | ||
+ | // а в конфігурації для всієї іншої системи в нас буде взагалі memcached і все це тільки тому, що наркотики - зло. | ||
+ | </ |