Framework foton
Инструмент для профессиональной разработки web приложений
Обращение производится через
свойство ядра $this->core->db
Обращение к объекту PDO производится через
$this->core->db->db

ORM Foton 

step 1 ($tb — название таблицы)
create($tb=null) – создание таблицы
insert($tb=null) – запись в таблицу
delete($tb=null) — удаление записи
update($tb=null,$p=null) — обновление таблицы, $p строка запроса типа «поле='значение',поле='значение'»
table($tb=null,$f=null) – вывод из таблицы, $f (fields) – поля для вывода, если не указан выводятся все поля
trun($tb=null) — очистка таблицы
drop($tb=null) – удаление таблицы


step 2 ($p – название поля)
where($w=null,$and=null,$group=null) выборка значений (условие если)
$w – строка типа «поле=значение» или массив array(“поле“=>”значение“)
ключ может содержать маску:
array(“!id“=>5) – id!=5
array(“>p“=>5,”<s”=>7) – p>5 и s <7
array(“%text“=>'слово') – text содержит 'слово'
array(“^text“=>'слово') – text начинается с  'слово'
array(“$text“=>'слово') – text заканчивается 'слово'
array(“!text“=>'слово') – text не содержит 'слово'
$and – и,или, по умолчанию «и»
$group – 1 вместо where выражение закрывается в скобки (поле1=2 and поле2='text'), используется только вместе с where(),orf(),andf()
2 -  вместо where выражение остается без изменений, используется только вместе с where(),orf(),andf()
where() - добавляет в запрос WHERE
andf() - добавляет в запрос AND
orf() - добавляет в запрос OR


join($arr) – оператор JOIN (выполняет сравнение на соответствие условию между таблицами)
$arr – array('table1', //1 таблица
array('field1','field2'), // поля 1 таблицы поддерживает маски как в where- (!,<,>)
'table2', //2 таблица
array('field1','field2'), //поля 2 таблицы
'L'); //необязательное
I – inner join (по умолчанию)
L – left join
R – right join
O – outher join
C – cross join
F – full join
пример: array('role',array('id'),'user_inc',array('id'),'L');
return $this->core->table('role')->join($arr)->eq();


like($wp=null,$w=null) — более быстрый поиск like, 
$wp – массив значений полей, либо строка с значением,
$w – массив полей, либо строка с полем


whereArr($wp=null,$w=null) - более быстрый поиск =, 
$wp – массив значений полей, либо строка с значением,
$w – массив полей, либо строка с полем
insert_arr($arr=null) – массив значений для записи array('поле'=>'значение')
field($name,$value) – добавляет создание поля, работают все поля из настроек $FS→orm[драйвер] 
*драйвер orm может быть lite,mysql,pgsql


key($p=null) — создает первичный ключ
limit($f=null,$limit=null,$prev=null) - сортировка DESC
$f – строка поле сортировки,
$limit – количество записей
$prev – номер записи с которой начать


limita($f=null,$limit=null,$prev=null) - сортировка ASC
$f – строка поле сортировки,
$limit – количество записей
$prev – номер записи с которой начать


lim($limit=null,$prev=null) сортировка DESC
$limit – количество записей
$prev – номер записи с которой начать


sorts($sp=null,$s=null)
$sp – поле сортировки
$s – сортировка asc или desc
one($p=null)
$p – поле сортировки, выводит одно значение, сортировка DESC
group($f=null)
группирует, $f – поле по которому произойдет группировка
cq($echo=null) — добавляет формат InnoDB и кодировку utf8 для таблицы


Step 3
query() - выполняет запрос к базе данных
q() - выполняет запрос prepare – результат объект orm
forq($field_key,$field_value) - выполняет запрос результат массив значений, ключи поля таблицы, и номера, то есть структура  вида array(0=>array(0=>1,id=>1,1=>text,name=>text)); 
Аргументы метода являются необязательными,
$field_key — строка(поле таблицы)
$field_value — строка или массив(поле или поля таблицы)
если они указаны, то выводится массив с ключами значениями поля $field_key и значениями равными значениям поля $field_value, если $field_value является массивом, то значением поля $field_key будет массив значений.
eq() - выводит строку запроса (для тестирования)
c($count=null,$param=array()) - выводит количество затронутых строк в запросе:
$count - если указана переменная не null будет выполнен метод fetchColumn(), если не указана или null rowCount() 
$param - если $param = ['S'=>true] - экранирование " не будет выполнено, 
используется в основном для поиска в сериализованных или json данных

