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

ORM Foton 

step 1 ($tb — название таблицы)
create($tb=null) – создание таблицы
insert($tb=null) – запись в таблицу
table($tb=null,$f=null) – вывод из таблицы, $f (fields) – поля для вывода, если не указан выводятся все поля
d($tb=null) — удаление записи
trun($tb=null) — очистка таблицы
count($table) — формирует запрос SELECT COUNT(*)
up($tb=null,$p=null) — обновление таблицы, $p строка запроса типа «поле='значение',поле='значение'»
drop($tb=null) – удаление таблицы
index($tb=null,$key='id') — добавляет индекс к таблице

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'), используется только вместе с wr(),orf(),andf()
2 -  вместо where выражение остается без изменений, используется только вместе с wr(),orf(),andf()
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
пример: 
<?php
$arr = 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 – массив полей, либо строка с полем
insertArr($arr=null) – массив значений для записи array('поле'=>'значение')
field($name,$value) – добавляет создание поля, работают все поля из настроек $FS->orm->драйвер 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
wr() - добавляет слово WHERE
sc() - добавляет ;

one($p=null)
$p – поле сортировки, выводит одно значение, сортировка DESC
group($f=null)
группирует, $f – поле по которому произойдет группировка

Step 3
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 будет массив значений.
query() - выполняет запрос к базе данных
q() - выполняет запрос prepare – результат объект orm
eq() - выводит строку запроса (для тестирования)
cq($echo=null) — выполняет создание таблицы с полями в формате InnoDB, кодировка utf8
c($count=null,$param=array()) - выводит количество затронутых строк в запросе:
$count - если указана переменная не null будет выполнен метод fetchColumn(), если не указана или null rowCount() 
$param - если $param = ['S'=>true] - экранирование " не будет выполнено, 
используется в основном для поиска в сериализованных или 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

tableSortWhere($valtables=null,$id="id",$sort='DESC',$ceil='0',$w1=null,$w2=null)
Выводит данные из таблицы
$valtables — название таблицы
$id – поле сортировки
$sort — тип сортировки
$ceil — если 0, сортируется как текст, если 1 как цифры
$w1 – поле проверки
$w2 – проверяемое значение для поля

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'

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

ins($table=null,$arr=null,$where=null)
$table — название таблицы
$arr – массив данных array(поле=>значение,поле=>значение)
$where — массив условия для записи
выдает результат массив обработанных данных 
Записывает данные в таблицу, выдает результат массив обработанных данных или id записи, в случае неудачи выдает log

dbdel($table,$where)
$table — название таблицы
$where — массив условия для удаления
выдает результат массив обработанных данных 
Удаляет строки по условию из таблицы

del ($table=null,$where=null)
$table — название таблицы
$where — массив условия для удаления
удаляет данные из таблицы по условию

upAdmin($table = null, $arr = null, $where = null)
Если пользователь авторизован в системе обновляет данные в таблице $table из массива $arr где ключ название стоблца, а значение — новое хначение столбца, обновление выполняется по условиям из массива $where, структура которого соответствует стандартному массиву с возможностью использования масок по ключу аналогично методу getlist, выдает результат массив обработанных данных или id записи, в случае неудачи выдает log

update($table = null, $arr = null, $where = null)
Полностью аналогичен методу upAdmin за исключением того, что не проверяет авторизован ли пользователь, обновляет данные в таблице $table из массива $arr где ключ название стоблца, а значение — новое хначение столбца, обновление выполняется по условиям из массива $where, структура которого соответствует стандартному массиву с возможностью использования масок по ключу аналогично методу getlist, выдает результат массив обработанных данных или id записи, в случае неудачи выдает log

selectDB ($table = null, $attr = null, $attr2 = null, $echo = null)
$table — таблица
$attr - поле для фильтрации
$attr2 — значение для фильтрации
$echo список полей через ; для вывода

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) — выводит количество затронутых строк в запросе


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

delete ($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
Продукт зарегистрирован в Роспатенте