handler (обработчик) расположен в классе \dev\Handler по пути /dev/handler.php
Класс содержит свойства: view→format,view→page,view→data
Свойство view→format говорит нам о формате типа данных в роутинге ядра.
Стандартно при установке в текущей версии 12.8 10 форматов типов данных.
Вы можете посмотреть их по пути /core/foton/view/type, форматы соответствуют названию файлов, либо в массиве $FS→typeFormat
Свойство view→page – это название MVC шаблона или шаблона другого формата данных
Свойство view→data – это массив данных переданных из метода datareturn в метод render для анного формата типа данных
Для изменения этих свойств вы можете воспользоваться созданием методов обработки вызова.
Методы обработки вызова бывают нескольких типов:
1. format_названиеформата() - вызывается, если формат соответствует указанному
2. page_названиешаблона() - вызывается, если название вызываемого шаблона соответствует указанному.
Если у нас вложенный шаблон, как например для ajax запросов в модулях или виджетах мы пишем полный путь заменяя / в пути на _
3. Метод all() - он управляет всеми маршрутами всех типов данных
Используйте $this→stop = true внутри метода для остановки сценария работы приложения на текущем этапе
Также ручное управление приложением осуществляется через события Event лежащие в классе \Dev\Event по пути /dev/event.php для замены контента перед выводом.
Данные события работают только если включена настройка $FS→preload = Y
и $F→obstart = Y так как работает с буферизацией вывода
Примеры кода:
public function CallbackGlob($text){
$text = str_replace('<img src=','<img lazy="true" data-src=',$text);
return str_replace('','',$text);
}
public function CallbackAdmin($text){
$text = str_replace('<img src=','<img lazy="true" data-src=',$text);
return str_replace('','',$text);
}
public function Callbackhtml($text){
$text = str_replace('Hello World','Hello newWorld',$text);
return $text;
}
public function before_Core_test($x,$y)
{
return array($x+8,$y*2);
}
public function after_Core_test($x)
{
return $x-17;
}Метод ядра test специально создан для этого тестирования в трейте Dev\Custom_core расположенном по пути /dev/custom_core.php и расширяющим методы ядра.
Здесь вы можете вписывать собственные методы для расширения функциональности
Для проверки вызов данного метода закомментирован в контроллере mvc главной страницы сайта, вы можете раскомментировать данный вызов и протестировать:
$test = $this->core->test(5,12);
fotonArr($test);
класс \Dev\Type расположенный по пути /dev/type.php вы можете использовать свою проверку на типы данных методов ядра, для этого вы можете создать метод
function Core_методядра(){
return [список типов данных для вывода]
}
Также вы можете встроить свою логику и в зависимости от нее менять тип данных на выходе.
При не совпадении типа данных будет выведена ошибка, но программа не завершит свою работу, это помогает для отладки вашего кода со сложной логикой, когда важна типизация данных.
Валидация и санитайзеры
Трейт \Dev\IsValidate расположенный по пути /dev/isvalidate.php расширяет класс библиотек Foton/Lib/IsValid
Вы можете здесь создавать свои методы для проверки данных на валидацию и обращаться для проверки через $this→core→isValidate
Трейт \Dev\Validate расположенный по пути /dev/validate.php расширяет класс библиотек Foton/Lib/Valid
Вы можете здесь создавать свои методы для изменения данных и обращаться для проверки через $this→core→validate
Класс \Dev\Notice расположенный по пути /dev/notice.php предназначен для методов вывода исключений например при проверке вводимых данных через события модели в CRUD интерфейса List
Вы можете здесь создавать свои методы для изменения данных и обращаться для проверки через $this→core→notice
Класс \Dev\Cron расположенный по пути /dev/cron.php предназначен для хранения методов обработки очередей
Вы можете здесь создавать здесь свои методы, более подробно об этом в документации по очередям на Foton.