/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
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.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
}
}
/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
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]);
}
}
index.php
(The single entry point)
// Autoload classes
// Parse the request
// Route the request to the appropriate controller/action
HomeController
for serving the homepage, and ArticleController
for handling article-related requests.Article
model to handle data related to articles.home
and articles
, each containing PHP files for different views.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.
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.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.
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.
HomeController
och ArticleController
är kontrollers som hanterar logiken för att visa startsidan respektive hantera förfrågningar relaterade till artiklar.
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: