Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Порівняння попередніх версій Попередня ревізія | Попередня ревізія | ||
|
ubillingcache [2018/12/11 13: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 і все це тільки тому, що наркотики - зло. | ||
| + | </ | ||