Logowanie z użyciem wzorców projektowych (np. Singleton, Factory)

Założenie: Zbudujemy prosty system logowania, wykorzystując wzorzec Singleton do zarządzania pojedynczym obiektem logowania i wzorzec Factory do tworzenia różnych typów logów (np. do pliku, bazy danych).

Krok po kroku:

  1. Stworzenie klasy Singleton dla logowania:
  2. 
    log[] = date('Y-m-d H:i:s') . ' - ' . $message;
        }
    
        public function getLog() {
            return $this->log;
        }
    }
    ?>
    				

    Tworzymy klasę `Logger` jako singleton. Metoda `getInstance()` zapewnia, że istnieje tylko jedna instancja tej klasy. Metoda `log()` dodaje wiadomość do tablicy `$log`, a `getLog()` zwraca całą historię logów.

  3. Stworzenie klasy Factory do tworzenia różnych typów logów:
  4. 
    
    				

    Klasa `LoggerFactory` tworzy różne typy loggerów w zależności od parametru `$type`. W tym przykładzie obsługuje logi do pliku (założenie, że klasa `FileLogger` istnieje) i bazy danych (założenie, że klasa `DatabaseLogger` istnieje). Domyślnie zwraca instancję `Logger`.

  5. Użycie loggera:
  6. 
    log("Użytkownik zalogował się.");
    $logs = $logger->getLog();
    print_r($logs);
    ?>
    				

    W tym kroku pobieramy logger za pomocą fabryki i zapisujemy log. `print_r($logs)` wyświetla zawartość loga.

Ten przykład pokazuje podstawowe wykorzystanie wzorców projektowych Singleton i Factory w kontekście logowania. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi typami loggerów oraz bardziej zaawansowanymi wzorcami projektowymi.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *