Какво представлява PHP MVC framework?
PHP MVC е модел на приложението, който разделя данните на приложението и бизнес логиката (модела) от презентацията (изгледа). MVC означава Модел, Изглед и Контролер.
Контролерът посредничи между моделите и изгледите.
Представете си дизайнерския модел на MVC като кола и водач.
Автомобилът има предни стъкла (изглед), които водачът (контролерът) използва, за да следи движението напред, след това скорост или спирачка (модел) в зависимост от това, което вижда напред.
Защо да използвам PHP MVC Framework?
- PHP MVC Frameworks опростяват работата със сложни технологии чрез;
- Скриване на всички сложни подробности за изпълнението
- Предоставяне на стандартни методи, които можем да използваме за изграждане на нашите приложения.
- Повишена производителност на разработчиците, това е така, защото основното изпълнение на дейности като свързване към базата данни, дезинфекция на потребителския вход и т.н. вече са частично внедрени.
- Спазване на професионалните стандарти за кодиране
В този урок ще научите -
- PHP MVC шаблон за дизайн
- Видове PHP MVC рамка
- Пренасяне на приложението за социологическо проучване в CodeIgniter
- Настройки за конфигуриране на база данни
- Създаване на наш модел
- Създаване на нашите възгледи
- Тестване на нашето приложение
PHP MVC шаблон за дизайн
Нека сега да обсъдим накратко всеки компонент от модела на проектиране на MVC.
Модел - тази част се занимава с бизнес логиката и данните от приложението. Може да се използва за проверка на данни, обработка на данни и съхраняване. Данните могат да идват от;
- плосък файл
- база данни
- XML документ
- Други валидни източници на данни.
Контролер - тази част се занимава с исканията на потребителите за ресурси от сървъра.
Като пример, когато потребителите поискат URL ... /index.php?products=list, контролерът ще зареди модела продукти, за да извлече данните за продуктите, след което ще изведе резултатите в изгледа на списъка.
Накратко, контролерът свързва моделите и изгледите заедно в зависимост от заявените ресурси.
Изгледи - тази част се занимава с представянето на данните на потребителя. Това обикновено е под формата на HTML страници.
Видове PHP MVC рамка
Изборът на най-добрата PHP рамка е предизвикателство.
Не е нужно да пишете своя собствена рамка, за да се възползвате от предимствата на MVC.
Трябва само да се опитвате да създадете свой собствен MVC дизайн на приложения, за да разберете как работят MVC рамките.
След като се почувствате добре с начина на работа на MVC рамките, трябва да преминете към зрелите и вече тествани рамки.
Таблицата по-долу описва накратко някои от популярните php рамки и функциите, които всяка рамка предлага.
Рамка | Описание |
---|---|
![]() | Това е една от най-популярните PHP MVC рамки. Той е лек и има кратка крива на обучение. Той разполага с богат набор от библиотеки, които помагат за бързото изграждане на уеб сайтове и приложения. Потребители с ограничени познания по OOP програмиране също могат да го използват. Приложенията, задвижвани с CodeIgniter, включват;
|
![]() | Това е йерархичен модел View View Controller HMVC сигурна и лека рамка. Той има богат набор от компоненти за бързо разработване на приложения. Компаниите, които използват Kohana, включват;
|
![]() | Моделиран е по Ruby върху релси. Известен е с понятия като модели на софтуерно проектиране, конвенция за конфигурация, ActiveRecord и др.
|
![]() | Това е мощна рамка, която е;
|
Пренасяне на приложението за социологическо проучване в CodeIgniter
В този урок създадохме приложение за анкета на PHP. Тук ще пренесем този код в CodeIgniter
- Изтеглете най-новата версия на CodeIgniter от техния уебсайт.
- Извлечете съдържанието на компресирания файл във вашата директория за разработка в директорията на вашия уеб сървър. В този урок ще използваме ciopinionpoll като име на папката.
- Прегледайте URL адреса http: // localhost / ciopinionpoll /
Сега ще пренасяме приложението си за анкета на общественото мнение в CodeIgniter. Припомнете си, че нашето приложение беше разделено на три основни компонента, а именно;
- Преден контролер - това е частта, която отговаря на заявките за URL и връща исканата страница. Този код ще влезе в контролера
- Модел - това е кодът, който отговаря на заявените данни и връща исканите данни. Този код ще влезе в модела
- Изгледи - това е кодът, отговорен за форматирането и показването на данните. Този код ще влезе в изгледа
- Прегледайте папката ciopinionpoll
- Отворете файла database.php, намиращ се в директорията application / config.
- Намерете следните редове код
Настройки за конфигуриране на база данни
- Задайте потребителското име на root
- Задайте паролата на вашата локална парола root
- Име на базата данни на анкета на общественото мнение. Имайте предвид, че ще използваме базата данни, създадена в предишния урок.
- Запазете промените и затворете файла.
Създаване на наш модел
След това ще създадем нашия модел, който ще разшири CI_Model. CI_Model е част от библиотеките на CodeIgniter. Моделът ще се намира в application / models opinion_poll_model.php
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 .= "";}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);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
ТУК,
- “Class Opinion_poll_model extends CI_Model ...” е нашият модел, който разширява CI_Model
- “… Родител :: __construct ();” извиква конструктора CI_Model
- “$ This-> load-> database ();” зарежда библиотеката на базата данни, за да може нашето приложение да взаимодейства с базата данни
- “$ This-> db->” е активният запис на CodeIgniter. Проверете тази връзка за повече информация относно активния запис.
Създаване на нашия контролер Нека сега създадем контролера. Ще използваме контролера по подразбиране CodeIgniter, разположен в application / controllers / welcome.php. Заменете неговите изходни кодове със следния код.
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 */?>
ТУК,
- „Ако (! Определено ('BASEPATH')) изход ('Не е разрешен пряк достъп до скрипт');" гарантира, че потребителите нямат пряк достъп до класа на контролера
- “Class Welcome разширява CI_Controller ...” нашият контролер разширява класа CI_Controller
- „Публична функция __construct ()“ извиква метода на конструктора на клас CI_Controller и зарежда нашия модел Opinion_poll_model
- “Public function index () ...” е функцията, която се преобразува в index.php. той използва входния клас на CodeIgniter, за да провери дали е подаден глас, добавете го към базата данни и след това покажете резултатите. Ако масивът за публикации на входния клас е празен, той зарежда страницата за гласуване.
- “$ This-> input-> post ('...')” е входният клас CodeIgniter, който грабва съдържанието на глобалната променлива $ _POST.
- “$ This-> opinion_poll_model-> add_vote ($ this-> input-> post ('vote'))” извиква метода add_vote на модела, за да добави гласа в базата данни.
Създаване на нашите възгледи
Спомнете си от предишния пример, че имахме две HTML страници, една за гласуване, а другата за резултати. Ще използваме същия HTML код с минимални модификации, за да създадем нашите възгледи. Създайте следните файлове в директорията за приложения / изгледи
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Нека сега създадем страницата с резултати results.php
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:
Тестване на нашето приложение
Ако приемем, че основната директория на вашето приложение е ciopinion, прегледайте http: // localhost / ciopionpoll /
Щракнете върху бутона OK, ще видите следното предупредително съобщение
Гласувайте за любимия си кандидат, след което кликнете върху OK Ще видите следната страница с резултати
Заключение
CodeIgniter е лесна за научаване и използване PHP MVC рамка, която може значително да намали времето, прекарано в разработване на приложения.
Обобщение
- Рамката е набор от библиотеки, които осигуряват частично изпълнение на общи задачи.
- PHP има редица зрели и тествани MVC рамки.
- Добрият подход за разработка отделя данните от презентацията и насърчава използването на една входна точка в приложение.
- Традиционните PHP приложения, които следват най-добрите практики за проектиране на приложения, могат да бъдат пренесени в MVC рамки с минимални модификации.