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

    • О фреймворке
    • Что изменилось в 7 версии
    • IO7 Framework vs Laravel 13 — Сравнение
    • Структура
    • Варианты проектов
    • Доступ к участкам проекта
    • Разворачивание нового проекта
    • Установка проекта
    • Запуск локальной разработки
  • API

    • Обзор API
    • IOCore::call() и IOCore::callAction()
    • Создание API
  • CLI

    • Обзор CLI
    • iocli
    • Кастомные CLI команды
  • Работа с базами данных

    • Обзор работы с базами данных
    • Cron / Планировщик задач (Schedule)
    • Фабрики
    • Миграции
    • Сидеры
    • Query Builder
    • Подключение MinIO
    • Подключение MongoDB
    • Подключение MySQL
    • Подключение PostgreSQL
    • Подключение ProxySQL
    • Подключение RabbitMQ
    • Подключение Redis
  • Логирование

    • Обзор логирования
    • IOEvent - Логирование событий
    • Pinba (PinbaManager) - Профилировщик
  • Модели

    • Обзор моделей
    • CRUD операции
    • Связи моделей
  • Очереди

    • Обзор очередей
    • RabbitMQ
  • Маршруты

    • Обзор маршрутов
    • Определение маршрутов
    • Middleware
  • Сессии

    • Обзор сессий
    • Кроссдоменная SSO
    • JWT авторизация
    • Социальная авторизация
    • OAuth2
    • Keycloak
  • Twig

    • Обзор Twig
    • Формы (FormBuilder)
    • Twig функции
  • Тестирование

    • Обзор тестирования
    • Unit тесты
  • Backend

    • Настройки проекта Conf.php
    • Настройки модуля Module.php
    • Настройки composer
    • Функции фреймворка
    • Вспомогательные функции (Helpers)
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • Core класс
    • Route и работа с ними
    • Request и работа с ними
    • Middleware и работа с ними
    • Class и работа с ними
    • Api model и работа с ними
    • Template и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
    • Миграции
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • Twig контекст
    • Настройка NPM
    • Сборка Frontend составляющей
    • Обращение к Api через JS
    • Хранилище (store)
    • Навигация в хосте
    • Навигация в микрофронтенде
    • Параметры микрофронтенда
    • Проверка полномочий
  • Tailux UI Компоненты

    • Базовый UI

      • AvatarDot
      • Avatar
      • Badge
      • Button
      • Card
      • ConfirmModal
      • Divider
      • Highlight
      • Tag
    • Загрузка

      • Circlebar
      • Progress
      • Skeleton
      • Spinner
    • Навигация

      • Accordion
      • AccordionButton
      • AccordionHeader
      • AccordionItem
      • AccordionPanel
      • AccordionProvider
      • Pagination
      • PaginationControl
      • PaginationItems
      • PaginationDots
      • PaginationFirst
      • PaginationLast
      • PaginationNext
      • PaginationPrevious
    • Отображение данных

      • Box
      • Collapse
      • ContextualHelp
      • ScrollShadow
      • Timeline
      • TimelineItem
    • Элементы таблиц

      • Table
      • CollapsibleSearch
      • ColumnFilter
      • CopyableCell
      • DateFilter
      • FacetedFilter
      • FilterSelector
      • PaginationSection
      • RadioFilter
      • RangeFilter
      • ResponsiveFilter
      • RoleFilter
      • SelectedRowsActions
      • TableColumnVisibility
      • TableSettings
      • TableSortIcon
    • Элементы форм

      • Checkbox
      • Combobox
      • DatePicker
      • Filepond
      • Input
      • Listbox
      • Radio
      • Range
      • Select
      • StyledSwitch
      • Swap
      • SwapOn
      • SwapOff
      • Switch
      • Textarea
      • TextEditor
      • Upload

Различия между вариантами проекта IO7

Внимание

Данная статья документации написана нейросетью. Возможны некоторые расхождения и неточность информации!

  • Обзор
  • Вариант без МФ (io7proj)
    • Репозиторий
    • Структура фронтенда
    • package.json
    • Особенности
  • Вариант с МФ (io7mfproj)
    • Репозиторий
    • Структура фронтенда
    • package.json
    • bootstrap.js (vue-mfbrowser и vue-mfmobi)
    • Vue компоненты (vue-mfbrowser и vue-mfmobi)
    • Особенности
  • Сравнение

Обзор

IO7 предоставляет два варианта проекта-оболочки:

ПараметрБез МФС МФ
Репозиторийio7projio7mfproj
ОписаниеБазовый проектПроект с микрофронтендами

Вариант без МФ (io7proj)

Репозиторий

skv.devkdt.info/hg/io7proj

Структура фронтенда

src/
├── app/
│   └── Vue/          # Основное SPA приложение
│       ├── main.js
│       ├── App.vue
│       ├── router.js
│       ├── store.js
│       └── ...

package.json

{
    "name": "bmc-<apiname>-app",
    "description": "BMC <описание> App"
}

Особенности

  • Единое SPA приложение
  • Проще в настройке
  • Подходит для простых проектов

Вариант с МФ (io7mfproj)

Репозиторий

skv.devkdt.info/hg/io7mfproj

Структура фронтенда

src/
├── vue-app/              # Основное приложение (хост)
│   ├── src/
│   │   ├── main.js
│   │   ├── App.vue
│   │   ├── router.js
│   │   └── ...
├── vue-mfbrowser/        # МФ для десктопа
│   ├── src/
│   │   ├── bootstrap.js  # serviceCode = '<apiname>'
│   │   ├── pages/
│   │   │   ├── Home.vue  # Mfapp → <Apiname>
│   │   │   └── Test.vue  # Mfapp → <Apiname>
│   │   └── layouts/
│   │       └── MfLayout.vue  # Mfapp → <Apiname>
│   └── package.json      # bmc-<apiname>-mf-browser
└── vue-mfmobi/           # МФ для мобильного
    ├── src/
    │   ├── bootstrap.js  # serviceCode = '<apiname>'
    │   ├── pages/
    │   │   ├── Home.vue  # Mfapp → <Apiname>
    │   │   └── Test.vue  # Mfapp → <Apiname>
    │   └── layouts/
    │       └── MfLayout.vue  # Mfapp → <Apiname>
    └── package.json      # bmc-<apiname>-mf-mobi

package.json

vue-app:

{
    "name": "bmc-<apiname>-app",
    "description": "BMC <описание> App"
}

vue-mfbrowser:

{
    "name": "bmc-<apiname>-mf-browser",
    "description": "BMC <описание> MF Browser App"
}

vue-mfmobi:

{
    "name": "bmc-<apiname>-mf-mobi",
    "description": "BMC <описание> MF Mobi App"
}

bootstrap.js (vue-mfbrowser и vue-mfmobi)

// Было:
serviceCode = 'mfapp'

// Стало:
serviceCode = '<apiname>'

Vue компоненты (vue-mfbrowser и vue-mfmobi)

<!-- Home.vue, Test.vue, MfLayout.vue -->
<!-- Было: -->
<h1>Mfapp</h1>

<!-- Стало: -->
<h1><Apiname></h1>

Особенности

  • Раздельные приложения для десктопа и мобильного
  • Каждое МФ имеет свой package.json
  • serviceCode привязывается к apiname
  • Слово "Mfapp" заменяется на название проекта

Сравнение

КритерийБез МФС МФ
Сложность настройкиНизкаяСредняя
Количество package.json13
Подходит дляПростых проектовПлатформ с разными клиентами
ДеплойЕдиный процессРаздельный для каждого МФ
Prev
Структура
Next
Доступ к участкам проекта