используется в основном для поиска в сериализованных или json данных
basisDb($dbs='InnoDB') — добавляет базис " Engine=$dbs  DEFAULT CHARSET=utf8;" к концу запроса 
back($echo = 1, $stop = null) — если $echo == 1 выводит нумерованный массив, иначе массив с ключами, если $stop!=null выполняет коммит, иначе rollback транзакции

Основные методы

sql ($sql) — пишет sql запрос для orm и результатом выдает $this

clear() - очистка свойства для запроса в orm и результатом выдает $this


selectId($table = null, $field = null, $id = null)
Выводит поля массива $field из таблицы $table записи с id==$id

dateTime($date=null) 
$date может иметь значение -1 month или +1 week
Выводит строку даты для поиска в базе, если $date не указана выводит текущую дату, ответ в формате 'Y-m-d H:i:s'

date($date=null) 
$date может иметь значение -1 month или +1 week
Выводит строку даты для поиска в базе, если $date не указана выводит текущую дату, ответ в формате 'Y-m-d'

Методы для работы со строками таблицы 


minmax ($table,$field)
Вывод по полю minmax $field в таблице $table

id ($last=false) — вывод последнего если true или первого если false поля в таблице

last ($field=false) — получение значения последнего поля field в таблице

delId ($table,$arrkey) — удаляет строки из таблицы по условию $arrkey[0] — поле для условия, $arrkey[1] — значение поля

countsql ($table = null, $arr = null) — выводит количество затронутых строк в запросе


Методы для работы со столбцами таблицы 

alterdrop ($arr)
$arr[table=>таблица,field=>поле - метод удаляет поле field в таблице

alter ($arr)
$arr['table'] - таблица
$arr['key'] — название поля
$arr['type'] — тип поля
Изменяет тип поля в таблице

add($arr)
$arr['table'] - таблица
$arr['key'] — название поля
$arr['type'] — тип поля
Добавляет поле в таблице

altertype($arr)
$arr['table'] - таблица
$arr['field'] — название поля
$arr['type'] — тип поля
Добавляет поле и тип поля в таблице

rename($arr)
$arr['table'] - таблица
$arr['oldfield'] — старое имя поля
$arr['newfield'] — новое имя поля
Переименовывает поле в таблице

createIndex($table,$field) — создает индекс для столбца $field таблицы $table

dropIndex($table,$field) — удаляет  индекс для столбца $field таблицы $table

fieldName($name=null,$format=null) — выводит отформатированную строку для записи в sql запрос с названием $name столбца и типом столбца в SQL формате согласно настройки ядра $FS→orm 

Методы для работы со структурой таблиц

tableField($table)
$table — таблица
Выводит все поля таблицы   

structureTable($table) - выводит структуру таблицы

formatTable($table) — выводит массив с названиями столбцов таблицы в ключе и формата столбцов в значении этого массива

fieldTable($table,$field) — выводит в массиве все данные из таблицы по указанным столбцам $field, если столбцы не указаны выводит все данные

copyTable($table1,$table2)
Копирует таблицу $table1 в таблицу $table2 без переноса данных

copyDateTable($table1,$table2)
Переносит данные из таблицы $table1 в таблицу $table2

renameTable($table1,$table2)
Переименовывает таблицу $table1 в $table2

tableList() — выводит список таблиц в базе в виде массива, для версии SQLite необходимо первым аргументом указать таблицу данных, а второым поле для вывода

columnType($table=null,$field=null) — выводит тип поля $field из таблицы $table

is($table) — проверяет существование таблицы, если таблица существует выводит true, иначе false

Методы для переноса базы данных

siteDump($dump = null, $arrNoDel = null)
$dump – если true сохранит, иначе выведет ошибку 
$arrNoDel – массив таблиц, которые не нужно записывать в файл
Создается бекап сайта с  базой данных и сохраняет их в архив по пути 
$FS->backup

sqlDumpFile($file=null,$tableNo=null)
$file – путь к файлу, куда будет загружен дамп базы
$tableNo – массив таблиц, которые не нужно записывать в файл
Создается бекап  базы данных 

fileInsert($file=null) — выполняет запись в базу данных из файла
$file – путь к файлу дампа базы данных
© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте