1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wekyun-wekcms

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

WEK CMS: система управления контентом!

Система WEK CMS

PHP-открытая система управления контентом (CMS).

Структура каталога

├─wekcms 系统根目录
│  ├─app                开发应用目录
│  │  ├─model           数据表模型
│  │  ├─modules         项目模块,核心开发目录
│  │  ├─stop            拦截器存放目录
│  ├─cache              系统文件缓存目录 
│  ├─configs            配置文件目录
│  ├─functions          自定义函数库目录
│  ├─install            安装目录
│  ├─resources          静态资源存放目录
│  ├─route              路由规则目录
│  ├─templates          模板存放目录
│  ├─vendor             composer组件目录
│  ├─wekcms             wekcms框架核心目录
│    |─classes      框架类库文件,自动加载
│    │  |─extend       扩展目录,初始化不自动加载
│    │  |─functions    框架函数文件,自动加载
│    │  |─tmp         框架自用提示模板目录
│    │  ├─app             框架初始化文件
│  └─index.php          入口文件目录

Инструкция по установке

  1. Используйте предоставленный Gitee способ для загрузки.
  2. Посетите: домен/install для установки.

Документация по разработке:

Примечание к разработке:

  • WEK CMS поддерживает PHP 5.6–7.3, включая 7.4, но не совместим с более поздними версиями.
  • Имя и метод контроллера модуля не должны повторяться!
1: Пользовательские маршруты

Правила маршрутизации определяются в корневом каталоге route. Фреймворк автоматически загружает все правила маршрутизации из route. Рекомендуется создать один модуль для одной группы маршрутов, чтобы избежать создания слишком большого количества файлов маршрутизации, что может повлиять на производительность.

Соглашение об именах файлов маршрутизации: имя файла.route.php, файл маршрутизации должен заканчиваться на .route.php для автоматической загрузки!

Определение маршрута:

// Допустимый запрос — это корневой домен
Route::get('/', function () {
    dd('Отображение содержимого домашней страницы, это маршрут закрытия, post-запрос недействителен');
});

// Допустимый запрос - корневой домен /post
Route::post('post', function () {
    dd('Маршрут закрытия действителен только для post-запросов');
});

// Допустимый запрос - корневой домен /all
Route::all('all', function () {
    dd('Действителен для всех типов запросов, get, post и т.д.');
});

// Действительный запрос - корневой домен /map
Route::map('map', function () {
    dd('Действительно для всех типов запросов');
}, 'post,get');

// Действительно для запроса - корневой домен /map
Route::map('map', function () {
    dd('Только post-запросы действительны');
}, 'post');

// Групповой маршрут, групповой маршрут не поддерживает вложенность групп, маршрут также может быть написан на китайском языке
// Параметр 1 - это префикс пользовательского запроса, параметр 2 - это общий префикс для пересылки на контроллер метода
Route::group('wek', 'app\content', function () {

    // Действительно для запроса — корневой домен /wek/closure
    Route::get('/closure', function () {
        dd('Групповой маршрут закрытия');
    });

    // Действительно для запроса — корневой домен /wek/wek
    // Пересылка на контроллер — app (каталог) /content (модуль) /content (контроллер) /wek (метод)
    // Полное имя — приложение/контент/контент/век, контроллер и метод разделены @
    Route::get('/wek', '\content@wek');

});
2: Параметры маршрута

http://wekcms.cc/wek-1-2.html

В приведённой выше ссылке на URL правило сопоставления маршрута — wek.

Параметры маршрута — это параметры после wek, разделенные знаком «-», и порядок параметров — 1, 4, без учёта суффикса .html.

Получение параметров маршрута:

public function wek()
{
    dd($_GET);
}

Результат печати:

Array
(
    [s] => /wek-1-4.html
    [tid] => 1
    [url_1] => 1
    [url_2] => 2
)

Из этого видно:

Значение $_GET['url_1'] равно 1.

Значение $_GET['url_2'] равно 2.

Если есть дополнительные параметры, они будут следовать в том же порядке, и каждое значение параметра будет равно номеру позиции параметра, начиная с 1. Теоретически браузер может передавать столько параметров, сколько он может написать.

3: Маршрутные перехватчики

Использование перехватчиков очень просто, давайте начнём с объяснения:

1: Создание перехватчика

Проект root использует app/stop для хранения перехватчиков, а файлы перехватчиков называются user.stop.php, оканчивающиеся на .stop.php. Методы в файле определяют методы перехватчика.

Например: создание перехватчика класса пользователя

Создайте файл класса user.stop.php в app/stop, определите класс и метод auth и создайте перехватчики класса пользователя.

app/stop/user.stop.php

<?php

class user
{
    // Пользовательская аутентификация
    public function auth()
    {
        // Используется для написания логики кода перехватчика
    }
}

2: Регистрация перехватчика

Обратите внимание: использование перехватчика должно сочетаться с маршрутом, иначе оно не будет работать.

Зарегистрируйте перехватчики замыкания в маршруте

<?php
// Определяем перехватчики замыкания на маршруте
Route::get('/', function () {
    dd('маршрут');
})->RouteStop(function () {
        dd('перехватчик замыкания маршрута');
});

Регистрация определённого перехватчика auth на маршруте

->RouteStop('user.auth') регистрирует перехватчики, которые необходимо использовать RouteStop при регистрации перехватчиков на маршруте.

<?php
Route::get('/', function () {
    dd('маршрут');
})->RouteStop('user.auth');

Зарегистрировать групповые перехватчики на маршруте

->GroupStop('user.auth') — зарегистрировать перехватчики группы маршрутов. При регистрации групповых перехватчиков на маршрутах необходимо использовать GroupStop.

Приоритет перехватчиков: можно одновременно определить перехватчики для маршрутов и групп маршрутов, приоритет перехватчиков маршрутов над групповыми перехватчиками, то есть, если определены перехватчики маршрутов и групповые перехватчики, сначала будут выполняться перехватчики маршрутов.

# Групповые маршруты, групповые маршруты не поддерживают вложенные группы
Route::group('wek', 'app\modules\content', function () {
    Route::get('/closure', function () {
        dd('групповой маршрут замыкания');
    })->RouteStop(function () {
        dd('маршрутный перехватчик замыкания');
    });
// Здесь находится перехватчик группового маршрута    
})->GroupStop('user.auth');

Регистрация нескольких перехватчиков

Маршруты и группы могут регистрировать несколько перехватчиков одновременно, но замыкания могут регистрировать только один.

Порядок выполнения нескольких перехватчиков регистрации — от первого до последнего, приоритет маршрутов над группами.

// Регистрация нескольких перехватчиков маршрута, определение массива
RouteStop(['user.auth','user.auth2','user.auth3']);

// Регистрация нескольких перехватчиков группы маршрутов, определение массива
GroupStop(['user.auth','user.auth2','user.auth3']);
``` **План разработки**

- [x] Выполнить установку функций в несколько этапов установки wekcms.

- [x] Завершить проектирование приложения с применением шаблона и кэширования.

- [x] Провести детализацию app-каталога по модулям, моделям (изменить компонент маршрута).

- [x] Добавить перехватчик и зарегистрировать его в маршруте.

- [ ] Разработать и спроектировать модуль контента.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wekyun-wekcms.git
git@api.gitlife.ru:oschina-mirror/wekyun-wekcms.git
oschina-mirror
wekyun-wekcms
wekyun-wekcms
master