Hmvc введення

Що таке HMVC?

Hmvc введення

Кожна тріада функціонує незалежно від інших. Тріада може запросити доступ до іншої тріаді через їх контролери. Обидві точки дозволяють додатком розподілятися по декількох місцях, якщо потрібно. На додаток, використання шарів тріад MVC дозволяє домогтися більш глибокої і ретельної розробки додатків. Такий підхід дозволяє отримати ряд переваг, які будуть описані далі по тексту.

Чому слід використовувати HMVC?

Ключовими перевагами, які дає використання HMVC при розробці програми, є:

  • Модульність: Зменшується залежність між різними частинами програми.
  • Організація: Наявність папки для кожної значимої тріади полегшує роботу по завантаженні програми на сервер сайту.
  • Повторне використання: У слідстві природи дизайну додатки, дуже просто повторно використовувати практично кожен шматок коду.
  • Можливість розширення: Робить додаток доступним для розширення без жертвування легкістю підтримки.

Дані переваги дозволяють робити більш досконалі програми при зниженні складності розробки.

Установка HMVC в CodeIgniter

Для того, щоб запустити веб додаток, потрібен веб сервер. Для локального комп'ютера цілком підійде Denwer.

Крок 1. Завантаження та установка CodeIgniter

Зайдіть на сайт codeigniter.com і натисніть посилання "Download CodeIgniter", щоб завантажити

Hmvc введення

Потрібно витягти весь вміст архіву з zip в кореневу папку вашого веб сервера

Перейменовуємо папку "CodeIgniter_1.7.2" в "hmvcExample".

Переміщаємо папку "hmvcExample / system / application" в "hmvcExample / application". Це досить поширена практика для CodeIgniter. Робиться для того, щоб відокремити додаток від ядра робочого середовища. Структура директорій повинна мати вигляд як на додатку нижче:

Hmvc введення

Потрібно змінити url сайту відповідно до розташування додатки. У нашому прикладі змінюємо

Зберігаємо зміни і закриваємо "hmvcExample / application / config / config.php"

Hmvc введення

Тепер можна встановлювати розширення HMVC.

Крок 2. Завантажуємо і встановлюємо розширення HMVC

Завантажуємо версію 5.2 модуля розширення з CodeIgniter Wiki.

Hmvc введення

У викачаному zip файл містяться 3 php файлу:

Переміщаємо ці три файли в папку "hmvcExample / application / libraries /".

Hmvc введення

Перевантажуємо сторінку в браузері для того, щоб перевірити. Повинно знову відкритися вікно "Welcome to CodeIgniter".

Настав час додати модулі. Створюємо наступну папку "application / modules / welcome / controllers /".

Переміщаємо "application / controllers / welcome.php" в "application / modules / welcome / controllers / welcome.php".

Hmvc введення

Перевантажуємо сторінку в браузері. Все ще має відкритися вікно "Welcome to CodeIgniter".

Створюємо папку "application / modules / welcome / views /"

Переміщаємо "application / views / welcome_message.php" в "application / modules / welcome / views / welcome_message.php".

Hmvc введення

Знову перенавантажуємо браузер. Повинно знову з'явитися вікно "Welcome to CodeIgniter".

Усе! Розширення встановлено.

Приклад модуля логіна

Тепер на сайті варто CodeIgniter з розширенням HMVC, і можна зробити кілька прикладів для демонстрації. У першому прикладі розберемося, як використовувати обмеження прав доступу користувача до сторінок або до цілих модулів.

Завантажуємо і разархивируем матеріал "Система реєстрації користувача" на ваш веб сайт. Повинна з'явитися папка "ci_day6 /" поруч з папкою "hmvcExample /"

Створюємо модуль "login" в папці "hmvcExample / application". Він повинен мати такий кінцевий вигляд

Створюємо модуль "site" в папці "hmvcExample / application". Він должнен мати такий кінцевий вигляд

Порада: При роботі з модулями можна мати під рукою папку з ім'ям RENAME з трьома порожніми папками controllers, models і views. Таким чином можна заощадити час при створенні нового модуля.

Тепер копіюємо модуль login з "ci_day6 /" в нашу папку "hmvcExample /".

Скопіюйте кожен вище згаданий файл відповідно до нижче наведених списком:

