Framework foton
Инструмент для профессиональной разработки web приложений
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 так как работает с буферизацией вывода

Примеры кода:
//заменяет атрибут src картинки на data-src для ленивой загрузки, работает для публичной части приложения
public function CallbackGlob($text){
	$text = str_replace('<img src=','<img lazy="true" data-src=',$text);
	return str_replace('','',$text);
}
//заменяет атрибут src картинки на data-src для ленивой загрузки, работает для административной части приложения
public function CallbackAdmin($text){
	$text = str_replace('<img src=','<img lazy="true" data-src=',$text);
	return str_replace('','',$text);
}
// заменяет текст  Hello World для mvc шаблона html
public function Callbackhtml($text){
	$text = str_replace('Hello World','Hello newWorld',$text);
	return $text;
}
// изменяет сигнатуры метода ядра test перед вызовом метода
public function before_Core_test($x,$y)
{
	return array($x+8,$y*2);
}
// изменяет результат метода ядра test после вызова метода
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.
© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте