Framework foton
Инструмент для профессиональной разработки web приложений
git("dir/myfile.txt”);
Обертка хелпера FotonGit
Ищет файл в системе gitf, если есть сессия gitf и находит файл возвращает путь из директории .gitf/, если нет возвращает текущий путь
Сигнатура: $path – строка, путь до файла 
Результат: Путь до файла

includeTpl($path) — includeTpl('menu/form_end');
Путь к файлу интерфейса из директории /app/view/
Сигнатура:  путь к файлу
Результат: выводит содержимое файла шаблона после обработки, при ошибке возвращает log с описанием ошибки

translite($text=null) - translite ('русский текст')
Выполняет транслитерацию строки
Сигнатура: $text — текст для транслитерации
Результат: Результат транслитерации — строка из латинских символов и знаков пунктуации.

isvalid(array: $arr1,array: $arr2,string: $status) – проверяет данные на валидность
$arr1 = массив методов проверки, ключи поля значений
например: ['mail'=>'M','text'=>'O']

M – mail
D – домен
F – число float
IP – IP адрес
R – регулярное выражение
U – URL адрес
I – число integer
O – непустое значение
T – строка

$arr2 = ['mail'=>'mail@mail.ru','text'=>'my text']
$status – любая не пустая строка, если задана, то результатом будет значение true или false, если не указан результатом будет массив ключами которого будут поля, значениями true – поле введено верно, false – поле введено не верно.

validate(string | array: $arr1,array: $arr2) – изменяет данные в соответствии с методами обработки
если $arr1 строка, то она должна содержать один из методов обработки, либо массив ключами которого будут ключи массива $arr2, значениями методы обработки. 
Список методов обработки:

html — эквивалент htmlspecialchars
pass — создает md5 хеш
text — оставляет только печатные символы
medium — оставляет только русские и латинские символы и пробел
abcd — оставляет только русские и латинские символы, цифры и пробел
abc -  оставляет только латинские символы
abv -  оставляет только русские символы
same — оставляет данные без изменения
int – оставляет только цифры
phone — оставляет цифры ± и скобки
tags — удаляет все теги
plus — аналог метода abs
mini – аналог метода floor
maxi - аналог метода ceil
nul – всегда выдает null
tabs – удаляет все пробельные символы

$arr2 – массив полей со значениями
$arr2 = ['mail'=>'mail@mail.ru','text'=>'my text']

savesql($table=null,$where=null,$name='sql') - записывает результат метода getlist с параметрами $table и $where в файл с именем $name в json формате

clearsql($name=null) - удаляет созданный методом выше файл с именем $name

cron($method=null,$data=[],$time=null,$count=false) - создает событие для очереди, $format - минуты m, секунды s и т.д., $data - массив сериализоуванных  данных,  $time - количество секунд, минут и т.д., $count - количество запусков до удаления, если событие удалять не нужно передает false, подробнее в документации по очередям

work($obj,$count=2,$del=false) - инициализирует метод события класса Cron, $obj - обьект класса Cron, $count - количество итераций, $del - если true удалит файл события в конце обработки

csrf($key='pass') - создает ключ csrf
validateCsrf($decrypt='pass',$request=null) - выполняет проверку запроса сгенерированному csrf ключу

ipUser() - выводит ip адрес пользователя

generateCsrf($key) - генерирует csrf по ключу
  
jsonFile($source = null) - выводит переданный json в красивом формате, используется для записи json в файл

redirect($url) - выполняет редирект на js по $url

isAjax() - если запрос ajax выводит true иначе false

hSite() - выводит название сайта с http/https

pSite() -  выводит полный url страницы

alert($text) - выводит alert с текстом $text на js

status($status=200,$page='/')  - выполняет header загоовв=ок с кодом $status по url $page

api(string: $key,string: $model,string: $table,array: $arr,integer: $id) – метод служит для изменения данных таблицы методами GET и POST
$key == GET['key']
$model == название модели
$table == название таблицы из модели
$arr – массив данных для обновления, добавления или вывода
['поле таблицы'=>'значение'], необязательный параметр, если массив $_POST == $arr.
Обязательные get параметры для запроса по api:
key – ключ приложения
status – может принимать несколько значений:
1. up – обновление данных 
обязательные параметры:
$arr['id'] – id записи
2. I – insert запись данных
3. del – удаление записи:
обязательные параметры:
id – id записи
4. echo – вывод записи по id
обязательные параметры:
id – id записи
5. list – вывод нескольких записей
не обязательные параметры
page – страница,count – количество записей (используются только вместе)
where – json строка массива $arr для выборки записей.
format - “api_json”

waterMark($image=null,$mark=null,$w=20,$h=20,$zoom=7) – выводит обработанную фотографию с водяным знаком.
$image – путь до картинки
$mark – путь до водяного знака
$w – ширина знака
$h – высота знака
$zoom – увеличение знака
Для элементов без фото можно установить глобальный параметр фото по умолчанию $GLOBALS["foton_setting"]['image_def']
$GLOBALS["foton_setting"]['water_mark'] — путь до водяного знака по умолчанию

dirSearch($path = null, $search = null, &$files = null) – поиск $search в директории $path или массиве директорий $path, если находит выводит путь к файлу

dirSearchCli($path = null, $search = null,$format=false, &$files = null) – поиск для CLI $search в директории $path или массиве директорий $path файлов в формате $format, если находит выводит путь к файлу

hSite() - адрес сайта с http{s}

pSite() - адрес страницы с http{s}

redirectGet($select=array(),$stop=10,$increment=1,$no_increment=array()) -
выполняет редирект на текущую страницу с get параметрами для обхода цикла.
$select – массив, содержащий имена get параметров, к которым будет применена операция инкремента
$stop – ['id'=>5,'count'=>7] – при достижении любым гет параметром ближайшего значения цикл будет остановлен, также может быть числом, и тогда если любое из начения get параметров дойдет до него цикл будет остановлен.
$increment – число, на которое нужно увеличить каждый элемент, либо массив, содержащий  имена get параметров в ключе и значения инкремента для них в значении. Также массив может содержать в значениях  «eval:» - тогда будут работать шаблоны для get параметров, к примеру ['count'=>'eval:|id|*2'] – в каждом следующем запросе значение get параметра count будет в 2 раза больше get параметра id.
$no_increment – массив, содержащий имена get параметров, к которым не будет применена операция инкремента.

Пример:
Разместите в контроллере главной страницы следующий код:

<?
class Controller extends Model
{
public function test(){
	global $FG;
    	if(isset($FG->get()->id) && isset($FG->get()->count)){
    		$select = ['id','count','name'];
    		$no_increment = ['name'];
    		$stop = ['id'=>5,'count'=>20];
    		$increment = ['id'=>1,'count'=>'eval:|id|*2'];
    		$this->core->redirectGet($select,$stop,$increment,$no_increment);
    	}
    }
}

Теперь перейдите по ссылке: 
http://вашдомен/html/?id=1&count=1&name=test

smtpSend($mailTo, $subject, $message) – отправляет письмо через SMTP, требует указания параметра $GLOBALS["foton_setting"]['smtp'], в противном случае выдает лог ошибок.
$mailTo — E-mail получателя
$subject — заголовок письма
$message — тело письма

isValid($val, $flag) — проверяет $val по флагу $flag на соответствие, $flag может принимать значение:

M – mail
D – домен
F – число float
IP – IP адрес
R – регулярное выражение
U – URL адрес
I – число integer
O – непустое значение
T – строка

IsCli() - если работа  ведется через CLI возвращает true, иначе false

error ($text = null) — вывод ошибки с форматированием для админ панели

echoType ($type = null, $arr = null,$id=0)
$type — тип данных
$arr - array('fields'=>array('name'=>str,'value'=>str)) — название и значение поля
$id — id элемента для вывода
Выводит тип данных для CRUD

ev ($var = null) — выполняет вывод выражения на php через eval

upTpl () - обновляет шаблоны сайта и админ панели с помощью метода tpl

tpl ($filenames,$dir)
$filenames – путь к директории в которой лежат файлы шаблонов для обновления через шаблонизатор Foton
$dir – если site запускается шаблонизатор для сайта, если admin для админ. Панели
Выполняет обновление шаблонов сайта или админ панели

upCore ($yes)
Если $yes = true обновляет ядро системы

icode ($code=null,$file=null)
$code – название файлового типа данных
$file – название справочника
Выводит файловый тип данных

includeTpl ($path)
$path – путь к файлу шаблона
Выводит php код шаблона Foton

exfield () - сохраняет массив дополнительных полей в свойство глобальной настройки $FS->exfield

imgfield () - сохраняет массив ссылок на картинки из медиатеки в свойство глобальной настройки $FS→imgfield

fCache ($view = null)
$view – содержимое шаблона Foton
Выводит php код шаблона Foton для публичной части

aCache ($view = null)
$view – содержимое шаблона Foton
Выводит php код шаблона Foton для административной части

logFile ($name = 'no', $text = null, $append = 'no')
$name – название файла лога
$text – текст лога
$append – если yes дописывает в файл, если no – создает новый файл
Пишет информацию в файл логов

logPost ($name = null,$path=null)
Для авториованного пользователя при существовании post переменной $name пишет ее в файл с путем $path

iLoadAjax ($html, $data, $arr)
Обертка метода loadAjax модуля polygon

wiki ($text,$method=array())
$text – текст с вики разметкой
$method – массив методов ядра
пример:

$text = [a href=’<csrf:test>’]text[/a]
wiki($text,[‘csrf’]);

выведет 
<a href=’результат csrf’>text</a>

$method – массив разрешенных методов

extracod ($code = null)
$code – название дополнительного поля
выводит значение этого поля

imgcod ($code = null)
$code – название кода файла медиатеки

resizes ($text = null, $n = null)
Выводит обрезанный до количества символов $n текст $text удаляя последнее слово, если оно обрезается и многоточие, если количество символов в тексте равно или больше $n выводит текст

isMobile ()
Является оберткой над хелпером FotonMobile()
Проверяет, если запрос в мобильной версии вызвращает true, иначе false

mail ($from = null, $to = null, $subject = null, $message = null, $file = null)
$from – от кого
$to – кому
$subject – тема письма
$message – тело письма
$file – путь к вложенному файлу
Отправляет письмо

deleteDir ($path = null)
удаляет рекурсивно с вложенными файлами и папками директорию по пути $path

cacheSeo ($view='',$dir=null)
Выводит php код преобразованного текста шаблона Foton $view
$dir – диреткория сайта или админ панели

meta ($view=null,$field=null,$data=array())
Вызывает код мета-тега $field mvc шалона $view с доступным массивом $data из контроллера

sizefile ($dir = null)
Выводит округленное значение суммы размеров php файлов в директории $dir от корня сайтов, выводит знаяение в килобайтах

sizefiles ($source = null,$stat=0)
Выводит размер всех файлов в директории $source

isArrMethod ($obj,$method)
Если метод $method найлен в обьекте $obj вызывает его, иначе выводит false

listPage ($format='mvc')
Если ничего не указывать или указать mvc выведет массив из названия mvc шаблонов сайта, если указать формат json или xml выведет название mvc шаблонов именно для этого формата

listModule () - выводит результатом список доступных инсталлированных внешних модулей системы

hs($bytes=0) – выводит байты в понятном для человека формате (Kb,Mb и т.д. в зависимости от обьема данных)

size($dir=__DIR__) - выводит место в системе для директории $dir ,результатом является массив, ключ free показывает свободное место на диске, all – общее место на диске, used – занятое место на диске

createDir($dir) – создает директории по пути $dir если их нет

copyDir ($source = null, $dest = null, $over = 1)
$source – директория донор
$dest – дирекотрия акцептор
$over – если true,1 или не указана перезаписывает данные при копировании
Выполняет копирование одной директории в другую

getXML($data) – преобразует массив в XML данные, и выводит их.
$data – массив данных любой вложенности.

getId($arr)  - выводит поля из таблицы по id записи
$arr = array('table'=>таблица,'id'=>id записи для вывода,
'fields'=>поля для вывода, необязательный параметр,
'error'=> любое значение. Если ключ существует, и записей нет будет произведен редирект на 404 страницу,
'format'=> принимает значения:

'O' -  (объект) выводит результат в виде объекта
'J' – (json)  выводит json строку
'S' – (serialize)  выводит сериализованную строку
'E' – (echo)  выводит SQL строку запроса для тестирования
'X' – (xml) выводит результат в xml формате

Если ключ не задан выводит по умолчанию массив

getlist($arr) — выводит список значений полей таблицы, является оберткой handlersql
$arr – array('таблица',
'where' =>array('(маска)поле'=>'значение','(маска)поле'=>'значение'), //если logic=>LOGIC значением будет строка типа: ”поле1='значение' or поле2!=12”
(маска) — пустое → равно, ! → не равно,%->LIKE,^ →  начало строки,$ → конец строки, < → меньше,> → больше
'fields'=>array('field1','field2') или 'field1,field2' поля для вывода, если не указан group, если group указан, поля для вывода заменяется на поля group
'group'=>array('field1','field2') или 'field1,field2' – поля для группировки
'logic', - LOGIC,AND,OR
'sort', - array('поле'=>ASC или DESC);
'count', -  количество элементов
'page' — страница
'format' - принимает значения:

'O' -  (object) выводит результат в виде объекта
'J' – (json)  выводит json строку
'S' – (serialize)  выводит сериализованную строку
'E' – (echo)  выводит SQL строку запроса для тестирования
'X' – (xml) выводит результат в xml формате

Если ключ не задан выводит по умолчанию массив


handlersql($table=null,$arr=null,$format=null) — основной метод вывода данных для интерфейсов и пользовательских методов, основан на ORM Foton
$table – название таблицы
$arr - array('where'=>array(
'field'=>array('(маска)поле'=>'значение'),
 (маска) — пустое → равно, ! → не равно,%->LIKE,^ →  начало строки,$ → конец строки, < → меньше,> → больше
'and'=>'and или or')
)
,'count'=>количество элементов,
'page'=>страница,
'sort'=>array('fields'=>'asc') — сортировка, поле → ASC ,DESC,LOGIC, если LOGIC, то для ['where']['field'] значением будет строка типа: ”поле1='значение' or поле2!=12” );
$format - принимает значения:

'O' -  (объект) выводит результат в виде объекта
'E' – (echo)  выводит SQL строку запроса для тестирования

Если ключ не задан выводит по умолчанию массив

chmodID($arr,$return) - $arr – массив id ролей, если роль текущего пользователя есть в массиве выводит true, если нет false, служит для проверки доступа текущего пользователя, если $return == true, то для не авторизованного пользователя выведет false

userIp() - выводит ip адрес пользователя.

obj($path=null,$arr=null) - подключает класс,создает и передает объект класса
$path — путь к файлу класса или фасад namespaces
$arr – необязательный аргумент может быть строкой или массивом, передается только как один аргумент для __construct класса при его инициализации.
о фасадах и классах более подробно в разделе «Разработка внутренних модулей»
если класса не существует пишет false

format($format,$data)
$format — json/serialize/xml
$data - массив
Выводит массив $data в указанном формате

microFormat($format,$data)
Обертка метода format
$format — J/S/X
$data - массив
Выводит массив $data в указанном формате

googleCapcha($key=null,$secret=null)
$key — открытый ключ
$secret — секретный ключ
Выполняет проверку, если проверка успешна возвращает true иначе false

decode($text)
Выполняет urldecode строки $text

micro($name,$arr)
$name — имя микросервиса
$arr — массив ключ значение для создания get параметров
Вызывает микросервис $name

pathmod($path)
Выводит абсолютный путь к модулю $path

models() - выводит массив из названий всех моделей сайта

getHeaders() - выводит массив всех текущих HTTP заголовков

opcache() - выполняет OpCache ядра

isFormat($format=null,$get=0) — проверяет формат в строке ЧПУ.
$format - .xml,.json,.modul и т. д.
$get – если указан не ноль, проверяется только точное совпадение
Возвращает true или false

arr($arr) Печать массива
Результат: Печать массива
 print_r() 
обертка FotonArr

log($text=null,$format=nul) - log('текст','F')
Выводит сообщение в консоль
Сигнатура: $text – текст для записи или вывода лога, может быть массивом, $format может иметь значения:

L в ajax запросе выводит json, при обычном запросе выводит console.log
S - выводит сериализованную строку
F -производит лог в файл
C - если запрос идет через cli выводит print_r лога

Если не один формат не подходит выводит FotonArr
является оберткой метода FotonLog

alert($text=null,$method=null,$format=null)
Выводит js сообщение alert
$text – текст для вывода
$method – если не null, данные обрабатываются этим методом, это только метод ядра, который имеет только один первый обязательный параметр
$format — если не null данные перед выводом сериализуются

view() - метод эмуляции всего приложения
Пример: $this->core->view()->tpl->html->echo->end(['name'=>'test','value'=>'test']);  
view()->формат вызова->название сущности формата->подраздел сущности->end([аргументы для запроса])

module($path = null, $arr = null) - path = название модуля/название фасада,$arr - сигнатура модуля

obj($name = null, $arr = null)  name - название фасада,$arr - сигнатура модуля

st() - вывод instance

isHeader($head) - проверяет передан ли заголовок $head(ключ из настройки route)

isValidate($arr1 = array(), $arr2 = array(), $status = null)
$arr1 — массив, в нулевом индексе хранит название метода валидации, в остальных аргументы для вызова этого метода, Если методов валидации несколько в массиве $arr2 содержатся методы валидации с ключами аналогичными в массиве $arr1 содержащими аргументы данных методов, если $status=null или не заполнено выводит массив из true,false с ключами методов валидации, иначе при первой ошибке выводит false иначе true
© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте