Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MMS или как просто работать с моделями данных

fwdays
November 24, 2012

MMS или как просто работать с моделями данных

— Задача управления и отображения связанных структур данных в приложении
* Языки описания структур данных, аналогия со связи в ООП
— Требования к системе управления данными: от идеального к реализации
— Примеры реализации подобной задачи на РНР (Yii, Symfony2+Doctrine2)
— Компонента управления, пример решения на базе Zend Framework
* Структура (Controls, Select, Storage, Entity, Model)
* Инструменты, из Zend Framework, которые использовались
* Проблемы реализации и пути решения
* Операции над моделями, с использованием бизнес логики приложения

fwdays

November 24, 2012
Tweet

More Decks by fwdays

Other Decks in Programming

Transcript

  1. Что нам нужно? • Готовое решение для создания админки •

    Универсальность и гибкость • Полный контроль над происходящим 5 min
  2. Что может помочь? Code Generation и Scaffolding в Zend Framework

    2 (Виктор Фараздаги) – Yii (CRUD, console tool, gii) – Symfony2
  3. Резюме по Yii (+) Решение из коробки – Гибкая настройка

    шаблонов генерации – Простота использользования (+) Предоставляет базовый набор операций – CRUD (-) Использует схему данных MySQL
  4. И все же мир не так совершенен (+) Предоставление базового

    набора операций: CRUD (+) Гибкая настройка шаблонов (-) Использует схему данных MySQL Определели базовые элементы интерфейса 10 min
  5. Чего не хватает? • Компонента для Zend Framework • Работа

    с NoSQL (any other DB) • Интеграция с бизнес логикой приложения • Права доступа • Кастомизация интерфейса
  6. Model Management System (MMS) • Быстрое создание админок • Легкое

    описание схем моделей • Автогенерация отображения • Гибкая выборка • Расширение новыми компонентами
  7. Модели данных и их схемы • Перегруженность интерфейса • Параллельная

    работа моделей и схем • Разделение описания • Взаимное использование 15 min
  8. Схема модели данных Описание моделей приложения (метаданные) – Scaffolding –

    Статическое (Array, JSON, XML, YAML, PHPDoc...) Предоставляет общий интерфейс работы с моделями
  9. Метаданные Связывают данные с: • моделью • бизнес логикой •

    интерфейсом Описывают: • типы полей • обработку данных • связи данных
  10. Составляющие Компоненты User interface Filter и Paginator • Управление выборкой

    DataGrid и Form • Отображение данных • CRUD • Выполнение операций System Manager • Связь компонент Storage • Работа с данными Select • Условия выборки 20 min
  11. System. Manager • Предоставляет инструменты создания админки • Обрабатывает внешние

    запросы • Обеспечивает взаимодействие составляющих • Проксирует выполнение операций • Подготавливает данные
  12. System. Storage • Работа с метаданными • Выполнение операций •

    Фильтрация данных • Преобразование данных • Формирование объекта выборки
  13. User interface • Элементы управления выборкой • Отображениие данных •

    Операции над данными • Связи данных • Формируется на основе метаданных
  14. Filter и Paginator Элементы управления выборкой Filter • Значения полей

    • Операторы сравнения Paginator • диапазон 25 min
  15. Form и DataGrid Элементы работы с данными Form • Создание

    данных • Редактирование DataGrid • Отображение • Операции над набором данных, например, через Gearman
  16. Недостатки, а они есть? Конечно! • Использовать связи моделей при

    выборке • Трудоемкий процесс написания схемы данных
  17. Что можно посоветовать? • Дополнять готовые решения • Системные команды,

    мониторинг Gearman • Статистика • Компонента фильтрации данных