Gränssnittsdesign


MVC


  • Model: Manages the data and business logic.
  • View: Outputs the final user interface and presents data to the user.
  • Controller: Handles the user requests, manipulates the model, and selects the view to display.

Directory Structure

 
/simple_cms/ /controllers/ HomeController.php ArticleController.php /models/ Article.php /views/ home/ index.php articles/ index.php view.php /core/ Database.php Controller.php Model.php index.php

Core Components

  • Database.php: Handles database connection and queries.
  • Controller.php: Base controller with common functionality for other controllers.
  • Model.php: Base model providing common data handling methods.

Model

Article.php

 
class Article extends Model { public function getAllArticles() { // SQL to get all articles } public function getArticleById($id) { // SQL to get a single article by ID } }

View

/views/home/index.php

 
// HTML to show the homepage

/views/articles/index.php

 
// HTML to list articles

/views/articles/view.php

 
// HTML to show a single article

Controller

HomeController.php

 
class HomeController extends Controller { public function index() { // Logic for the homepage view $this->view('home/index'); } }

ArticleController.php

 
class ArticleController extends Controller { public function index() { // Logic to list articles $articles = (new Article())->getAllArticles(); $this->view('articles/index', ['articles' => $articles]); } public function view($id) { // Logic to show a single article $article = (new Article())->getArticleById($id); $this->view('articles/view', ['article' => $article]); } }

Front Controller

index.php (The single entry point)

 
// Autoload classes // Parse the request // Route the request to the appropriate controller/action

Explanation

  • Controllers: HomeController for serving the homepage, and ArticleController for handling article-related requests.
  • Models: Article model to handle data related to articles.
  • Views: Separate directories for home and articles, each containing PHP files for different views.

Svensk text:

Översikt

  • Modell: Hanterar data och affärslogik.
  • Vy: Presenterar slutanvändargränssnittet och visar data för användaren.
  • Kontroller: Hanterar användarförfrågningar, manipulerar modellen och väljer vilken vy som ska visas.

Katalogstruktur

Projektet är organiserat i kataloger för kontrollers, modeller och vyer, samt en kärnkatalog som innehåller grundläggande komponenter som databashantering och bas-klasser för kontrollers och modeller.

Kärnkomponenter

  • Database.php: Hanterar databasanslutningar och frågor.
  • Controller.php: Bas-kontroller med gemensam funktionalitet för andra kontrollers.
  • Model.php: Bas-modell som tillhandahåller gemensamma metoder för datanhantering.

Modell

Article.php är en modell som hanterar data och logik relaterad till artiklar, som att hämta alla artiklar eller en specifik artikel baserat på dess ID.

Vy

Vyer finns i separata kataloger för hem och artiklar, där varje katalog innehåller PHP-filer för olika vyer, som att visa startsidan, lista artiklar eller visa en enskild artikel.

Kontroller

HomeController och ArticleController är kontrollers som hanterar logiken för att visa startsidan respektive hantera förfrågningar relaterade till artiklar.

Frontkontroller

index.php är den enda ingångspunkten för applikationen, som ansvarar för att automatiskt ladda klasser, tolka förfrågningar och dirigera dem till lämplig kontroller och åtgärd.

Denna struktur ger en grundläggande ram för ett enkelt CMS som använder MVC-mönstret i PHP. Varje komponent är fokuserad på sitt specifika ansvar, vilket gör applikationen organiserad, mer underhållbar och skalbar.




Den här sidan designades av 21C: