Witam.
Spotkałem się z pewnym problemem przy projektowaniu aplikacji odnośnie obsługi błędów.
Najpierw opiszę strukturę aplikacji.
Posiadam klasę ErrorHandler, ktora zbiera wszystkie wystapienia bledow i nie przechwyconych wyjatkow do tablicy, ktore potem w czasie konczenia aplikacji sa wyswietlane na koncu strony i/lub w Javascriptowym okienku alert (to juz zalezy od uzytkownika, ktora wybierze metode). Klasa ta jest includowana recznie.
Klasa AdvancedErrorHandler dziedziczy po klasie ErrorHandler. Do tej klasy dodalem obsluge logowania do pliku wystapianych bledow i nieprzechwyconych wyjatkow oraz powiadamianie emailem administratora o zaistnialej sytuacji. Klasa jest rowniez ladowana recznie.
Klasa do wysylania emaili. Wiadomo co tu sie robi. Ladowana recznie.
Mam tez klase Linker, ktora automatycznie laduje plik klasy, gdy jest ona tak naprawde potrzebna. (Ladowana recznie - wiadome)
Chodzi mi o to, ze przyjalem taka koncepcje: Klasy, ktore sa potrzebne do obslugi bledow zaladowalem wszystkie recznie (uzywajac require_once) na poczatku skryptu, w sklad tych klas wchodza:
1. wspomniany ErrorHandler i AdvancedErrorHandler,
2. Logger wraz z klasą LoggerEngine (silnik logowania do pliku),
3. PHPMailer (do wysylania komunikatow administracyjnych),
4. Linker (do automatycznego ladowania klas),
5. Config (do zaladowania ustawien z pliku ini i zadeklarowania ich w skrypcie w postaci stalych).
Skrypt dziala tak, ze w pierwszej kolejnosci wlaczam obsluge bledow przez klasy w punkcie 1, potem dopiero klase do konfigurowania (punkt 5) i jeszcze pozniej klase ktora automatycznie ma ladowac moduly (punkt 4).
Dlaczego tak? Wydaje mi sie, ze mimo tego, ze sa to pliku na dysku i nikt nie ma w nie ingerencji, moze kiedys pojawic sie blad i na stronie zostana wyswietlone komunikaty o bledach, ktore wyswietla silnik php, chcac tego uniknac przyjalem instniejaca postac rzeczy i klase do obslugi bledow konfiguruje recznie w jej kodzie, oraz klase PHPMailer wlaczam recznie... Boje sie po prostu uzyc tutaj automatu do ladowania wczesniej niz uruchomienie funkcji obslugi bledow, gdyz mogloby sie tak zdarzyc, ze klasa obslugi bledow moze sie nie zaladowac, czy chocby klasa do wysylania komunikatow administracyjnych.
Moje pytanie jest wiec takie... czy lepiej by bylo, gdybym to zostawil tak jak jest, czy przerobil aplikacje tak, aby na samym poczatku zostala wlaczona klasa konfigurujaca, potem ta automatycznie ladujaca i potem gdy bede chcial wlaczyc moja klase do bledow, klasa ta zaladuje sie automatycznie no i gdy wystapia jakies bledy, automatycznie zostanie zaladowana tez klasa do wysylania emaila.
Czy moze istniec taka sytuacja, ze po jakims czasie rzeczywiscie te pliki moga sie automatycznie nie ladowac (powiedzmy ktos zmienil uprawnienia katalogow)?
Pozdrawiam serdecznie