Водич за ПХП МВЦ Фрамеворк: Пример ЦодеИгнитер

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

Anonim

Шта је ПХП МВЦ оквир?

ПХП МВЦ је образац дизајна апликације који раздваја податке апликације и пословну логику (модел) од презентације (приказа). МВЦ је скраћеница од Модел, Виев & Цонтроллер.

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

Замислите МВЦ образац дизајна као аутомобил и возача.

Аутомобил има ветробранска стакла (поглед) које возач (контролер) користи за надгледање саобраћаја напред, затим брзине или кочења (модел), у зависности од тога шта види напред.

Зашто користити ПХП МВЦ Фрамеворк?

  • ПХП МВЦ Фрамеворкс поједностављују рад са сложеним технологијама;
    • Сакривање свих сложених детаља имплементације
    • Пружање стандардних метода које можемо користити за изградњу наших апликација.
    • Повећана продуктивност програмера, то је зато што су основна имплементација активности као што су повезивање са базом података, санација корисничког уноса итд. Већ делимично примењене.
    • Поштовање професионалних стандарда кодирања

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

  • ПХП МВЦ образац дизајна
  • Врсте ПХП МВЦ оквира
  • Преношење апликације за испитивање јавног мњења на ЦодеИгнитер
  • Поставке конфигурације базе података
  • Стварање нашег модела
  • Стварање наших погледа
  • Тестирање наше апликације

ПХП МВЦ образац дизајна

Хајде сада да укратко разговарамо о свакој компоненти МВЦ дизајнерског узорка.

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

  • равна турпија
  • база података
  • КСМЛ документ
  • Остали важећи извори података.

Контролор - ово је део који се бави захтевима корисника за ресурсима са сервера.

На пример, када корисници захтевају УРЛ ... /индек.пхп?продуцтс=лист, контролер ће учитати модел производа да би дохватио податке о производима, а затим резултате приказати у приказу листе.

Укратко, контролер повезује моделе и погледе заједно у зависности од тражених ресурса.

Погледи - овај део се бави представљањем података кориснику. Ово је обично у облику ХТМЛ страница.

Врсте ПХП МВЦ оквира

Изабрати најбољи ПХП оквир је изазов.

Не морате писати сопствени оквир да бисте искористили предности МВЦ-а.

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

Једном када се приуштите начину рада МВЦ оквира, требало би да пређете на зреле и већ тестиране оквире.

Табела у наставку укратко описује неке од популарних пхп оквира и функције које сваки оквир нуди.

Оквир Опис
ЦодеИгнитер хттпс: //цодеигнитер.цом/ То је један од најпопуларнијих ПХП МВЦ оквира. Лаган је и има кратку криву учења. Има богат скуп библиотека које помажу у брзој изградњи веб локација и апликација. Корисници са ограниченим знањем о ООП програмирању такође га могу користити. Апликације које покреће ЦодеИгнитер укључују;
  • хттпс://ввв.пироцмс.цом/
  • хттп://ввв.схопигнитер.цом/
Кохана хттп: //коханафрамеворк.орг То је хијерархијски модел Виев Виев Цонтроллер ХМВЦ сигуран и лаган оквир. Има богат скуп компонената за брзи развој апликација. Компаније које користе Кохану укључују;
  • хттпс://го.вепаи.цом/
  • хттпс://кидс.натионалгеограпхиц.цом/
  • хттпс://ввв.ситтерцити.цом/
ЦакеПХП ввв.цакепхп.орг По узору на Руби на шинама. Познат је по концептима као што су обрасци дизајна софтвера, договор око конфигурације, АцтивеРецорд итд. Апликације које покреће ЦакеПХП укључују;
  • хттп://инвоицемацхине.цом/
  • хттп://ввв.фмилифе.цом/
ввв.фрамеворк.зенд.цом Зенд То је моћан оквир који је;
  • Сигурно, поуздано, брзо и скалабилно
  • Подржава Веб 2.0 и стварање веб услуга.
Садржи АПИ-је добављача као што су Амазон, Гоогле, Флицкр, Иахоо итд. Идеалан је за развој пословних апликација. Апликације које покреће Зенд укључују;
  • Пимцоре ЦМС,
  • ДотКернел.
Компаније које користе Зенд оквир укључују;
  • ББЦ
  • Цисцо
  • Вебек
  • Понуде.цом

Преношење апликације за испитивање јавног мњења на ЦодеИгнитер

