mihichx/clearvc 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mihichx/clearvc

Composer 安装命令:

composer create-project mihichx/clearvc

包简介

ClearVC PHP Framework

README 文档

README

ClearVC — это ультра-легкий и быстрый PHP-микрофреймворк, построенный по архитектурной схеме View-Controller (VC). Он изолирует системную логику от HTML-верстки, предоставляя разработчику чистый каркас для быстрого развертывания веб-приложений без привязки к жестким моделям данных.

Структура проекта

project/
├── 📁 assets/                  - Статические файлы приложения (js, css, картинки, шрифты)
├── 📁 config/                  - Конфигурация системы
│   ├── 📄 config.example.php   - Шаблон настроек окружения и доступов к БД
│   ├── 📄 PDO.php              - Безопасный модуль подключения к БД (PDO)
│   └── 📄 route.php            - Карта маршрутов (список путей сайта)
│
├── 📁 controllers/             - Контроллеры сайта (App\Controllers)
├── 📁 core/                    - Служебное ядро фреймворка (Core)
│   ├── 📄 Controller.php       - Базовый контроллер ядра
│   └── 📄 Router.php           - Системный маршрутизатор (Роутер)
│
├── 📁 views/                   - Представления (HTML-верстка и отображение данных)
├── 📁 vendor/                  - Автозагрузчик и сторонние зависимости (управляется Composer)
│
├── 📄 .gitignore               - Список игнорируемых файлов (папка /vendor/ скрыта от Git)
├── 📄 .htaccess                - Перенаправление всех запросов на единую точку входа
├── 📄 composer.json            - Конфигурация зависимостей и правил автозагрузки PSR-4
├── 📄 composer.lock            - Фиксация точных версий зависимостей проекта
├── 📄 index.php                - Главный инициализационный файл (Точка входа)
└── 📄 README.md                - Документация проекта

Описание работы фреймворка

Фреймворк ClearVC работает по принципу единой точки входа (index.php), куда .htaccess направляет все входящие URL-адреса.

  1. Роутер (Router.php) перехватывает адрес, сопоставляет его с картой маршрутов (config/route.php) и вызывает нужный Контроллер.
  2. Контроллер (controllers/) обрабатывает логику, делает безопасные запросы к базе данных и передает чистые переменные в метод $this->render().
  3. Представление (views/) принимает переменные и выводит чистый HTML. Фреймворк автоматически берет этот HTML и оборачивает его в глобальный макет views/layouts/main.php.

Алгоритм настройки и использования

Шаг 1. Инициализация окружения и База данных

Фреймворк использует современную автозагрузку классов по стандарту PSR-4. Перед началом работы:

  1. Скачайте проект и откройте консоль в корневой папке.
  2. Выполните команду для генерации автозагрузчика: composer install
  3. Если проекту нужна база данных:
    • Скопируйте файл config/config.example.php и переименуйте его в config/config.php.
    • Заполните массив db вашими данными от MySQL.

Шаг 2. Создание файла логики (Controller)

СоСоздайте класс в папке controllers/. Благодаря Composer вам больше не нужно вручную подключать файлы через require_once.

Обязательно указывайте пространство имен в начале файла и импортируйте базовый контроллер ядра:

<?php
// Файл: controllers/AboutController.php

namespace App\Controllers; // Указываем пространство имен папки controllers

use Core\Controller;       // Импортируем базовый класс из ядра

class AboutController extends Controller
{
    public function about()
    {
        $aboutData = null;

        // Безопасная проверка: подключена ли БД в проекте
        if ($this->db !== null) {
            $stmt = $this->db->query("SELECT * FROM site_info LIMIT 1");
            $aboutData = $stmt->fetch();
        }

        // Передаем данные в рендер страницы views/about.php
        $this->render('about', [
            'title' => 'О компании',
            'js'    => 'slider.js, script.js',
            'info'  => $aboutData
        ]);
    }
}

Шаг 3. Создание представления (View)

В папке views/ создайте файл отображения (например, about.php). Используйте переменные, переданные из контроллера. Для защиты от XSS-атак всегда фильтруйте динамический вывод.

<!-- Файл: views/about.php -->
<div class="container my-5">
    <h1 class="fw-bold"><?= \$title ?></h1>
    
    <div class="card shadow-sm mt-4">
        <div class="card-body">
            <p class="lead">
                <?= htmlspecialchars(\$info['description'] ?? 'Контент временно недоступен.') ?>
            </p>
        </div>
    </div>
</div>

Шаг 4. Настройка главного макета

В views/layouts/main.php пропишите общий каркас сайта (Header, Footer, навигацию). Фреймворк сам подставит контент страницы в переменную $content, заголовок в $title, а скрипты страницы подключит через массив $js. Не удаляйте эти системные переменные из макета!

Шаг 5. Регистрация маршрута (Route)

Зарегистрируйте URL вашей страницы в файле config/route.php по следующему шаблону:

return [
    // ['URL-адрес', 'КлассController@метод', 'HTTP-метод']
    ['/about', 'AboutController@about'],
];

Если HTTP-метод не указан, роутер по умолчанию считает его как GET.

Авторы: Бакулев М, Кириенков М, Фатахова С, Наумов А, Рагазина Е.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: CSS

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固