Що таке фреймворк 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, належать;
|
Кохана http://kohanaframework.org | Це ієрархічний контролер моделі перегляду HMVC, надійний та легкий каркас. Він має багатий набір компонентів для швидкої розробки додатків. Серед компаній, що використовують Kohana, є;
|
CakePHP www.cakephp.org | Він створений за зразком Ruby на рейках. Він відомий такими поняттями, як шаблони дизайну програмного забезпечення, домовленість щодо конфігурації, ActiveRecord тощо.
|
www.framework.zend.com Zend | Це потужний фреймворк;
|
Перенесення програми для опитування громадської думки на 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 .= "";}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
ТУТ,
- “Клас 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?
Давайте тепер створимо сторінку результатів 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 /
Натисніть кнопку ОК, ви побачите таке попереджувальне повідомлення
Проголосуйте за свого улюбленого кандидата, потім натисніть кнопку ОК Ви побачите наступну сторінку результатів
Висновок
CodeIgniter - це простий у вивченні та використанні фреймворк PHP MVC, який може значно скоротити час, витрачений на розробку додатків.
Резюме
- Фреймворк - це сукупність бібліотек, які забезпечують часткову реалізацію загальних завдань.
- PHP має ряд відкритих вихідних кодів і перевірених фреймворків MVC.
- Хороший підхід до розробки відокремлює дані від презентації та заохочує використовувати єдину точку входу в програмі.
- Традиційні програми PHP, які відповідають найкращим практикам проектування програм, можуть бути перенесені на фреймворки MVC з мінімальними змінами.