IO v7. Настройки модуля Module.php
Описание
project/src/app/Module.php- это файл настроек модуля проекта.project/src/modules/<modulename>/php/Module.php- это файл настроек модуля.
Содержимое файла (проекта)
Пример:
<?php
namespace App;
class Module
{
/**
* Название модуля
*/
public static function module_name()
{
return 'app';
}
/**
* Init module
*/
public static function init($app)
{
// Регистрация маршрутов
$app->add_routes([
\App\Routes\DefaultRoute::class,
\App\Routes\ScrRoute::class,
// ...
]);
}
/**
* Создаем App
*/
public static function create_app()
{
$app = new \IO\App();
// Добавляем модули
$app->add_modules([
\IO\Module::class,
\App\Module::class,
// ...
]);
$app->page_not_found = \App\Routes\DefaultRoute::class;
// Инициализация
$app->init();
return $app;
}
/**
* Setup context
*/
public function setup_context($twig)
{
$twig->setContext('app_platform', ($_COOKIE['platform'] ?? ''));
$twig->setContext('app_version', ($_COOKIE['platform_version'] ?? 'noapp'));
}
}
Методы, обязательные для объявления:
Содержимое файла (фреймворка / модуля)
Пример:
<?php
namespace IO; // в каждом модуле свой namespace, определяемый через composer.json
class Module
{
/**
* Название модуля
*/
public static function module_name()
{
return 'io7'; // в каждом модуле свое название
}
/**
* Init module
*/
public static function init($app)
{
// Регистрация маршрутов
$app->add_routes([
\App\Routes\DefaultRoute::class,
\App\Routes\ScrRoute::class,
// ...
]);
}
public function setup_context($twig)
{
//$twig->setContext('example_var', 'example_value');
}
}
Методы, обязательные для объявления:
Методы, необязательные для объявления:
Методы
module_name()
Метод, возвращающий название модуля.
Если это проект, название модуля всегда app.
/**
* Название модуля
*/
public static function module_name()
{
return 'app';
}
init()
Метод регистрации маршрутов проекта / модуля.
/**
* Init module
*/
public static function init($app)
{
// Регистрация маршрутов
$app->add_routes([
\App\Routes\DefaultRoute::class,
\App\Routes\ScrRoute::class,
// ...
]);
}
Обязательные для регистрации классы маршрутов:
\App\Routes\DefaultRoute::class- маршрут по умолчанию, описывает как минимум маршрут главной страницы/и страницы 404 ошибки (маршрут не найден).\App\Routes\ScrRoute::class- маршрут для тестов и экспериментов (/scr).
create_app()
Метод инициализации проекта.
Здесь подключаются модули проекта, а также устанавливается route для несуществующих маршрутов.
/**
* Создаем App
*/
public static function create_app()
{
$app = new \IO\App();
// Добавляем модули
$app->add_modules([
\IO\Module::class,
\App\Module::class,
// ...
]);
$app->page_not_found = \App\Routes\DefaultRoute::class;
// Инициализация
$app->init();
return $app;
}
setup_context()
Метод установки twig контекста.
/**
* Setup context
*/
public function setup_context($twig)
{
$twig->setContext('app_platform', ($_COOKIE['platform'] ?? ''));
$twig->setContext('app_version', ($_COOKIE['platform_version'] ?? 'noapp'));
}