ЦодеИгнитер МВЦ (Модел Виев Цонтроллер) Фрамеворк са примером

Преглед садржаја:

Anonim

Шта је МВЦ?

МВЦ стандарди за Модел-Виев-Цонтрол. То је архитектонски образац који апликацију дели на три главне компоненте.

1. Модел се бави пословном логиком и интеракцијама са базама података

2. Контролор координира активности између модела и погледа

3. Виев је одговоран за презентацију података

Следе неке од предности архитектонског узорка МВЦ

  • Лабава спојница - компоненте постоје и функционишу независно једна од друге.
  • Флексибилност - лако се могу извршити промене на појединим компонентама
  • Повећана продуктивност - више људи може истовремено радити на пројекту. Фронт-енд програмери могу радити на приказима и презентацијама, док се позадински програмери могу фокусирати на моделе, а с обзиром на то да је систем лабаво повезан, ради на крају дана

У овом упутству ћете научити:

  • Шта је МВЦ?
    • Модел
    • Контролер
    • Поглед
  • Како функционишу МВЦ оквири?
  • ЦодеИгнитер Цонтроллер
  • ЦодеИгнитер Модел

Модел

Модел је одговоран за интеракцију са изворима података. Ово је обично база података, али може бити и услуга која пружа тражене податке. Такође је уобичајена пракса да пословна логика буде садржана у моделима за разлику од контролера. Ова пракса се обично назива мршавим моделом масног контролера.

Модел обично уписује податке у базу података, пружа механизам за уређивање и ажурирање и брисање података. У савременој веб апликацији модели користе обрасце дизајна приступа подацима као што је активни запис како би олакшали интеракцију са базом података.

На пример, ЦодеИгнитер користи уграђену библиотеку Ацтиве Рецорд за помоћ моделима, док други оквири као што је Ларавел користе Елокуент Објецт Релатионал Маппер (ОРМ) који помаже у приступу подацима.

Контролер

Контролер ослушкује долазне захтеве корисника за ресурсима. Делује као посредник између модела и погледа, а понекад примењује и нека пословна правила. Рецимо да контролер прими захтев за регистрацију корисника у бази података.

Контролор може извршити валидацију података о ономе што је достављено како би осигурао да су предати сви потребни параметри. Ако нешто недостаје, корисник се преусмерава на страницу за регистрацију са приказаном одговарајућом поруком о грешци. Контролор такође може захтевати од модела да изврши више валидација провером да ли послата адреса е-поште већ постоји. Ако прођу сва правила за валидацију, контролер предаје податке моделу за процес и чека одговор.

Једном када је модел обрадио информације и вратио позитиван одговор, контролер учитава одговарајући приказ и као параметар прослеђује податке враћене из модела.

Поглед

Приказ се бави подацима представљеним крајњем кориснику. У веб апликацијама погледи често садрже ХТМЛ, ЦСС и опционално ЈаваСцрипт. Прегледи садрже минимални програмски код. Код садржан у приказима обично се користи за пролазак кроз збирке података примљених као параметри од модела или помоћне функције за чишћење података или стварање веза за уређивање записа. Већина модерних веб апликација обично користи механизме за шаблонирање који дефинишу сопствену синтаксу која је више налик псеудокоду и коју дизајнери могу лако разумети. Када се ради са ЦодеИгнитер, уобичајена је пракса да се користе кратке ПХП ознаке и контролне структуре. Да бисте приказали нешто у ЦодеИгнитер, може се користити следећи код


Насупрот

Контролне структуре се обично пишу на следећи начин


Као што можете видети из горњег примера, приказ ће користити комбинацију ПХП-а и ХТМЛ-а уместо да све затвори у чисти ПХП код.

Како функционишу МВЦ оквири?

Следећа слика приказује рад МВЦ оквира

Контролор прима захтев од корисника, по потреби ступа у интеракцију са моделом базе података, а затим враћа резултат назад у прегледач у облику ХТМЛ кода који је прегледач протумачио у читљив формат и приказао кориснику.

ЦодеИгнитер Цонтроллер

Хајде сада да рашчланимо шта се управо догодило када смо горњи УРЛ учитали у веб прегледач.

Отворите датотеку Велцоме.пхп контролер који се налази у апликацији / контролерима

Требали бисте бити у могућности да видите следећи код

load->view('welcome_message');}}

ОВДЕ,

  • дефинисано ('БАСЕПАТХ') ИЛИ излаз ('Није дозвољен директан приступ скрипти'); спречава директан приступ контролору ако захтев није дошао путем индек.пхп. ово је из сигурносних разлога.
  • класа Велцоме проширује ЦИ_Цонтроллер {…} дефинише класу контролора добродошлице и проширује родитељску класу ЦИ_Цонтроллер
  • индекс јавне функције () {…} дефинише метод индекса који одговара на УРЛ хттп: // лоцалхост: 3000
    • $ тхис-> лоад-> виев ('велцоме_мессаге'); учитава поглед добродошлице који се налази у директоријуму апликација / погледа

Сада ћемо ажурирати метод индекса на следећи начин

public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}

ОВДЕ,

  • $ тхис-> лоад-> модел ('цустомерс_модел'); учитава модел купаца.
  • $ дата ['цустомер'] = $ тхис-> цустомерс_модел-> гет_цустомер (3); позива методу гет_цустомер цустомерс_модел и предаје параметар 3. У овом примеру смо тешко кодирали вредност, али у стварним апликацијама то би био параметар из УРИ-ја.
  • $ тхис-> лоад-> виев ('велцоме_мессаге', $ дата); учитава приказ велцоме_мессаге и прослеђује променљиву $ дата у приказ

ЦодеИгнитер Модел

Хајде сада да креирамо поглед на који смо се позивали у горњем коду. Ради једноставности, наш модел неће ступити у интеракцију с базом података, али ће вратити статички кориснички запис. У наредним туторијалима радићемо са базама података.

Направите датотеку Цустомерс_модел.пхп у апликацији / моделима

Додајте следећи код


ОВДЕ,

  • класа Цустомерс_модел ектендс ЦИ_Модел {…} дефинише модел Цустомерс_модел који проширује ЦИ_Модел.
  • јавна функција гет_цустомер ($ ид) {…} дефинише методу гет цлиент засновану на ид-у купца
  • $ дата […] дефинише статичке вредности нашег фиктивног купца. Ово би требао бити ред враћен из базе података.
  • врати $ података; враћа податке о купцу.

Односно, то је за наш модел. Хајде сада да модификујемо приказ велцоме_мессаге

Отворите велцоме_мессаге.пхп који се налази у

application/views/welcome_message.php

Замените код следећим

CodeIgniter MVC Basics

Customer Details Card

Customer ID :

First Name :

Last Name :

Address :

Сачувајте промене

Учитајте следећу УРЛ адресу у веб прегледач

хттп: // лоцалхост: 3000 /

Морали бисте да видите картицу купца као што је приказано на слици испод

Резиме

  • МВЦ је архитектонски образац који апликацију дели на три главне компоненте
  • Модел је одговоран за интеракцију са изворима података
  • Контролер ослушкује долазне захтеве корисника за ресурсима
  • У веб апликацијама погледи често садрже ХТМЛ, ЦСС и по жељи ЈаваСцрипт
  • Контролор прима захтев од корисника, по потреби ступа у интеракцију са моделом базе података, а затим враћа резултат назад у прегледач у облику ХТМЛ кода