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 入口文件目录
Примечание к разработке:
Правила маршрутизации определяются в корневом каталоге 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');
});
В приведённой выше ссылке на 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. Теоретически браузер может передавать столько параметров, сколько он может написать.
Использование перехватчиков очень просто, давайте начнём с объяснения:
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 )