Будапештський університет технологій та економіки Факультет електротехніки та інформатики Кафедра автоматики та прикладної інформатики Тамас Тот ПИТАННЯ ВЕБ-ЗАСТОСУВАННЯ Об'єктно-орієнтоване КОНСУЛЬТАНТИ на основі PHP Золтан Давід, Габор Гінцай БУДАПЕШТ, 2013

завантажити

Зміст Веб-додаток Diet Maker. 1 Зміст. 2 Резюме. 5 Реферат. 6 1 Вступ. 7 2 Специфікація. 9 2.1 Мета. 9 2.2 Уточнення посадової інструкції. 9 2.3 Завдання, які потрібно виконати. 11 3 Вимоги. 13 3.1 Системні критерії. 13 3.2 Критерії розробника. 13 4 Вивчення популярних фреймворків та менеджерів контенту. 14 4.1 Рамки. 14 4.2 Менеджери вмісту. 15 5 Серверне середовище та середовище для розробників. 17 5.1 Веб-сервер. 17 5.2 Статичний сервер. 17 5.3 Мова програми та розширення. 18 5.4 Сервер кешу (NoSQL). 20 5.5 Реляційний сервер баз даних. 22 5.6 Система відстеження версій. 22 5.7 Інтегроване середовище розвитку. 24 6 Власна структура. 25 6.1 Планування. 25 6.2 Впровадження. 38 7 План бази даних заявок на приготування їжі. 42 7.1 Керування вмістом. 42 7.2 Інформація про територію. 43 7.3 База знань. 43 7.4 Дієта. 44 7.5 Дані користувача. 45

7.6 Впровадження. 47 8 Сервісні програми. 49 8.1 Менеджер з питань харчування та дієти (дієта-апі). 50 8.2 User-api. 54 9 Оптимізований для робочого столу веб-додаток. 56 9.1 Планування. 56 9.2 Впровадження. 60 10 Оптимізація для мобільного середовища. 66 10.1 Планування. 66 10.2 Впровадження. 66 11 Тестування. 70 11.1 Різновиди. 70 11.2 План. 70 11.3 Приклади. 71 12 Процес озброєння. 73 12.1 Параметри. 73 12.2 Будівництво. 74 13 Рейтинг. 76 14 Варіанти вдосконалення. 77 Список малюнків. 79 Список літератури. 80 Додаток A. Додаток DVD. 85

ЗАЯВА СТУДЕНТА Я, нижчепідписаний, Тамаш Тот, студент, заявляю, що сам підготував цей дипломний план, без мого дозволу, я використовував лише дані джерела (літературу, інструменти тощо). Будь-яка частина, яку я взяв з іншого джерела, буквально або в тому ж сенсі, але переформульована, була чітко позначена джерелом. Я погоджуюсь на публікацію основних даних моєї теперішньої роботи (автор, назва, реферат англійською та угорською мовами, рік підготовки, імена консультантів) у загальнодоступній електронній формі на BME VIK, а також повний текст роботи через внутрішня мережа університету. Я заявляю, що подана робота та її електронна версія однакові. У разі дипломних робіт, зашифрованих з дозволу декана, текст дисертації стає доступним лише через 3 роки. Дата: Будапешт, 24 травня 2013 р. Тамас Тот

для потрібної поверхні. Необхідно також враховувати обмеження даних, як з точки зору пам'яті, так і пропускної здатності, для цього потрібно переосмислити доступність функцій, відключити їх, переставити інтерфейс, спростити, де це необхідно. Важливо протестувати програми для забезпечення якості, спочатку це можна зробити відносно швидко вручну, але пізніше, якщо до проекту приєднається більше розробників, а список функцій розшириться, автоматичне тестування стане виправданим. Ми розглянемо аспекти цього та розглянемо 1-1 приклади обраних рішень. Завершена програма повинна оброблятися в послідовній формі в режимі реального часу, тому будуть потрібні метод озброєння та система озброєння. Ми дізнаємось про можливості та метод, обраний на початку проекту. Наприкінці дипломного проекту я оцінюю проект та пояснюю подальші ідеї та можливості розвитку майбутнього виробника продуктів харчування. 12

