BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v6

    • О фреймворке
    • Уроки
    • Структура
    • Доступ к участкам проекта
    • Старые версии фреймворка
    • Разворачивание нового проекта
  • Backend

    • Функции фреймворка
    • Настройки проекта (app/i.php)
    • Настройки composer
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • IOCore класс
    • Controller и работа с ними
    • Class и работа с ними
    • Model и работа с ними
    • View и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioSession->user и работа с пользователем
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • JS плагины
    • Отложенная загрузка JS скриптов
    • Обращение к Model через JS
  • Примеры

    • AutoIncrement, зависящий от полей

IO v6. IOCore класс

  • Описание
  • Переменные класса
    • defaultLayout
    • defaultController
    • layout
    • skipController
    • dictionary
    • languages
    • langDefault
    • currentlanguage
  • Методы класса
    • entityToFile()
    • entityRemote()
    • runController()
    • getAllControllers()
    • runAnalyze()
    • run()
    • render()
    • loadDictionary()
    • translate()
    • getTranslate()
    • bildIOData()
    • renderPlain()
    • Instance()
    • load()
    • signData()
    • checkClassMethodExists()
    • checkRCPRules()
    • http_build_query_for_curl()
    • curlSendPost()
    • call()
    • callAction()
    • callActionQuiet()

Описание

IOCore - класс, служащий неким ядром фреймворка. Здесь находятся методы, организующие "общалку".

Переменные класса

defaultLayout

Layout view по умолчанию.

string $defaultLayout = ''

defaultController

Controller по умолчанию.

string $defaultController = 'app.controller.main'

layout

Текущий layout view.

string $layout = ''

skipController

Флаг, определяющий пропустить контроллер при анализе или нет.

int $skipController = 0

dictionary

Загруженный словарь фраз.

array $dictionary = []

languages

Поддерживаемые языки по умолчанию.

array $languages = [
    'ru' => 'Русский',
]

langDefault

Язык по умолчанию.

string $langDefault = 'ru'

currentlanguage

Текущий язык.

string $currentlanguage = 'ru'

Методы класса

entityToFile()

Расшифровка файла по entity. Вспомогательная функция.

static entityToFile(
    string $entity,
    array $params = []
): array
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к файлу в формате entity.Да
$paramsarrayМассив параметров.Нет

$params:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
hasMethodbool???falseНет
isActionbool???falseНет

entityRemote()

Вспомогательная функция.

static entityRemote(
    string $entity
): bool
Аргумент функцииТипОписаниеОбязательный
$entitystringПуть к файлу в формате entity.Да

runController()

Вызывает метод указанного controller'а.

static runController(
    string $entity,
    string $end
): int(1)
Аргумент функцииТипОписаниеОбязательный
$entitystringПуть к controller файлу в формате entity.Да
$endstring???Да

ВНИМАНИЕ

На данный момент неизвестно где используется и для чего...

getAllControllers()

Метод возращает всевозможные контроллеры по uri. Вспомогательная функция.

  1. Сначала выводится <controller>/<method>/<end>.
  2. Затем выводится <defaultController>/<method>/<end>.
  3. Затем выводится <path>/<controller>/<method>/<end>.

Используется в конструкции генерации URL для работы controller'ов (в методе IOCore::runAnalyze()).

static getAllControllers(
    string $uri
): array
Аргумент функцииТипОписаниеОбязательный
$uristringURI строка.Да

Пример:

$uri = '...';
$arr = parse_url($uri);
$path = xarr($arr, 'path');
$controls = IOCore::getAllControllers($path);

runAnalyze()

static runAnalyze(
    string $uri
): int(0|1)
Аргумент функцииТипОписаниеОбязательный
$uristringURI строка.Да

run()

Функция инициализации фреймворка и проекта. Вызывается в файле index.php проекта. Вспомогательная функция.

static run(
    array $config
): void
Аргумент функцииТипОписаниеОбязательный
$configarrayURI строка.Да

$config:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
defaultControllerstringController проекта.'app.controller.main'Нет
defaultLayoutstringLayout view проекта.'app.view.layout.main'Нет
ltrimeuriarray???[]Нет

Пример:

$config = [
    'defaultLayout' => 'io.view.layout.main',
    'defaultController' => 'app.controller.cms',
    'errorController' => 'app.controllers.error',
];
outGenPageTime('IOCore::run()');
IOCore::run($config);

render()

Отрисовка view файла в layout view controller'а с передачей в него указанных параметров.

static render(
    string $view,
    array|null $params = null
): void
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$viewstringПуть к view в формате entity.Да
$paramsarray|nullПередаваемые параметры.nullНет

Пример:

IOCore::render(
    'app.view.example',
    [
        'hello' => 'world',
    ]
);

ВНИМАНИЕ

Не рекомендуется использовать. Используйте встроенный метод controller render().

loadDictionary()

Загрузка файла словаря фраз.

static loadDictionary(
    string $path
): bool
Аргумент функцииТипОписаниеОбязательный
$pathstringПуть к файлу словаря фраз.Да

Пример:

