Mam do zaprezentowania własną klasę do cachowania. Umożliwia ona obok podstawowej funkcji odczytywania danych z danym czasem ważności podział danych na grupy, usuwanie wybranych danych z cache, grupy, bądź całego cache, wybór sterowników (aktualnie utworzona jest jedna strategia - do zapisu do plików, jednak spełniając interfejs CacheDriver możemy napisać własny - np. do zapisu do pamięci czy bazy), prosty debugMode - włączenie spowoduje wyrzucanie wyjątków.
Kod sprawdzany na PHP 5.2.1, powinien uruchamiać się na każdym PHP5.
Klasa jest opublikowana na licencji GPL.
Przykład:
require_once 'cache.class.php';
require_once 'fileCacheDriver.class.php';
function getPrinters(){
return array('HP 845C', 'Canon E23', 'Lexmark L45');
}
try {
$cache=new Cache();
$cache->addDriver('file', new FileCacheDriver());
$printers=$cache->get('products', 'printers', 500); # zwraca dane z cache z grupy products o id printers
if($printers===false) { #nie ma danych w cache
$printers=getPrinters();
$cache->set('products', 'printers', $printers); #ustawia dane do cache
}
var_dump($printers);
}
catch (CacheException $e){
echo 'Error: '.$e->getMessage();
}
Pokaż cały kod
Pobierz
Ostatnimi czasy moja alternatywna skrzynka na o2.pl jest zasypywana mailami o bezpieczeństwie - normalnie kilkanaście. W związku z tym napisałem do tej kochanej (tu akurat bez ironii, cenię sobie oferowane przez o2 usługi, choć mogliby się zająć bardziej poważnymi rzeczami niż pudelek) firmy taki oto list:
Witam,
Od jakiegoś czasu codziennie dostaję kilka (czasem kilkanaście) identycznych wiadomości od Państwa zatytułowanych “Pamiętaj o bezpieczeństwie swojej poczty”, wszystkie mają datę wysyłki 14 lut 2008 21:56.
Przyjdzie mi poinformować, iż jak najbardziej pamiętam o bezpieczeństwu mojej poczty!
Pragnę dodać iż kilkukrotne przypominanie mi o ułożeniu sobie dobrego hasła, nie dość, że nie przynosi skutków, gdyż takie działanie (tj. ułożenie nowego hasła) uważam za bezsensowny trud w polepszaniu bezpieczeństwa mojej skrzynki pocztowej oferowanej przez jakże dbającą o bezpieczeństwo klientów Państwa firmę, chociażby z takiego powodu, że moja pamięć nie jest na tyle dobra, by zapamiętać tak szybko zmieniające się hasła.
Co więcej otrzymywanie takiej ilości przypomnień działa mi na nerwy i być może zmusi do zaprzestania użytkowania Waszych troskliwych usług. Rozumiem, że podczas rejestracji wedle punktu II.10 regulaminu zgodziłem się na otrzymywanie “komunikatów lub informacji o2.pl Sp. z o.o. lub innych podmiotów (za wiedzą i wyraźnym przyzwoleniem o2.pl Sp. z o.o.) oraz informacji dotyczących produktów lub usług o2.pl Sp. z o.o. jak i innych podmiotów”, zwanych prze ze mnie spamem, jednak proszę, urozmaićcie trochę ofertę, co, jestem w to przekonany, zwiększy Wasze obroty finansowe.
Reasumując proszę o zaprzestanie przypominania mi o bezpieczeństwie – oczywiście na moją odpowiedzialność!
Pozdrawiam,
Mateusz Wójcik.
PS. Na stronie kontaktowej (kontakt.o2.pl) umieszczacie Państwo informację, jakoby Wasza skrzynka oferowała zaledwie 1 GB pojemności. Stawiam pytanie, gdzie istnieje pomyłka – na stronie kontaktowej czy na stronie głównej portalu?
Ciekaw jestem jak zareagują na ten raczej mało poważny list. Jeżeli ciekawie to zamieszcze
Co do PS - machnęli się na stronie
:

Drzewa kategorii w relacyjnych bazach danych to ciekawy temat. Różnych implementacji takich drzew jest wiele, ale żadna nie jest idealna – istotna jest łatwość w modyfikacji drzewa, szybkość pobierania danej gałęzi do wyświetlania, czy zliczania podkategorii w gałęzi.
Jak wspomniałem implementacji jest wiele – poczynając od podstawowego lecz nieoptymalnego rozwiązania z polem identyfikacyjnym rodzica, po nested sets czy metodę depesza. Część z nich opisanych jest tutaj.
Mi jednak spodobał się jeszcze inny sposób - Materialized Path AKA drzewka ip.
Continue reading “Drzewa kategorii w SQL i PHP metodą IP”
Blogbox to nowo powstały agregator blogowy, podobny do 10przykazań, Blogfroga czy Blogowiska. Blogbox wygląda nieco profesjonalniej od tych pozostałych serwisów, ponadto zawiera innowacyjną metodę dodawania blogów.
Aby blog trafił na listę musi w ciągu miesiąca dostać taką liczbę głosów, by różnica między głosami na TAK i głosami na NIE wynosiła minimum 50. Niedawno dodałem swojego bloga, także było by mi bardzo miło, gdybyście wsparli go głosami pozytywnymi w głosowaniu.
Z góry dzięki.
Na przestrzeni dwóch tygodni wydano 2 nowe wersje frameworka CodeIgniter 1.6.0 i 1.6.1. O ile pierwsza aktualizacja była dość spora, to druga przynosi niewiele zmian, ale i tak jak na projekt, który wydawał się umierać, taki nagły zryw może zdumiewać.
Z głównych zmian, jakie przyniosły nowe wersje wyróżnić można nową klasę DBForge do manipulacji bazami danych i ich tabel, dodanie nowych przydatnych metod do Active Record (tyle, że nie wiedzieć czemu ten twór przyjmuje taką nazwę - przykładową implementację wzorca Active Record można zobaczyć tu), a także wiele innych zmian, nowych funkcji i poprawek bugów. Pełny opis zmian w ChangeLog.
Czy te zmiany uratują ten framework? Raczej nie. Perspektywa znanej nam z CI elastyczności i lekkości, wzbogacona o nowe możliwości, PHP5, dynamikę rozwoju i inne plusy Kohany przekonuje, że to raczej w tym frameworku drzemie przyszłość. Tym bardziej, że zmiany w CI nie są jakieś rewolucyjne, dodatkowo developerzy nie zapowiadają przejścia na PHP5.
Biorąc to wszystko pod uwagę przechodzę na Kohane, podobnie zresztą czyni sporo dotychczasowych użytkowników CI. W każdym bądź razie do CI zostanie sentyment, sporo w końcu w nim czasu się bawiłem.
PS. Zarejestrowałem bloga na nowo powstałym Blogbox. Jak komuś podoba się mój blog, to proszę pomóc mu dostać się tam poprzez głosowanie :]
Dodatkowo zainspirowany notką założyłem sobie OpenID na myopenid.com oraz dodałem wtyczkę OpenID do Wordpressa także możecie pisać komentarze za pomocą swojego OpenID