не можна обійти без його модифікації, але слідкувати за оновленнями буде складно та ризиковано. Joomla [19]: також популярний менеджер вмісту, який повністю об'єктно-орієнтований, розширюваний за допомогою компонентів, модулів та плагінів. Ця структура є прикладом для наслідування для великого проекту. Хоча система працює добре, якість бази коду залишає бажати кращого, є серйозніші проблеми сумісності з основними змінами версій, сторонні компоненти можуть значно пришвидшити розробку продукту, але вони також мають більш проблемний код, ніж базовий система. 16

Експорт (експорт в інші формати): включає FPDF [60], що дозволяє легко перетворити HTML-сторінку в PDF або створити будь-який PDF для створення вимогливого дієтичного документа, наприклад; або TXLS, які можна зберегти у простому, старому, двійковому форматі XLS (ваша власна підготовка). Шаблон (зразки дизайну): абстрактні класи предків, риси для різних зразків дизайну, які роблять реалізацію даного зразка ще простішим. 6.1.3 Робота Рисунок 1: Обробка запиту браузера з точки зору фреймворку Основні кроки: 1. Запит надходить на веб-сервер, який визначає vhost для використання на основі домену. Vhost визначає шлях до сервера. Правила перезапису URL-адрес визначають, що якщо отримана URL-адреса не вказує на реальний файл або каталог, index.php буде обслуговувати запит. 2. index.php створює екземпляр класу Application, що відповідає додатку, передаючи йому кореневий шлях поточного додатка, а потім запускаючи його. 3. Додаток ініціалізує основні класи фреймворку (завантажувач класів, менеджер конфігурацій, обробник помилок), обробляє файли конфігурації, маршрутизації та перекладу, пов'язані з додатком. Використовуйте маршрутизатор, щоб визначити компонент, контролер, потрійну операцію для запиту та створити його екземпляри 29

також відповідний контролер, а потім передає йому обробку, викликаючи цю дію. 4. Контролер компонентів виконує будь-які операції, а потім повертається або з шаблоном, що створюється для виводу (у форматі HTML), або з масивом, призначеним у відповідь у форматі JSON. 5. Додаток отримує зазначені дані та виконує необхідні дії або обробляє помилку, якщо вона сталася. 6.1.4 Структура коду Я використовую структуру, запропоновану сьогодні все популярнішим композитором ([54] система управління зовнішніми залежностями) для визначення найвищих рівнів: /. У моєму випадку MechaRex/DietMaker буде конкретним визначенням, яке також реалізовано на рівні бібліотеки у сховищі Mercurial, яке називається MechaRex. Рисунок 2: Структура бібліотеки для приготування їжі. 30

компонент: колектор компонентів o модуль: колектор модулів o плагін: колектор плагінів o

включають: колектор файлів конфігурації програми o (необов’язково) config.php: налаштування o (необов’язково) config_ .php: залежні від мови налаштування o (необов’язково) routing.php: налаштування стратегії управління маршрутом o (необов’язково) routing_ .php: залежні від мови маршрутизація web: корінь веб-служби програми o index.php: точка входу програми Структура компонента: контролер: колектор контролерів o модель: колектор бізнес-логіки та управління даними o дані: менеджери даних .php o логіка: бізнес-логіка .php подання: колектор інтерфейсів o кеш: розташування перекладених шаблонів .php o блок: шаблони блоків .tpl o макет: шаблони фреймів сторінки .tpl o шаблон: шаблони вмісту сторінки

    .tpl Структуру модуля можна розділити на підкаталоги для категоризації: .php: модуль контролера 32

(необов’язково) модель/дані, логіка/перегляд класів/кеш, шаблон блоку/блоку Структуру плагіна можна розділити на підкаталоги для категоризації: