Внедрение MVC-архитектуры в Doka 2.5

1. Что такое MVC?

MVC (Model-View-Controller) — это архитектурный паттерн, разделяющий код на три части:

2. Зачем внедрять MVC?

Использование MVC позволяет:

3. Как реализовано в Doka 2.5?

В CMS Doka 2.5 используется следующая реализация MVC:

4. Контроллеры в Doka CMS

Контроллеры отвечают за обработку запросов и взаимодействие с моделями и представлениями. В Doka CMS используются следующие контроллеры:

4.1 HomeController

Отвечает за отображение главной страницы.


namespace App\Controllers;

use CodeIgniter\Controller;

class HomeController extends Controller
{
    public function index()
    {
        return view('home');
    }
}
        

4.2 ArticleController

Управляет публикацией статей, получением списка и отображением конкретных записей.


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);
    }
}
        

4.3 UserController

Обрабатывает запросы, связанные с пользователями: регистрация, авторизация, просмотр профиля.


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);
    }
}
        

5. Пример структуры проекта Doka CMS


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
        

6. Заключение

Использование MVC в Doka 2.5 делает систему гибкой, удобной для разработки и расширяемой.

Связанные разделы:

Вернуться на главную