Loading...
Форум / ImmyCms [Beta] / Immy FAQ
Немного информации о данном движке Данная версия идет 0.01 [Выгрузка в скором времени] Полное руководство для новичков по разработке и использованию хуков, плагинов, шапок и CSRF-защиты 1. Введение Данное руководство предназначено для разработчиков, которые хотят расширить систему через создание плагинов, работу с хуками и использование механизмов безопасности, таких как CSRF-защита. Здесь подробно рассматриваются основные концепции и шаги, которые помогут новичкам эффективно работать с системой. 2. Хуки **Хуки** (hooks) позволяют вставлять или изменять поведение системы без изменения её исходного кода. Это механизм расширения функционала системы, с помощью которого можно добавлять или изменять логику на разных этапах выполнения программы. ### Типы хуков - **before_** — хук, который вызывается до какого-либо действия (например, до обработки формы). - **after_** — хук, который вызывается после выполнения действия (например, после сохранения данных). - **custom_** — произвольные хуки, которые могут быть созданы пользователем для добавления своей логики. Пример использования хука:
php
// Регистрация хука use AppCoreHook;  Hook::register('before_user_login', function($user) {     echo "Пользователь {$user->name} пытается войти..."; });  // Вызов хука в другом месте Hook::fire('before_user_login', $user);
### Важные методы: - **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):
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();
4. Вывод данных в шапке Чтобы вывести данные из модуля или плагина в шапке сайта, можно использовать хуки, которые будут внедрять код в нужное место в шаблоне. В нашем случае, можно использовать хук для вывода данных в шапку. Пример регистрации хука для вывода данных в шапке:
php
use AppCoreHook;  Hook::register('display_header', function() {     echo '<div>Моя шапка с динамическим контентом</div>'; });  // Вызов хука в шаблоне Hook::fire('display_header', []);
В шаблоне, например, в `header.php`:
php
<?= Hook::fire('display_header', []) ?>
5. Работа с CSRF-защитой CSRF (Cross-Site Request Forgery) — это защита от атак, которые подменяют запросы от имени пользователя. В системе уже предусмотрен механизм CSRF-защиты. Для использования CSRF-защиты в формах необходимо добавить скрытое поле с токеном в каждую форму, отправляющую данные. Пример использования CSRF-защиты в форме:
php
<form method="post" action="/submit">     <?= csrf_token() ?>     <input type="text" name="user_data">     <button type="submit">Отправить</button> </form>
**csrf_token()** генерирует уникальный токен, который проверяется при отправке формы. Если токен не совпадает, запрос отклоняется. 6. Пример работы с маршрутизацией Маршруты определяют, как запросы будут обрабатываться системой. Каждый маршрут связан с контроллером и методом. Пример маршрута:
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() {         // Логика обработки формы     } }
7. Заключение Теперь, когда ты знаешь основные принципы работы с системой — как использовать хуки, как создавать плагины, интегрировать шапку, работать с CSRF-защитой и маршрутизацией — ты можешь легко начать разрабатывать и расширять функциональность системы. Эти инструменты позволяют гибко адаптировать систему под любые нужды, не изменяя исходного кода.
------
89702_hello_module.zip (1.8 Kb)
Скачиваний: 14

________
посл. ред. 28.11.2025 в 02:33; всего 2 раз(а); by root
Текстовое описание, с более расширенной информацией
------
89703_side_system_guide.txt (7.3 Kb)
Скачиваний: 17
Действия с темой
Онлайн: 3
Время:
Gen. 0.0809
(c) Bym.Guru 2010-2025