Далі копіюємо файли модуля site з "ci_day6 /" в нашу папку "hmvcExample /".

Скопіюйте кожен вище згаданий файл відповідно до нижче наведених списком:

Потім потрібно скопіювати всі види, CSS файли і зображення. Зірочка (*) позначає весь вміст папки:

Скопіюйте кожну вище згадану папку відповідно до нижче наведених списком:

Відкриваємо "hmvcExample / application / config / autoload.php" і редагуємо як показано нижче:

Відкриваємо "hmvcExample / application / config / database.php" і встановлюємо дані для доступу до бази даних:

Hmvc введення

Тепер потрібно створити таблицю бази даних для збереження інформації про користувачів. Використовуємо для цього PHPMyAdmin.

Виберіть або створіть базу даних "ci_series".

У закладці SQL, введіть код запиту і натисніть кнопку "Go":

Hmvc введення

Після створення таблиці натискаємо на кнопку "Сreate account" на нашій сторінці і додаємо користувача в базу даних.

Входимо під ім'ям щойно створеного користувача і переконуємося, що знаходимося на сторінці "site / members_area". Вона повинна виглядати приблизно як на малюнку нижче:

Hmvc введення

Натискаємо посилання "logoff" і пробуємо перейти на сторінку користувача. Однак повноважень для доступу у нас не вистачає.

Hmvc введення

Отже у нас є згруповані тріади, але до теперішнього режиму HMVC бракує кількох кроків. У контролері сайту можна знайти функцію is_logged_in ().

Це функція, пов'язана з процесом реєстрації користувача. У режимі MVC вона була потрібна, тому що сайт не може отримати доступ до логіну. У режимі HMVC можна виправити функціонування.

Вирізаємо is_logged_in () з файлу "applications / modules / site / controllers / site.php"

Зберігаємо site.php без функції is_logged_in ().

Копіюємо функцію is_logged_in () в клас.

У функції __Construct () робимо HMVC виклик функції як показано нижче:

Тепер додаток повністю в форматі HMVC. Модуль site запитує login для перевірки, замість того, щоб самому її виконувати перевірку. Хоча зовні немає ніякої різниці, дизайн сайту фундаментально інший. Всі функції логіна належать тріаді логіна. Може здатися, що для такого маленького додатки виконаний дуже великий обсяг роботи. Будь-які зміни в процедурі логіна повинні тепер виконуватися тільки один раз. Внутрішня структура тріади може бути відредаговано без внесення змін в інші частини програми. Повторення коду для інших контролерів більше не потрібно. І останнє за списком, але не менш важливе - весь відповідний код зібраний в одному місці. На маленькому додатку такі зміни не викликають бурю емоцій, але з ростом розміру і складності проекту ефективність концепції HMVC стає все більш очевидною.

Приклад секції користувачів

Тепер більше розкриємо силу HMVC. Тільки що було продемонстровано, як викликати модуль з контролера. HMVC був розроблений з урахуванням інтерфейсу користувача. В результаті можна викликати модулі з видів. В такому додатку сила HMVC проявляється у всій своїй красі.

Модуль можна викликати за допомогою modules :: run (). Існує тільки одна вимога. Результат виклику повинен бути частиною html коду, але не повним видом. Виклик тож здійснюється з поля зору. Все описане буде продемонстровано при редагуванні виду модуля сайту.

Крок 1. Редагуємо контролер логіна

Скопіюйте цей код в контролер логіна.

cp () отримує інформацію з функції membership_model get_member_details (), яка буде створена на наступному кроці. Якщо користувач знайдений, то виводиться шматок коду виду, описаний на кроці 3.

Збережіть зміни, які зроблені в файлі login.php

Крок 2. Редагуємо модель модуля користувачів

Можна помітити, що ми викликаємо get_member_details () з membership_model. Ця функція отримує інформацію про користувача з бази даних і до неї звертаються з кількох різних джерел. попрацюємо з нею.

Зберігаємо зміни, які зроблені в membership_model.php

Крок 3. Створюємо вид віджета користувача

Третя і остання частина для віджета полягає в створенні шматка xhtml коду, який буде вставлятися в будь-який вид. Він викликається функцією контролера логіна, яку ми тільки що зробили.

