Framework foton
Инструмент для профессиональной разработки web приложений
Роутинг на FRAMEWORK FOTON

Роутинг на Framework Foton отличается от привычных роутингов в современных фреймворках.

Первое отличие - роутингом управляет ядро системы.

Второе отличие - роутинг работает в рамках распределенной системы, именно за счет такой системы мы добились такого высокого быстродействия. При обращении к определенному типу запроса отрабатывает именно часть системы отвечающая за этот тип запроса, ни часть системы, а вся система распределена - разбита на части, это можно видеть по эмуляции всего приложения через метод view, об этом мы тоже здесь скажем

Третье отличие - вы можете обращаться к данным как через роутинг так и через метод view, например вот так

<?php
$this->core->view()->widget->htmlredactor->end(['value'=>'test','name'=>'name']);

Всего в версии 12.8 десять типов запросов, но вы можете добавлять свои и редактировать существующие, удалять их крайне не рекомендуется.


Опишем здесь все 10 типов запросов роутинга:

1 тип - mvc - это стандартный тип запроса, он основной, если на конце строки запроса не указан ни один из типов вызывается mvc, поиск производится в таблице router по регулярным выражениям либо по названию mvc шаблона, если это не запрещено в настройках системы.

Пример - /news/firstnews.html

2 тип - ajax - этот тип данных вызывает методы ajax класса внешнего модуля. Например заглянув в network инспектора браузера при сохранении страницы в модуле визуальный редактор вы увидите такой путь /htmlred/files.ajax - это и есть роутинг ajax запроса, название модуля/название метода класса Ajax.ajax, также вы можете создавать файлы для представления методов в директории /dev/module/вашмодуль/ajax/вашметод.php

3 тип - micro - это тип для микросервисов, вы можете вызвать его через например alisa.micro, общая шина обработки запросов вызывается через all.micro

4 тип - ajaxadmin - если в админ панели вы нажмете обновление шаблонов и посмотрите в инспектор то увидите /update_section_all.ajaxadmin, это вызов метода класса Ajaxadmin/Admin расположенного по пути /app/ajax/admin/admin.php, работает только когда пользователь авторизован в системе.

5 тип - ajaxsite - аналогичный предыдущему, только он работает и когда пользователь не авторизован, вызывает метод контроллера Ajaxsite\Site по пути /app/ajax/site/site.php через назване метода.ajaxsite, также как и ajaxadmin имеет неограниченный уровень вложенности, после установки вам доступна конструкция для теста /test/test2/test3.ajaxsite, вы можете написать /test/test2.ajaxsite для отображения шаблона представления, по структуре вам нужно создать директорию по названию метода в диретории site и в ней либо контроллер для последующей обработки либо файл index.php с шаблоном для вывода, в шаблоне также работает доступ к массиву $data из метода

6 тип - modul - это внешние модули, при обращении /antivirus.modul происходит отработка всех публичных методов контроллера dev/modul/antivirus/controller.php модуля и вызов представления. Но можно обращаться и к вложенным модулям, например вот так /shop/visualeditor.modul

7 тип - tpl - это внутренние типы данных для отображения в интерфейсе ресурс контроллера, они расположены по пути /app/type/site, принадлежат конкретному сайту и включают css,js,php контроллер и php представление метода в формате названиетипа_названиеметода.php , обычно контроллер содержит метод index, первый аргумент это $id - номер записи, остальные аргументы можно добавлять, но также нужно добавить эти значения через запятую после названия типа: в модели данных, в предстпавлении также доступен массив $data

8 тип - face - интерфейсы, расположены по пути /app/face/admin/ и работают только в админ панелях. включают css,js,php контроллер и php представление метода в формате названиеинтерфейса/названиеметода.php , в представление также передается массив $data

9 тип - widget - виджеты сайта, раположен по пути dev/widget/site и принадлежит конкретному сайту. контроллер расположен в файле index.php и содерит лсновной вызываемый метод index, хотя может содержать и другие, в диретории index файл template.php является представлением, в представлении доступен массив $data из return метода.

10 тип - tplfront - аналогично tpl, только вызывает именно  css, js файлы внутреннего типа данных.

Все типы запросов могут быть представлены через текучий интерфейс view

<?php
$this->core->view()->tpl->html->echo->end(['name'=>'test','value'=>'test']); 
$this->core->view()->tplfront->html->echo->end(['name'=>'test','value'=>'test']); 
$this->core->view()->widget->htmlredactor->end(['value'=>'test','name'=>'name']);
$this->core->view()->mvc->company->end();
$this->core->view()->ajaxsite->test->test2->test3->end();
$this->core->view()->ajaxadmin->method->end();
$this->core->view()->ajax->shop->codeBlock->end();
$this->core->view()->modul->shop->end();
$this->core->view()->face->lists->end();
$this->core->view()->micro->alisa->end();

Все типы запросов расположены по пути /core/foton/view/type 

Здесь создается файл по названию типа запроса, который содержит три основных метода:

1 метод appclass - он определяет путь к файлу контроллера исходя из чпу

2 метод datareturn - он определяет как формируется массив $data для передачи в представление

3 метод render - он определяет рендеринг, что подключаем, в рамках шаблона или нет, нужны ли языковые файлы, шапка, футер и т.д.

© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте