FuelPHP - przegląd architektury
FuelPHP opiera się na testach bojowych Model-View-Controller architektura wraz z HMVC (Hierarchical MVC)wsparcie. Podczas gdy MVC zapewnia elastyczne i warstwowe tworzenie aplikacji, HMVC idzie o krok dalej, aby umożliwić widgetowanie aplikacji internetowej.
Mocną stroną FuelPHP jest to, że nie wymusza określonych sposobów tworzenia aplikacji. Po prostu zapewnia prostą i łatwą w użyciu standardową strukturę. Programiści mogą swobodnie korzystać z predefiniowanego zestawu funkcji dostarczonych przez FuelPHP lub modyfikować go w razie potrzeby. Wszystkie funkcje oferowane przez FuelPHP, w tym funkcję podstawową, można zmieniać zgodnie z wymaganiami aplikacji.
Model
Model jest podmiotem biznesowym aplikacji. Kontroler i Widok wymieniają dane w postaci Modelu. Model umożliwia jednolitą reprezentację naszych danych biznesowych. Pozwala warstwie bazy danych na interakcję z warstwą aplikacji internetowej w standardowy sposób i zapewnia opcję wybierania, zapisywania, edytowania i usuwania naszych jednostek bazy danych.
Kontroler
Typowa aplikacja MVC zaczyna się od kontrolera. Po wysłaniu przez użytkownika żądania do aplikacji internetowej FuelPHP, aplikacja zbiera wszystkie informacje o żądaniu i wysyła je do Administratora. Administrator wykonuje wymaganą logikę biznesową żądanej strony, a następnie wywołuje odpowiedni Widok wraz z przetworzonymi danymi w postaci Modeli.
Widok
Widok to warstwa prezentacji aplikacji MVC. Widok decyduje o sposobie pokazania modelu użytkownikowi. Obsługuje proste renderowanie danych w zaawansowanym układzie, co umożliwia witrynie znormalizowanie projektu na wszystkich stronach. Widok zapewnia również obsługę motywów, co umożliwia szybką zmianę projektu w całej aplikacji.
Prezenter
Prezenter to specjalna funkcja oferowana przez FuelPHP. To klej pomiędzy kontrolerem a widokiem. Kontroler może współdzielić część swoich obowiązków niskiego poziomu, takich jak pobieranie modelu z bazy danych, generowanie danych do widoku itp. Kontroler wywołuje Presenter zamiast View, który z kolei wywołuje View. Presenter umożliwia czyste oddzielenie logiki biznesowej i warstwy prezentacji.
Hierarchiczne MVC
FuelPHP zapewnia możliwość wywołania jednego sterownika z innego kontrolera, podobnie jak na żądanie klienta (przeglądarki). Jeśli jakikolwiek kontroler wywoła inny kontroler, wywoływany kontroler zwróci odpowiedź do kontrolera wywołującego zamiast renderować ją do klienta (przeglądarki). To umożliwiawidgetizationaplikacji internetowej. Na przykład sekcja komentarzy może być wyświetlana jako samodzielna strona, jak również jako podsekcja strony głównej (bloga).
Moduł
Jedną z najistotniejszych cech FuelPHP jest to, że część aplikacji internetowej można przekształcić w moduły, które mogą być współużytkowane przez różne aplikacje. Na przykład moduł blogu utworzony dla aplikacji można ponownie wykorzystać w innej aplikacji, po prostu kopiując kod modułu z aplikacji źródłowej do aplikacji docelowej.
Należy pamiętać, że utworzenie nowego modułu jest tak proste, jak opracowanie głównej aplikacji. Struktura jest podobna do głównej aplikacji z tym wyjątkiem, że moduł powinien kodować osobny folder.
Pakiet
FuelPHP zapewnia opcję zorganizowania kodu w pojedynczą jednostkę o nazwie Pakiet. Pakiet może zawierać jedną lub więcej funkcji potrzebnych dla aplikacji internetowej. Na przykład komponent bazy danych, taki jak ORM, poczta e-mail itp., Można zorganizować w pakiet i używać w razie potrzeby.
Pakiet różni się od modułu tym, że pakiet nie zawiera żadnych stron internetowych ani częściowych stron internetowych. Pakiet może być używany w FuelPHP jak również w każdym innym frameworku PHP.
Przepływ pracy
Przepływ pracy FuelPHP jest prosty i łatwy do zrozumienia. Przedstawiono to na poniższym schemacie.
Użytkownik wysyła zapytanie do aplikacji.
Kontroler odbiera żądanie i gromadzi informacje poprzez interakcję z modelem, który z kolei współdziała z bazą danych.
Administrator gromadzi informacje, wchodząc w interakcję z innym administratorem, wysyłając zapytanie dodatkowe do innych administratorów.
Kontroler wysyła pobrany model do widoku, który z kolei generuje prezentację i wysyła ją do klienta jako odpowiedź.
W niektórych przypadkach administrator może przekazać kontrolę prezenterowi. W takim przypadku prezenter zbiera informacje z modelu i wysyła je do klienta. W tym przypadku prezenter nie wykonuje żadnej logiki biznesowej, z wyjątkiem pobierania modelu z bazy danych.