MVC (Model-View-Controller) — это архитектурный паттерн, разделяющий код на три части:
Использование MVC позволяет:
В CMS Doka 2.5 используется следующая реализация MVC:
Twig.Контроллеры отвечают за обработку запросов и взаимодействие с моделями и представлениями. В Doka CMS используются следующие контроллеры:
Отвечает за отображение главной страницы.
namespace App\Controllers;
use CodeIgniter\Controller;
class HomeController extends Controller
{
public function index()
{
return view('home');
}
}
Управляет публикацией статей, получением списка и отображением конкретных записей.
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\ArticleModel;
class ArticleController extends Controller
{
public function index()
{
$model = new ArticleModel();
$data['articles'] = $model->findAll();
return view('articles', $data);
}
public function show($id)
{
$model = new ArticleModel();
$data['article'] = $model->find($id);
return view('article_detail', $data);
}
}
Обрабатывает запросы, связанные с пользователями: регистрация, авторизация, просмотр профиля.
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\UserModel;
class UserController extends Controller
{
public function index()
{
$model = new UserModel();
$data['users'] = $model->findAll();
return view('users', $data);
}
public function show($id)
{
$model = new UserModel();
$data['user'] = $model->find($id);
return view('user_profile', $data);
}
}
C:\OSPanel\home\doka25c.local\
├── app/
│ ├── Controllers/
│ │ ├── ArticleController.php
│ │ ├── UserController.php
│ │ ├── HomeController.php
│ ├── Models/
│ │ ├── ArticleModel.php
│ │ ├── UserModel.php
│ ├── Views/
│ │ ├── layout.twig
│ │ ├── home.twig
│ │ ├── articles.twig
│ │ ├── users.twig
│ ├── Config/
│ │ ├── Routes.php
├── public/
│ ├── index.php
│ ├── docs/
│ │ ├── styles.css
├── writable/
├── vendor/
├── .env
├── composer.json
├── composer.lock
Использование MVC в Doka 2.5 делает систему гибкой, удобной для разработки и расширяемой.