Uruchamianie aplikacji w Laravelu

0

Witam, czy dobrze rozumiem: każde wysłane żądanie trafia do pliku index.php, a tam:

  1. zostaje utworzona nowa aplikacja: $app = require_once __DIR__.'/../bootstrap/app.php';
  2. ładowane są service providery i inne rzeczy potrzebne do działania Laravela: $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
  3. żądanie zostaje obsłużone i zostaje wysłana odpowiedź

Pewnie to głupie, ale tak sobie myślę: dlaczego za każdym razem, gdy zostanie wysłane żądanie, trzeba wykonywać to wszystko? Czy nie można by po prostu uruchomić tej aplikacji "na stałe" na serwerze i po nadejściu żądania od razu je obsługiwać?

0

Laravel to wygodny framework do prototypowania, albo tworzenia systemów, które nie będą mocno obciążone zapytaniami HTTP.

Jeżeli potrzebujesz wysokiej wydajności w przetwarzaniu żądań HTTP (szczególnie inicjalizacji frameworka/skryptu), to albo inny język, albo takie frameworki jak Phalcon.

W Phalconie większość inicjalizacji to kod bliblioteki frameworka zintegrowanej z PHP, i ładuje się to szybciej niż tradycyjny kod PHP z OPCache.

0

PHP to nie Java. W PHP każde żądanie ma swój początek i koniec. Gdy skrypt odpalony na początku dobiega końca, to wszystko jest rzucane w cholere. Jak nie upchnąłeś informacji do bazy/sesji/pliku czy gdzie tam jeszcze, to je tracisz.

Osobiście odradzam Phalcona. Sama idea była dobra, ale framework jest fatalny i trzeba się z nim cały czas walczyć. Jest dużo serwisów działających na Symfony/Laravelu, które dają radę ogarnąć dużo RPS.

0

Pisanie takich niekonkretnych ogólników jak "jest fatalny", albo "cały czas trzeba walczyć" to prosta droga do trollingu.

Jeżeli chesz wykazać wady jakiegoś rozwiązania to pisz konkretnie, a nie plotkuj jak stare baby w kolejce do fryzjera - dla dobra wszystkich. Ja sam jestem ciekaw z czym konkretnie musiałeś walczyć i co jest takiego fatalnego.

Poza tym chyba nie rozumiesz jednej rzeczy - Phalcon to biblioteka skompilowana do C, zintegrowana z PHP, tym samym inicjalizacja będzie ZAWSZE szybsza od jakiegokolwiek tradycyjnego frameworka pisanego w czystym PHP.

Jeżeli masz np. serwis który jest popularną grą online, gdzie masz po kilka tysięcy requestów HTTP na sekundę, to taka zaleta urasta do czegoś kluczowego, spróbuj to obsłużyć Laravelem albo Symfony to zmrozisz serwer, albo będziesz musiał robić Load Balancing na kilka serwerów www.

0

Teraz jeżeli masz np. serwis który jest popularną grą online, gdzie masz po kilka tysięcy requestów HTTP na sekundę

... to trzeba wykorzystać load balancer tak czy siak.
W ogóle chcąc iść w coś tak dużego, branie pod uwagę PHP jest szaleństwem.

0

Patryk27 - szaleństwo to za duże słowo, weź pod uwagę, że programiści PHP należą akurat do najtańszych - robienie tego samego w Javie czy innym języku automatycznie podraża koszty pracownicze minimum o 50%. Druga sprawa to dzieki Phalconowi, próg wejścia w Load Balancing się przesuwa i to znacznie, w dodatku niedługo asynchorniczne IO będzie zintegrowane z Phalconem (od wersji 4).

1 użytkowników online, w tym zalogowanych: 0, gości: 1