IOCore::loadDictionary(IO_PATH.'/app/dictionary/cms.json');
IOCore::loadDictionary(BASE_PATH.'/app/dictionary/trade.json');

translate()

Получение фразы из словаря фраз указанного либо текущего языка.

static translate(
    string $mainname,
    string|null $lang = null
): string
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$mainnamestringApiname фразы из словаря фраз.Да
$langstring|nullЯзык фразы.nullНет

Пример:

PHP
$btnAdd = IOCore::translate('cms.main.btn.add');
Twig
{{ translate['cms.main.btn.add'] }}

getTranslate()

Возвращает массив загруженного словаря фраз. Вспомогательная функция.

Используется в методе IOCore::bildIOData().

static getTranslate(): array

bildIOData()

Метод генерации базового содержимого глобальной переменной $ioData. Используется в инициализации фреймворка.

static bildIOData(): void

renderPlain()

Отрисовка view файла без layout view controller'а с передачей в него указанных параметров.

static renderPlain(
    string $view,
    array|null $params = null
): void|null
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$viewstringПуть к view в формате entity.Да
$paramsarray|nullПередаваемые параметры.nullНет

Пример:

IOCore::renderPlain(
    'app.view.example',
    [
        'hello' => 'world',
    ]
);

Instance()

Создание экземпляра указанного class.

static Instance(
    string $entity,
    int $fromio = 0
): object|null
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$viewstringПуть к class в формате entity.Да
$fromioint(0|1)???0Нет

Пример:

$c = IOCore::Instance('app.class.example');

load()

Подключение (include_once) указанного класса model / class / controller. Вспомогательная функция.

static load(
    string $entity
): void
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к model / class / controller в формате entity.Да

Пример:

IOCore::load('app.class.example');
IOCore::load('app.model.example');
IOCore::load('app.controller.example');

signData()

Подписание отправляемых данных. Возвращает цифровую подпись для IOCore::call(). Вспомогательная функция.

static signData(
    string $entity,
    array $data,
    string|int $time
): string
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к model / class / controller в формате entity.Да
$dataarray???Да
$timestring|intВремя (не понятно в каком формате).Да

checkClassMethodExists()

Проверяет наличие класса и метода на существование. Вспомогательная функция.

static checkClassMethodExists(
    $file,
    $namespace,
    $class,
    $method,
    bool $check_rcp_rules = false
): int(EIO)

checkRCPRules()

Проверяет, можно ли выполнить class метод по rcp_rules(). Вспомогательная функция.

static checkRCPRules(
    array $entity_arr
): int(EIO)
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entity_arrarrayМассив параметров.Нет

$entity_arr:

ПараметрТипОписаниеЗначение по умолчаниюОбязательный
namespacestring|null??nullНет
classstring|null???nullНет
methodstring|null???nullНет
filestring|null???nullНет

http_build_query_for_curl()

Конвертирует многоуровневый массив. Вспомогательная функция.

https://stackoverflow.com/questions/3772096/posting-multidimensional-array-with-php-and-curl

static http_build_query_for_curl(
    array $arrays,
    array &$new = [],
    string|null $prefix = null
): void
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$arraysarray???Да
$newarray???Нет
$prefixstring|null???Нет

curlSendPost()

Отправка данных через curl. Вспомогательная функция.

static curlSendPost(
    string $url,
    array $arr,
    $cookie = '',
    bool $log_echo = false,
    bool $pinba_enable = true
): array
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$urlstringURL строка.Да
$arrarray???Да
$cookiestring???''Нет
$log_echoboolОтображать лог.falseНет
$pinba_enableboolВключить pinba.trueНет

call()

Обращение к указанному class проекта с передачей указанных параметров.

static call(
    string $entity,
    array $params,
    int $fromio = 0,
    bool $log_echo = false
): object
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к class в формате entity.Да
$paramsarrayПередаваемые параметры.Да
$fromioint???0Нет
$log_echoboolОтображать лог.falseНет

Пример:

$r = IOCore::call(
    'app.class.example.test',
    [
        'hello' => 'world',
    ]
);

callAction()

Обращение к указанному model проекта с передачей указанных параметров.

static callAction(
    string $entity,
    array $params,
    int $fromentity = 0,
    int $filesupload = 0,
    bool $log_echo = false
): object
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к model в формате entity.Да
$paramsarrayПередаваемые параметры.Да
$fromentityint???0Нет
$filesuploadint???0Нет
$log_echoboolОтображать лог.falseНет

Пример:

$r = IOCore::callAction(
    'app.model.example.test',
    [
        'hello' => 'world',
    ]
);

callActionQuiet()

Вспомогательная функция.

static callActionQuiet(
    string $entity,
    array $params,
    mixed &$content,
    int $fromentity = 0,
    int $filesupload = 0
): object
Аргумент функцииТипОписаниеЗначение по умолчаниюОбязательный
$entitystringПуть к model в формате entity.Да
$paramsarrayПередаваемые параметры.Да
$contentmixed???Да
$fromentityint???0Нет
$filesuploadint???0Нет
Prev
Event класс
Next
Controller и работа с ними