Cytat(bigZbig @ 24.08.2006, 11:26 )

Pliki raz znalezione zapisuj w mapie i wyszukiwanie zaczynaj wlasnie od tej mapy, a jak dany plik nie znajduje sie w mapie lub podana jest bledna lokalizacja to przystepuj do przeszukiwania katalogow.
Hmm czemu sam na to nie wpadłem - proste, elastyczne i w miarę wydajne... Za mało kawy chyba
Dzięki za pomysł - tak właśnie zrobię.
//edit zrobilem takie proste rozwiazanie, moze ktos madry rzuci okiem
Klasa jest singeltonem - dzieki temu nie trzeba wielokrotnie odczytywac i zapisycwac zmian -> zamiast tego jest flaga isChanged, ktora okresla czy destruktor ma zapisac plik z cachem sciezek.
@bigZbig Nie wiem czy dokladnie o to Co chodzilo, ale i tak jest to chyba lepsze rozwiazanie niz moj pierwszy post.
Kod AutoloaderaA tutaj przyklad uzycia - > specjalnie przeszukanie plikow wywalilem do __autoload i nie zawarlem w klasie, gdyz uznalem ze tak bedzie bardziej elastycznie
<?php
function __autoload($class_name)
{
$autoloader=Autoloader::getInstance();
//autoloader zwraca true jesli uda mu sie includowac plik (plik
//jest includowany wewnatrze obiektu autoloader.
//jesli autoloader zwraca false znaczy, ze brak pliku w mapie i trzeba go poszukac
if (!$autoloader->includeFile($class_name))
{
//tu nalezy podac wszystkie mozliwe sciezki, w ktorych bedziemy szukac plikow
$paths=array(MODEL_DIR
, MODEL_DIR
.'dao/', HELPER_CLASSES_DIR
, ); foreach($paths as $path)
{
//nalezy podac sposob budowy nazw pliku ->tu poprostu nazwa_klasy.php
$file=$path. $class_name. '.php';
{
include_once($file);
//w razie odnalezienia pliku dodajemy go do mapy, aby nastepnym razem juz
//nie trzeba bylo szukac
$autoloader->addItem($class_name, $file);
}
}
}
//tutaj ewentualny kod w razie nieodnalezienia klasy, np. informujacy o chwilowej
awarii itp
die ('Niestety nastapily chwilowe problemy z dostepem do strony- prosimy sprobowac pozniej'); }
?>
Kod jeszcze nie był specjalnie mocno testowany, ale wydaje się działać poprawnie. Będę wdzięczny za wszelkie sugestie