Розробка простої програми CodeIgniter
Пропозиція від 8host.com

CodeIgniter – це потужний PHP-фреймворк, здатний значно прискорити розробку веб-програми. Його робота не потребує великих ресурсних витрат завдяки модульному принципу завантаження бібліотек та поділу логіки та подання за допомогою архітектури MVC (Model-View-Controller, «модель-вид-контролер»).
У цьому посібнику мова піде про створення простого додатку, що відображає контент БД. Крім того, цей посібник продемонструє на практиці деякі основи роботи з фреймворком, описані в цій статті.
Зверніть увагу : передбачається, що CodeIgniter встановлений та налаштований відповідно до першого посібника серії.
Цей посібник продемонструє використання деяких класів та функцій CodeIgniter на прикладі відправки запиту таблиці бази даних, що містить новини, які потрібно відобразити на окремих сторінках.
Для цього потрібно створити контролер, модель і вид, а також базу даних для зберігання інформації
Примітка : передбачається, що базу даних MySQL вже встановлено на сервер.
Керівництво має до БД такі вимоги: вона повинна містити таблицю на ім'я news, в якій має бути 3 стовпці на ім'я id, title і body. Звичайно, необов'язково обмежуватись трьома стовпцями, але для виконання цього керівництва цього вистачить. Крім того, у таблиці потрібно створити пару рядків, які містять будь-які новини.
Не забудьте перевірити, чи налагоджено взаємодію CodeIgniter з БД.
Отже, виконавши всі попередні вимоги, приступайте до розробки моделі, яка вимагатиме інформацію з БД. Перейдіть до папки application/models установки CodeIgniter і створіть новий php-файл на ім'я news_model.php (загалом, його можна назвати як завгодно). Додайте відкриваючий тег php на початок файлу і створіть клас моделі шляхом розширення стандартного класу CI (пам'ятайте, що імена класів починаються з великої літери):
class News_model extends CI_Model >
У цьому класі необхідно створити функцію (яка також називається методом) для запиту до БД. CodeIgniter використовує шаблон Active Record, який дозволяє швидко створити таку функцію. Все, що потрібно зробити – завантажити клас БД у функцію-конструктор. Щоб зробити це, вставте наступну функцію до класу:
public function __construct() $this->load->database(); >
Тепер всі методи цього класу зможуть використовувати функції БД. Потім потрібно зробити так, щоб вищезазначений метод у класі Model читав інформацію з таблиці бази даних:
public function get_news($id) if($id != FALSE) $query = $this->db->get_where('news', array('id' => $id)); return $query->row_array(); > else return FALSE; > >
Ця функція просто перевіряє, чи був переданий ідентифікатор, перш ніж вилучати з таблиці news рядок з ID потрібної новини та повертати її як асоціативний масив, що містить усі стовпці в таблиці. Якщо ідентифікатор не було передано, функція поверне FALSE. Простіше кажучи, вона відповідає за отримання інформації. Збережіть та закрийте файл.
Тепер потрібно подбати про обробку запиту на клієнта, який потребує цієї інформації.
Контролер
Перейдіть до папки application/controllers і створіть новий файл php на ім'я news.php (ім'я цього файлу має збігатися з ім'ям класу). У цьому файлі знову відкрийте php тег і створіть клас контролера:
class News extends CI_Controller >
Тепер потрібно виконати кілька дій у цьому класі, щоб запити оброблялися належним чином, а екрані з'являлася потрібна інформація. В цілому, вся найважча робота виконується у класі моделі; у класі контролера потрібно завантажити клас моделі та передати його аргументу ID потрібної новини. Отже, створіть функцію на ім'я show():
public function show($id) $this->load->model('news_model'); $news = $this->news_model->get_news($id); $data['title'] = $news['title']; $data['body'] = $news['body']; $this->load->view('news_article', $data); >
Цей метод виконує таке:
- перший рядок завантажує щойно створену модель news_model;
- другий рядок використовує цю модель і зберігає результат запиту (асоціативний масив, що містить усі стовпці в рядку) у змінній $news;
- третій і четвертий рядки зберігають у масиві $data заголовок і тіло даних;
- п'ятий рядок завантажує вигляд для відображення даних та передає його.
Кожне значення в масиві $data є змінною для виведення у файлі виду. Давайте розглянемо його докладніше.
Перейдіть до папки application/views і створіть файл php на ім'я news_article.php.
Майте на увазі : ім'я цього файлу має збігатися з ім'ям, вказаним у контролері; також варто пам'ятати, що контролер не потрібно вносити розширення файлу.
До цього файлу внесіть такі рядки:
Як бачите, змінні $title і $body повинні передаватися з контролера через масив $data.
Загалом можна задати будь-який вид розмітки для відображення сторінки, але в даному прикладі достатньо використовувати тег H1 для заголовка, а тіло поділити на абзаци. Збережіть файл і надішліть браузер нащойно створений контролер:
Якщо все було виконано правильно, CodeIgniter шукатиме контролер на ім'я news (у класі файлів news.php), викличе метод show() і передасть йому параметр 1. Цей метод завантажить модель news_model, яка запитує БД та повертає отримані дані контролеру, який передає їхнього виду для відображення. Дуже просто та логічно. Якщо перейти по:
на екрані з'явиться новина з ID 2.
Базова, але дуже динамічна програма, яка може вимагати інформацію з БД і відображати її на клієнті, готова! Переваги CodeIgniter є очевидними навіть на такому простому прикладі. Просто уявіть розробку більш складної програми без CodeIgniter – величезна кількість завдань розробнику доведеться виконувати вручну.