Немного информации о данном движке Данная версия идет 0.01 [Выгрузка в скором времени] Полное руководство для новичков по разработке и использованию хуков, плагинов, шапок и CSRF-защиты 1. Введение Данное руководство предназначено для разработчиков, которые хотят расширить систему через создание плагинов, работу с хуками и использование механизмов безопасности, таких как CSRF-защита. Здесь подробно рассматриваются основные концепции и шаги, которые помогут новичкам эффективно работать с системой. 2. Хуки **Хуки** (hooks) позволяют вставлять или изменять поведение системы без изменения её исходного кода. Это механизм расширения функционала системы, с помощью которого можно добавлять или изменять логику на разных этапах выполнения программы. ### Типы хуков - **before_** — хук, который вызывается до какого-либо действия (например, до обработки формы). - **after_** — хук, который вызывается после выполнения действия (например, после сохранения данных). - **custom_** — произвольные хуки, которые могут быть созданы пользователем для добавления своей логики. Пример использования хука: ### Важные методы: - **register(string $event, callable $callback)** — регистрирует обработчик для события. - **fire(string $event, array $context)** — вызывает все обработчики для события с передачей данных. 3. Создание плагинов **Плагины** — это способы расширения функционала системы с использованием хуков. Плагины могут быть легко интегрированы в систему, подключая свою логику и изменяя поведение приложения. ### Структура плагина: 1. **plugin.json** — метаданные плагина (название, описание, хуки). 2. **Папка с логикой плагина** — контроллеры, хуки, маршруты. 3. **hooks.php** — регистрация хуков. ### Пример структуры плагина: ``` /plugins /my-plugin plugin.json MyPlugin.php hooks.php routes.php ``` ### Пример манифеста плагина (plugin.json): ### Реализация плагина: ### Подключение плагина: Чтобы подключить плагин, создаём объект плагина и инициализируем его: 4. Вывод данных в шапке Чтобы вывести данные из модуля или плагина в шапке сайта, можно использовать хуки, которые будут внедрять код в нужное место в шаблоне. В нашем случае, можно использовать хук для вывода данных в шапку. Пример регистрации хука для вывода данных в шапке: В шаблоне, например, в `header.php`: 5. Работа с CSRF-защитой CSRF (Cross-Site Request Forgery) — это защита от атак, которые подменяют запросы от имени пользователя. В системе уже предусмотрен механизм CSRF-защиты. Для использования CSRF-защиты в формах необходимо добавить скрытое поле с токеном в каждую форму, отправляющую данные. Пример использования CSRF-защиты в форме: **csrf_token()** генерирует уникальный токен, который проверяется при отправке формы. Если токен не совпадает, запрос отклоняется. 6. Пример работы с маршрутизацией Маршруты определяют, как запросы будут обрабатываться системой. Каждый маршрут связан с контроллером и методом. Пример маршрута: Контроллеры отвечают за логику обработки запросов: 7. Заключение Теперь, когда ты знаешь основные принципы работы с системой — как использовать хуки, как создавать плагины, интегрировать шапку, работать с CSRF-защитой и маршрутизацией — ты можешь легко начать разрабатывать и расширять функциональность системы. Эти инструменты позволяют гибко адаптировать систему под любые нужды, не изменяя исходного кода.
------
89702_hello_module.zip
(1.8 Kb)
Скачиваний: 14
________
посл. ред. 28.11.2025 в 02:33; всего 2 раз(а); by root
php
// Регистрация хука use AppCoreHook; Hook::register('before_user_login', function($user) { echo "Пользователь {$user->name} пытается войти..."; }); // Вызов хука в другом месте Hook::fire('before_user_login', $user);json
{ "name": "My Plugin", "description": "Описание плагина", "version": "1.0", "author": "Your Name", "hooks": [ "before_user_login", "after_user_login" ] }php
namespace AppPluginsMyPlugin; use AppCoreHook; class MyPlugin { public function init() { // Регистрация хука Hook::register('before_user_login', function($user) { echo "Плагин: Пользователь {$user->name} пытается войти..."; }); } }php
use AppPluginsMyPluginMyPlugin; $plugin = new MyPlugin(); $plugin->init();php
use AppCoreHook; Hook::register('display_header', function() { echo '<div>Моя шапка с динамическим контентом</div>'; }); // Вызов хука в шаблоне Hook::fire('display_header', []);php
<?= Hook::fire('display_header', []) ?>php
<form method="post" action="/submit"> <?= csrf_token() ?> <input type="text" name="user_data"> <button type="submit">Отправить</button> </form>php
$router->get('/user/{id}', 'UserController@show'); $router->post('/submit', 'FormController@submit');php
namespace AppControllers; class UserController { public function show($id) { // Логика отображения пользователя } } class FormController { public function submit() { // Логика обработки формы } }------
Скачиваний: 14
________
посл. ред. 28.11.2025 в 02:33; всего 2 раз(а); by root
Текстовое описание, с более расширенной информацией
------
89703_side_system_guide.txt
(7.3 Kb)
Скачиваний: 17
------
Скачиваний: 17