Примітка: Використовувати вбудовані стилі - погана практика. У нашому прикладі використовується вбудований стиль тільки для наочності уявлення коду.

Даний стилізований блок отримує інформацію, передану функцією cp (). Посилання генеруються за допомогою функції anchor (). Додаткова інформація може бути знайдена в керівництві користувача на сайті codeigniter.com.

Після роботи над трьома файлами перевіримо сторінку "login / cp". Сторінка повинна являти собою щось схоже на малюнок нижче. Примітка: Потрібно увійти в систему, щоб побачити сторінку.

Hmvc введення

Крок 4. Редагуємо контролер сайту

Посилання в блоці на профайл і повідомлення повертають помилку в даний момент. Це нормально, тому що функції ще не реалізовані. Давайте зробимо їх.

Для даного прикладу потрібно видалити ...

... з конструктора, так що ми можемо зробити певну частину приватній, а іншу частину оголосити публічною.

Ми хочемо, щоб тільки зареєстрований користувач мав доступ до області користувача. Тому ми використовуємо функцію HMVC modules: run і викликаємо is_logged_in check з контролера логіна. Потім ми завантажуємо файл виду logged_in_area, який буде виправлений далі по тексту.

Як і members_area () функція забезпечує доступ тільки зареєстрованим користувачам, тому в неї включена перевірка is_logged_in. Ми вже писали код, який отримує інформацію про користувача, тому ми завантажуємо модель логіна membership_model. Так ми можемо отримати інформацію про користувача за допомогою функції get_member_details (). Третій сегмент URI, який передається в функцію, є id користувача, про який треба отримати інформацію. Наприклад, якщо url:

Те наша функція get_member_details () отримає "43 'в змінної введення. Залежно від результатів get_member_details (), ми або виводимо вид member_messages, або нічого не отримуємо (як результат помилкового запиту).

Крок 5. Редагуємо вид області для зареєстрованих користувачів

Переписуємо вміст файлу вище наведеним кодом.

Рядок 08: HMVC вводиться в дію тут. Наш вид викликає функцію "login / cp" і виводить шматок коду html точно там, де йому вказано. Зауважте, що ми нічого не готували. Всі обробляється всередині при реєстрації. Зручно, чи не так?

Зберігаємо зміни у файлі logged_in_area.php. Остаточний вигляд сторінки повинен бути такий:

Hmvc введення

Крок 6. Створюємо вид повідомлення користувача

Створимо новий вид: "applications / modules / site / views / member_messages.php".

Напишіть або скопіюйте вище наведений код в новий файл.

Даний вид дуже схожий на область користувача для перевірки того факту, що реєстрація користувача зберігається на кількох сторінках. Є тільки одна відмінність: ми отримуємо деяку інформацію з membership_model. Змінна $ first_name містить потрібні дані.

Збережіть зміни у файлі member_messages.php. Кінцевий вигляд сторінки повинен бути таким:

Hmvc введення

Крок 7. Створюємо вид профайла користувача

Створіть новий вид: "applications / modules / site / views / member_profile.php".

Напишіть або скопіюйте вище наведений код в новий файл.

Знову, ми отримуємо інформацію про користувача. Даний вид можна використовувати, щоб вивести список друзів користувача, дату останнього відвідування блогу, активність фида і так далі.

Збережіть зміни у файлі member_profile.php. Остаточний вигляд сторінки повинен бути приблизно таким:

Hmvc введення

Що відбувається, коли користувач виходить з системи?

Так як сторінка профайла є публічною, вона повинна відображатися. Без віджета користувача, звичайно.

Hmvc введення

При реєстрації користувача і переході на сторінку профайла без третього сегмента uri він побачить свій власний профайл. По виходу з системи буде отримано повідомлення про помилку:

Hmvc введення

Не можна побачити вид повідомлень. При спробах перевірити сторінку повідомлень буде видано повідомлення:

Hmvc введення

Були продемонстровані різні способи використання HMVC.

  • Виклик modules :: run () з контролера.
  • Висновок modules :: run () з виду для відображення шматка коду HTML.
  • Завантаження моделі з іншого модуля.

HMVC є видатною архітектурою, яка робить додаток більш стійким!

Hmvc введення

За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!

Hmvc введення

Hmvc введення

Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

Hmvc введення

Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

Hmvc введення

Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!

Схожі статті