Projektując klasę do obsługi plików i katalogów( operacje typu wyszukiwanie, ładowanie, upload i tworzenie) przy kwestii wyszukiwania i ładowania plików natknąłem się na problem. Bardziej na zagadnienie z wieloma rozwiązaniami. Prosiłbym was o wskazanie rozwiązania, może ktoś już spotkał się z tymi pomysłami i wybrał właściwe.
Rozwiązanie 1: tworzymy strukturę katalogów i plików, zapisujemy do cache, w razie potrzeby wyszukujemy wśród tej struktury odpowiedniego pliku. Cache odświeżany raz dziennie oraz w przypadku uploadu/tworzenia plików/katalogów.
Rozwiązanie 2: przy pomocy glob tworzymy strukturę plików odpowiadającą wzorcowi (rozszerzenie i przeznaczenie pliku np. moduł, plugin).
Rozwiązanie 3: bezpośrednie wyszukiwanie wszystkich możliwych ścieżek do plików i sprawdzanie czy plik istnieje.
Najlepsze wydaje się rozwiązanie 1 jednak nie jest ono optymalne pod względem aktualności danych. Rozwiązanie 3 to za dużo możliwości do sprawdzenia i wymagana większa ilość parametrów-bardziej złożone nazwy zawierające nazwy podkatalogów. Rozwiązanie 2 opiera się na glob - nigdy nie wiadomo ile plików znajdzie czyli ilość możliwości zmienna - może być lepiej ale może być też gorzej

Ma ktoś jeszcze inne rozwiązania?
Wyjaśnienie działania: W kontrolerze aplikacji wydaję polecenie wczytania składowych systemu typu sterownik bazy danych, system szablonów, systemy poboczne (np File::load('db'), File::load('view')), lub wczytania kontrolera strony index (File::load('index')). Chcę uzyskać konkretny plik to w drugim parametrze podaję katalog (File::load('index','controller')) chcę wskazać precyzyjnie jaka paczka to trzeci parametr. Zawężając w ten sposób ilość wyników.
A może moje rozumowanie jest kompletnie złe? Nakierujcie mnie proszę