У овом упутству смо креирали ПХП апликацију за анкете. Овде ћемо тај код пренети на ЦодеИгнитер

  • Преузмите најновију верзију ЦодеИгнитер са њихове веб локације.
  • Издвојите садржај зиповане датотеке у свој развојни директоријум у директоријуму веб сервера. У овој лекцији ћемо користити циопинионполл као име фасцикле.
  • Прегледајте УРЛ хттп: // лоцалхост / циопинионполл /

Сада ћемо пренети нашу апликацију за испитивање јавног мњења на ЦодеИгнитер. Подсетимо се да је наша апликација била подељена на три главне компоненте, наиме;

  • Предњи контролер - ово је део који одговара на захтеве за УРЛ и враћа тражену страницу. Овај код ће ући у контролер
  • Модел - ово је код који одговара на тражене податке и враћа тражене податке. Овај код ће ући у модел
  • Погледи - ово је код одговоран за форматирање и приказ података. Овај код ће ући у приказ
    • Прегледајте фасциклу циопинионполл
    • Отворите датотеку датабасе.пхп која се налази у директоријуму апплицатион / цонфиг.
    • Пронађите следеће редове кода

Поставке конфигурације базе података

  • Поставите корисничко име на роот
  • Поставите лозинку за локалну роот лозинку
  • Назив базе података у анкети Имајте на уму да ћемо користити базу података створену у претходној лекцији.
  • Сачувајте промене и затворите датотеку.

Стварање нашег модела

Следеће ћемо створити наш модел који ће проширити ЦИ_Модел. ЦИ_Модел је део библиотека ЦодеИгнитер. Модел ће се налазити у апликацији / модели опинион_полл_модел.пхп

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

ОВДЕ,

  • „Класа Опинион_полл_модел проширује ЦИ_Модел ...“ је наш модел који проширује ЦИ_Модел
  • “… Родитељ :: __цонструцт ();” позива конструктор ЦИ_Модел
  • “$ Тхис-> лоад-> датабасе ();” учитава библиотеку базе података тако да наша апликација може да комуницира са базом података
  • “$ Тхис-> дб->” је активни запис ЦодеИгнитер-а. Погледајте ову везу за више информација о активном запису.

Креирање нашег контролера Хајде сада да креирамо контролер. Користићемо подразумевани контролер ЦодеИгнитер који се налази у апплицатион / цонтроллерс / велцоме.пхп. Замените његове изворне кодове следећим кодом.

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

ОВДЕ,

  • “Иф (! Дефинисано ('БАСЕПАТХ')) екит ('Није дозвољен директан приступ скрипти');" осигурава да корисници не приступају директно класи контролера
  • „Класа добродошлице проширује ЦИ_Цонтроллер ...“ наш контролер проширује класу ЦИ_Цонтроллер
  • „Јавна функција __цонструцт ()“ позива метод извођења класе ЦИ_Цонтроллер и учитава наш модел Опинион_полл_модел
  • „Индекс јавне функције () ...“ је функција која се пресликава на индек.пхп. користи класу уноса ЦодеИгнитер да провери да ли је поднет глас, додаје га у базу података и приказује резултате. Ако је низ порука улазне класе празан, учитава страницу за гласање.
  • „$ Тхис-> инпут-> пост ('...')“ је класа уноса ЦодеИгнитер која граби садржај глобалне променљиве $ _ПОСТ.
  • „$ Тхис-> опинион_полл_модел-> адд_воте ($ тхис-> инпут-> пост ('воте'))“ позива методу адд_воте модела за додавање гласа у базу података.

Стварање наших погледа

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

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

Хајде сада да креирамо страницу са резултатима ресултс.пхп

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

Тестирање наше апликације

Под претпоставком да је основни директоријум ваше апликације циопинион, потражите хттп: // лоцалхост / циопионполл /

Кликните на дугме У реду, видећете следећу поруку упозорења

Гласајте за свог омиљеног кандидата, а затим кликните на ОК Видећете следећу страницу са резултатима

Закључак

ЦодеИгнитер је ПХП МВЦ оквир који се лако научи и користи и који може у великој мери да смањи време проведено у развоју апликација.

Резиме

  • Оквир је скуп библиотека који пружа делимичну примену заједничких задатака.
  • ПХП има бројне отворене кодове зрелих и тестираних МВЦ оквира.
  • Добар развојни приступ раздваја податке од презентације и подстиче употребу једне улазне тачке у апликацију.
  • Традиционалне ПХП апликације које следе најбоље праксе дизајна апликација могу се пренети на МВЦ оквире са минималним изменама.