Logowanie z użyciem fasad (np. uproszczenie dostępu do logera)

Założenie: Uprościć dostęp do funkcji logowania w aplikacji PHP za pomocą wzorca fasady.

Krok po kroku:

  1. Stworzenie interfejsu Loggera: Definiujemy interfejs, który będzie określał metody logowania.
  2. 
    interface LoggerInterface {
        public function log(string $message, string $level = 'info'): void;
    }
    				

    Ten kod definiuje interfejs LoggerInterface z metodą log(), która przyjmuje wiadomość i poziom logowania (opcjonalnie).

  3. Implementacja Loggera (np. plikowy): Tworzymy klasę implementującą interfejs, która zapisuje logi do pliku.
  4. 
    class FileLogger implements LoggerInterface {
        private string $filePath;
    
        public function __construct(string $filePath) {
            $this->filePath = $filePath;
        }
    
        public function log(string $message, string $level = 'info'): void {
            $logMessage = date('Y-m-d H:i:s') . " [$level] $message\n";
            file_put_contents($this->filePath, $logMessage, FILE_APPEND);
        }
    }
    				

    Klasa FileLogger zapisuje wiadomości do pliku określonego w konstruktorze. Dodaje datę, poziom i treść wiadomości.

  5. Stworzenie Fasady: Tworzymy klasę fasady, która udostępnia uproszczony interfejs do logowania.
  6. 
    class LoggerFacade {
        private LoggerInterface $logger;
    
        public function __construct(LoggerInterface $logger) {
            $this->logger = $logger;
        }
    
        public function logInfo(string $message): void {
            $this->logger->log($message, 'info');
        }
    
        public function logError(string $message): void {
            $this->logger->log($message, 'error');
        }
        // ... inne metody dla różnych poziomów logowania
    }
    				

    Fasada LoggerFacade ukrywa złożoność implementacji logera, oferując proste metody logInfo i logError.

  7. Użycie Fasady: W aplikacji używamy fasady do logowania.
  8. 
    $logger = new FileLogger('log.txt');
    $facade = new LoggerFacade($logger);
    
    $facade->logInfo('Użytkownik zalogował się.');
    $facade->logError('Wystąpił błąd.');
    				

    Ten kod pokazuje, jak łatwo używać fasady do logowania różnych typów wiadomości.

Ten przykład pokazuje, jak użyć wzorca fasady do uproszczenia dostępu do logera. Zachęcamy do dalszego zgłębiania tematu wzorców projektowych w PHP!

Dodaj komentarz 0

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