Підручник з PHP MVC Framework: Приклад CodeIgniter

Зміст:

Anonim

Що таке фреймворк PHP MVC?

PHP MVC - це шаблон дизайну програми, який відокремлює дані програми та бізнес-логіку (модель) від презентації (подання). MVC розшифровується як Model, View & Controller.

Контролер є посередником між моделями та поданнями.

Подумайте про шаблон дизайну 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-фреймворки та функції, які пропонує кожен фреймворк.

Рамки Опис
CodeIgniter https://codeigniter.com/ Це один з найпопулярніших фреймворків PHP MVC. Він легкий і має короткий термін навчання. Він має багатий набір бібліотек, які допомагають швидко створювати веб-сайти та додатки. Користувачі, які мають обмежені знання програмування ООП, також можуть ним користуватися. До програм, що працюють на основі CodeIgniter, належать;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
Кохана http://kohanaframework.org Це ієрархічний контролер моделі перегляду HMVC, надійний та легкий каркас. Він має багатий набір компонентів для швидкої розробки додатків. Серед компаній, що використовують Kohana, є;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org Він створений за зразком Ruby на рейках. Він відомий такими поняттями, як шаблони дизайну програмного забезпечення, домовленість щодо конфігурації, ActiveRecord тощо.
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com Zend Це потужний фреймворк;
  • Безпечний, надійний, швидкий та масштабований
  • Підтримує Web 2.0 та створення веб-сервісів.
Він пропонує API таких постачальників, як Amazon, Google, Flickr, Yahoo тощо. Він ідеально підходить для розробки бізнес-додатків. До програм, що працюють від Zend, належать;
  • Pimcore CMS,
  • DotKernel.
Компанії, що використовують фреймворк Zend, включають;
  • ВВС
  • Cisco
  • Webex
  • Пропозиції.com

Перенесення програми для опитування громадської думки на CodeIgniter

У цьому посібнику ми створили додаток для опитування PHP. Тут ми перенесемо цей код на CodeIgniter

  • Завантажте останню версію CodeIgniter з їх веб-сайту.
  • Витягніть вміст заархівованого файлу до каталогу розвитку у каталозі веб-сервера. На цьому уроці ми використовуватимемо ciopinionpoll як назву папки.
  • Перейдіть за URL-адресою http: // localhost / ciopinionpoll /

Зараз ми збираємося перенести нашу програму опитування думки на CodeIgniter. Нагадаємо, що наш додаток був розділений на три основні компоненти, а саме:

  • Фронтальний контролер - це частина, яка відповідає на запити URL-адрес і повертає запитувану сторінку. Цей код потрапить у контролер
  • Модель - це код, який відповідає на запитувані дані та повертає запитувані дані. Цей код увійде в модель
  • Перегляди - це код, який відповідає за форматування та відображення даних. Цей код потрапить у поле зору
    • Перейдіть до папки ciopinionpoll
    • Відкрийте файл database.php, який знаходиться в каталозі application / config.
    • Знайдіть наступні рядки коду

Налаштування конфігурації бази даних

  • Встановіть для імені користувача root
  • Встановіть пароль для кореневого пароля localhost
  • Назва бази даних для опитування думки. Зверніть увагу, що ми будемо використовувати базу даних, створену на попередньому уроці.
  • Збережіть зміни та закрийте файл.

Створення нашої моделі

Далі ми збираємося створити нашу модель, яка розширить CI_Model. CI_Model є частиною бібліотек CodeIgniter. Модель буде знаходитись у додатку / моделі 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 .= "
" . $ 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);}}?>

ТУТ,

  • “Клас Opinion_poll_model розширює 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')) вихід ('Прямий доступ до сценарію не дозволений');" гарантує, що користувачі не отримують безпосередній доступ до класу контролера
  • “Привітання класу розширює CI_Controller ...” наш контролер розширює клас CI_Controller
  • “Public function __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?

JQuery
MooTools
YUI Library
Glow

Давайте тепер створимо сторінку результатів 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:

Return to voting page

Тестування нашої програми

Якщо припустити, що кореневим каталогом вашої програми є ciopinion, перейдіть до http: // localhost / ciopionpoll /

Натисніть кнопку ОК, ви побачите таке попереджувальне повідомлення

Проголосуйте за свого улюбленого кандидата, потім натисніть кнопку ОК Ви побачите наступну сторінку результатів

Висновок

CodeIgniter - це простий у вивченні та використанні фреймворк PHP MVC, який може значно скоротити час, витрачений на розробку додатків.

Резюме

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