Framework foton
Инструмент для профессиональной разработки web приложений
Контроллеры в Foton
Работа контроллера на Framework Foton отличается от работы стандартных MVC фреймворков.

Здесь уже не нужно создавать метод под каждое представление да еще и рендерить на своей стороне.

На Framework Foton один контроллер это одна страница, в отличии от привычного — один метод — одна страница.

Сделано это потому что в большинстве веб приложений работа в контроллере состоит из большого числа запросов к модели, и здесь эти запросы можно разбить на категории и при этом не думать про рендеринг.

Как же писать контроллер?

1. Создайте контроллер в namespace Controller\Site или Controller\Admin в зависимости от того открыт ли к нему доступ

2. Создайте сам класс, в имени класса укажите имя файла.

3. Создайте свой публичный метод без параметров, а лучше 2 или 3, выведите в return какую-то информацию.

4. Вызовите в представлении этого контроллера @arr{data}

5. Посмотрите, все результаты ваших методов записались в массив data, где ключом  массива является название вашего метода, а значением его результат.

Варианты с request запросами

Вы также можете создать метод с атрибутами, например добавьте в один из ваших методов атрибут $href, далее используйте его для вывода. Теперь передайте на вашей странице get параметр href, он будет передан в ваш метод и выведен.

Вы можете передавать неограниченное число параметров, важно понимать, что  метод сработает только когда все обязательные request данные переданы.

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

При этом если достаточно использовать один из методов система этого не запрещает, просто следующий метод не будет вызван.

По этой причине необходимо методы с большим количество параметров выносить наверх. Чтение методов идет также как они написаны в коде контроллера.

Пример:

<?php
public function news($section,$page){
//выводим новости из раздела section на странице $page
// сработает если указан и section и page
}
//здесь переменные $section и $page затираются, если отработал первый метод
public function newsMain($section){
//сработает только если $page не указана, а указана $section
}

Важно!!! При этом сами request данные не удаляются и вы также можете к ним обратиться через $FG→get()→page или $FG→post()→page
Если название post и get параметра совпадают, то в метод будет передано POST значение.
© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте