Codeigniter 3, статичні сторінки

Примітка: Підручник передбачає, що Ви завантажили і встановили CodeIgniter фреймворк у Вашій середовищі розробки.

Перше що необхідно зробити встановити контролер для управління статичними сторінками. Контролер - простий клас, який допомагає уповноважити роботу. Це клей веб додатки.

Наприклад, коли викликаємо:

Нам слід уявляти собі, що ім'я контролера "news". Викликаний метод в контролері news "latest". Сенс роботи методу news - витягти 10 розділів новин, і надати їх сторінці. Дуже часто в MVC, шаблон URL має вигляд:

З ускладнення схеми URL, він може змінюватися. Але зараз, це все що нам необхідно знати.

Ви створили клас з ім'ям "pages", що містить метод view, який приймає один аргумент $ page. Клас pages розширює CI_Controller клас. Це означає що новий клас pages має доступ до методів і змінним певним в CI_Controller класі (system / core / Controller.php).

Контролер є центром кожного запиту веб додатки. У технічному розумінні CodeIgniter, може бути визначений як супер об'єкт. Як і будь-який php клас, він використовує $ this. Використовуючи $ this будуть завантажуватися бібліотеки, види, і звичайні команди фреймворка.

Коли створено перший метод, настав час створити основний шаблон сторінки. Створимо два види "views" (шаблону сторінки) які містять земельна ділянка (footer) і заголовок (header).

Тема включає в себе основний HTML код, який буде відображений до завантаження основного виду. Також буде відображатися змінна $ title, яку ми призначимо пізніше в контролері. Тепер створимо підвал в application / views / templates / footer.php наступного змісту:

Додамо логіки в контролер

Раніше ми встановили в контролері метод view (). Метод приймає один параметр, який є ім'ям сторінки для завантаження. Шаблони сторінок будуть знаходитися в application / views / pages / папці.

У цій папці, створіть два файли з іменами home.php і about.php. У цих файлах введіть будь-який текст який забажаєте і збережіть його. Якщо Ви не бажаєте виділятися, введіть "Hello World!".

В порядку завантаження цих сторінок, потрібно буде перевірити незалежно від запиту існування сторінки:

Тепер, якщо сторінка існує, вона буде завантажена, разом з підвалом та заголовком, і показана користувачеві. Якщо сторінка не існує, буде показана "404 Page not found" помилка.

Перший рядок методу визначає наявність сторінки. Рідна PHP file_exists () функція використовується для перевірки незалежно від місцезнаходження файлу. show_404 () функція створена в CodeIgniter для відображення помилки сторінки за замовчуванням.

У шаблоні заголовка, змінна $ title була використана для заміни заголовка сторінки. Значення цього заголовка визначається в цьому методі, але замість призначення значення змінної, призначається елемент масиву $ data для заголовка.

Останній крок виконання - завантаження виду для подальшого відображення. Другий параметр view () методу використовується для передачі значень в вид. Кожне значення в масиві $ data призначена як змінна з ім'ям ключа. Тому значення $ data [ 'title'] в контролері еквівалентно $ title у вигляді.

маршрутизація

Тепер контролер функціонує! Вкажіть в браузері [your-site-url] index.php / pages / view щоб побачити сторінку. При відвідуванні index.php / pages / view / about побачите сторінку about, також включає в себе підвал і заголовок.

Давайте зробимо це. Відкриємо файл маршрутизації application / config / routes.php і додамо наступні два рядки. Видаліть весь інший код стосується масиву $ route.

CodeIgniter читає правила маршрутизації зверху вниз і маршрутизує запит на першу збігом правил. Кожне правило - регулярний вираз відображене в контролері і методі розбите Слеш. Коли приходить запит, CodeIgniter шукає перший збіг, і викликає відповідний контролер і метод, можливо з аргументами.

Більше інформації Ви знайдете в документації URI Маршрутизації.

Тут, друге правило в масиві відповідає any запитом використовує шаблон рядки (: any). і передає параметр методу view () класу pages.

Тепер перейдіть на index.php / about. Чи правильно пройшла маршрутизація в view () метод pages контролера? Шалений!

Схожі статті