Занятие №1. CodeIgniter 1. Скачать программу с сайта www.codeigniter.com. Кроме того существует сайт русскоязычный code-igniter.ru 2. Установка А) в папке WebServers/home/localhost/www/ создать папку, в которой будет находиться сайт. Например, rasp. Б) скопировать в нее папки application, system и файл index.php 3. Рассказ о сайте code-igniter.ru. Обратить внимание на парадигму МодельВид-Контроллер. 4. Скачать редактор PSPad c сайта pspad.com. Создать новый проект на основе папки. Для этого нажать кнопку Создать проект из папки, выбрать папку rasp, в которой содержится сайт. 5. Создать БД в MySQL А) Запустить Denwer. В браузере набрать http://localhost б) нажать ссылку phpMyAdmin 1 В) открыть вкладку Базы данных Г) вписать имя БД: company Д) на вкладке Пользователи нажать Добавить пользователя. 2 Имя пользователя Хост Пароль rasp_user localhost admin123 Е) Перейти на вкладку SQL Вставить текст SQL скрипта из файла initMySQL.txt и нажать ОК. 3 Т.о. будет создана база данных и в таблицы будут внесены значения. 6. Настройка CodeIgniter А) в браузере набрать http://localhost/rasp Загрузится отображение (вид) по умолчанию. В редакторе PSPad показать место расположения контроллера и вида по умолчанию. Папка controllers содержит контроллеры сайта, папка Models – содержит модели, папка Views – содержит виды, папка Config – содержит файлы настроек. Б) из папки config открыть файл database.php. Внести необходимые сведения для настройки подключения к базе данных по умолчанию: В) открыть файл config.php 4 и и для использования альтернативного синтаксиса PHP. Показать на сайте codeigniter.ru. Изучение контроллера и вида В папке controllers откроем контроллер welcome.php. внутри файла происходит объявление класса с именем с большой буквы Welcome. Имя класса должно совпадать с именем контроллера. Класс Welcome является наследником класса CI_Controller. Класс содержит объявление функции index( ), которая запускается по умолчанию при загрузке контроллера. В данном случае происходит загрузка Вида ‘welcome_message’. Открыв этот вид, увидим, что Вид – это html код, выводящий web страницу. В папке controllers создадим новый контроллер first.php. Далее скопируем содержимое старого контроллера welcome.php. Переименуем класс на First, а в функцию index ( ) запишем строку echo “Hello!!”; Набрать в адресной строке http://localhost/rasp/index.php/first 5 Данный вывод не рекомендуется делать в контроллере, для вывода в браузер предназначен элемент Вид. Создадим этот вид. Создадим новый HTML документ и сохраним его в папке Views под именем hello_view.php. А в контроллере first.php добавим вызов этого вида. В PHP вся работа с данными происходит с использованием массивов. Рассмотрим, как их использовать. В контроллер first.php добавим новую функцию 6 Далее создадим этот вид about_view.php. Наш контроллер first.php содержит две функции. Функция index ( ) вызывается по умолчанию при вызове контроллера. А для вызова других функций необходимо явно указывать их имя. Перейдем к браузеру и в адресной строке запишем http://localhost/rasp/index.php/first/about При этом загружается наш новый вид about.php. В функции about создадим массив с именем $data 7 А в вид about.php добавим php код В результате получим Функции контроллера могут принимать параметры. Добавим код в функцию about 8 А в строке браузера напишем http://localhost/rasp/index.php/first/about/1 Изучение Модели Для того чтобы работать с базой данных необходимо подключить соответствующую библиотеку. Откроем в папке config файл autoload.php изменим строку Создадим модель, позволяющую осуществлять просмотр содержимого таблицы Сотрудники нашей базы данных. Создадим новую модель с именем employee_model.php и сохраним ее в папку Models. Из контроллера first.php скопируем строки и изменим их 9 Создадим новый вид с именем employee_view.php и сохраним его в папку View. В контроллере first создадим функцию employee ( ), в которой загрузим модель employee_model и вид employee_view В виде добавим строку Проверим как это работает. Далее в модели employee_model создадим функцию, которая выберет данные из таблицы БД. В контроллере изменим содержимое функции employee ( ) следующие строки 10 Добавим в вид новые строки для вывода фамилии и имени сотрудников Добавив в функцию get_employee ( ) строку Можно ограничить количество выводимых строк до 3х. Перейдем к классу Database ( ) Запросы $this->db->query(); Чтобы отправить запрос, используйте следующую функцию: $this->db->query('ЗДЕСЬ ВАШ ЗАПРОС'); Функция query() возвращает объект результатов выборки из базы данных (если выполняются запросы на чтение). Полученный объект можно использовать для вывода результатов. Когда выполняются запросы на вставку или изменение данных, возвращается только TRUE или FALSE в зависимости от того, успешно или нет был выполнен запрос. В процессе получения данных, чаще всего, необходимо присваивать результаты запроса отдельной переменной. Пример: $query = $this->db->query('ЗДЕСЬ ВАШ ЗАПРОС'); $sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, 'live', 'Rick')); Стандартный запрос с получением множества результатов (объектная версия) $query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result() as $row) { echo $row->title; echo $row->name; 11 echo $row->email; } echo 'Всего результатов: ' . $query->num_rows(); Приведённая выше функция result() возвращает массив объектов. Пример: $row->title Стандартный запрос с получением множества результатов (версия с массивами) $query = $this->db->query('SELECT name, title, email FROM my_table'); foreach ($query->result_array() as $row) { echo $row['title']; echo $row['name']; echo $row['email']; } Приведённая выше функция result_array() возвращает массив индексов. Пример: $row['title'] 12