Tworzenie prostej klasy oprogramowania pośredniego

Tworzenie prostej klasy oprogramowania pośredniego

Problem

Chcesz dodać oprogramowanie pośrednie do swojej aplikacji, ale nie wiesz, od czego zacząć.

Rozwiązanie

Utwórz prostą klasę oprogramowania pośredniego.

Krok 1 - Utwórz klasę

Użyj Symfony \ Component \ httpfoundation \ żądanie;
Użyj Symfony \ Component \ Httpfoundation \ Response;
Użyj Symfony \ Component \ httpkernel \ httpkernelinterface;
Klasa oprogramowania pośredniego implementuje httpkernelinterface
chroniona aplikacja $;
/**
* Konstruktor
*/
funkcja publiczna __Construct (httpkernelinterface $ App)

$ this-> app = $ app;

/**
* Obsługuj żądanie, zwróć odpowiedź
*
* @Implements httpkerneLinterface :: uchwyt
*
* @param \ Symfony \ Component \ httpfoundation \ żądanie $ żądanie
* @param int $ typ
* @param bool $ catch
* @return \ Symfony \ Component \ httpfoundation \ Odpowiedź
*/
Publiczny uchwyt funkcji (żądanie $ żądanie,
$ type = httpkerneLinterface :: master_request, $ catch = true)

// 1) W razie potrzeby zmodyfikuj żądanie przychodzące

// 2) Łańcz obsługę aplikacji, aby uzyskać odpowiedź
$ response = $ this-> app-> uchwyt ($ żądanie, $ type, $ catch);
// 3) W razie potrzeby zmodyfikuj odpowiedź

// 4) Zwróć odpowiedź
zwrot $ odpowiedź;


?>

Krok 2 - Zarejestruj klasę oprogramowania pośredniego

Musisz to zrobić w metodzie rejestru () usługodawcy.

App :: „MyApp \ Middleware”);

Alternatywnie możesz zainstalować prosty pakiet, który umożliwia zarejestrowanie oprogramowania pośredniego App/Start/Preboot.php. Aby uzyskać szczegółowe informacje.

Dyskusja

Powyższa klasa nic nie robi.

Ale to dobry szkielet na początek. Oczywiście musisz zmienić przestrzeń nazw i nazwę klas, aby pasować do Twojej aplikacji.

Wtedy możesz spróbować zarejestrować coś, aby upewnić się, że to działa. Możesz zaktualizować metodę klasę, jak określono poniżej.

// w kroku nr 1) W razie potrzeby zmodyfikuj żądanie przychodzące
// Zaloguj się do pliku. Od aplikacji/start/global.PHP nie został trafiony
// jednak fasada dziennika nie jest jeszcze ustawiona na logowanie do pliku. Więc tylko
// zapisz bezpośrednio do pliku.
$ logFile = Storage_Path ().'/logs/laravel.dziennik';
ERROR_LOG („WEJŚCIE MILDEWAŻ \ N”, 3, $ LOGFILE);
// w kroku #3) Zmodyfikuj odpowiedź w razie potrzeby
// Zaloguj się do pliku. Jesteśmy teraz bezpieczni w użyciu fasady dziennika
// powinno być skonfigurowane w App/Start/Global.php
Log :: info („Middleware Exit”);

Teraz możesz zbadać swoje App/Storage/Logs/Laravel.dziennik Plik, aby zobaczyć, że twoje oprogramowanie pośrednie działa.