Codeigniter — это PHP фреймворк от компании EllisLab. Благодаря подробной документации и большому сообществу, Codeigniter(CI) является наилучшим решением для тех, кто только начинает изучать фреймворки. На мой взгляд, CI один из самых удобных и простых в освоении фреймворков. Подробнее о плюсах и минусах этого фреймворка можно прочитать здесь.
В своей статье я покажу как установить и настроить CI.
Шаг 1: Загрузка CodeIgniter
Для начала работы, необходимо скачать сам Codeigniter, для этого переходим на официальный сайт: http://codeigniter.com/. Последняя версия на момент написания статьи: 1.7.1.
Шаг 2: Установка
После того, как скачали Codeigniter. Распаковываем архив и переименовываем папку “CodeIgniter_1.7.1”. После этого копируем папку с фреймворком к себе на сервер. В моем случае я назвал папку — «ci». В результате у вас должна получиться следующая структура:
Шаг 3: Настройка Codeigniter
Открываем файл /system/application/config/config.php
Находим строку:
$config['base_url'] = "http://example.com/";
И меняем ее на
$config['base_url'] = "http://localhost/ci/";
По умолчанию система адресов в Codeigniter строится по такому принципу:
www.your-site.com/index.php/news/article/my_article
Использовать такой адрес нежелательно, поэтому в том же файле config.php ищем строчку:
$config['index_page'] = "index.php";
Далее заменяем эту строку на
$config['index_page'] = "";
Создаем в корневой папке файл .htaccess, чтобы удалить из запроса index.php.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ci/index.php/$1 [L]
</IfModule>
Шаг 4: Тестирование
Переходим по адресу http://localhost/ci/. Видим следующую страницу с приветствием:
Шаг 5: Создание «HelloWorld» приложения
Создание базы данных
Создадим базу “helloworld”и добавим в нее таблицу “tdata” выполнив следующий запрос:
CREATE TABLE `tdata` (
`pk_id` int(11) NOT NULL auto_increment,
`fc_title` varchar(20) default NULL,
`ft_text` text,
PRIMARY KEY (`pk_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
Добавим запись в таблицу “tdata”:
INSERT INTO
tdata (fc_title, ft_text)
VALUES
('Hello World', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sapien eros, lacinia eu, consectetur vel, dignissim et, massa.')
Настройка соединения с базой данных
Открываем файл system/application/config/database.php, вносим свои настройки для соединения с БД. В моем случае настройки будут выглядеть так:
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "helloworld";
Для работы с базой данных нам необходимо подключить библиотеку “database”. Для этого открываем файл system/application/config/autoload.php и добавляем библиотеку.
$autoload['libraries'] = array('database');
По умолчанию CI использует контроллер welcome.php; найти его можно в папке controllers. Для создания нашего “helloworld” приложения этот контроллер не нужен, поэтому удаляем его. Далее открываем файл system/application/config/routes.php, находим строку:
$route['default_controller'] = "welcome";
и исправляем ее на
$route['default_controller'] = "helloworld";
Codeigniter так же по умолчанию использует отображение welcome_message расположенное в папке views, нам он тоже не нужен и поэтому можно его удалить.
Создание модели “HelloWorld”
Модели в CI представляют из себя php класс для работы с базой данных. Создадим модель helloworld_model.php в папке system/application/models. Добавим в нашу модель конструктор и метод getData.
<?php
class Helloworld_model extends Model {
function Helloworld_model()
{
// Вызов конструктора
parent::Model();
}
function getData()
{
//Выбираем все данные из таблицы tdata
$query = $this->db->get('tdata');
//Возвращаем результат
return $query->result();
}
}
?>
Создание контроллера “HelloWorld”
Контроллер это простой файл с классом, названным так чтобы ассоциироваться с URI, по которому он будет вызван. Создаем контроллер helloworld.php в папке controllers.
<?php
class Helloworld extends Controller{
function index()
{
//загружаем модель helloworld_model
$this->load->model('helloworld_model');
$data['content'] = $this->helloworld_model->getData();
$data['page_title'] = "CI Hello World App!";
$this->load->view('helloworld_view',$data);
}
}
?>
Создание отображения “HelloWorld”
Отображение — это простая веб-страница или ее фрагмент, например шапка, подвал, боковая панель или т.д. Создаем отображение helloworld_view.php в папке views.
<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<?php foreach($content as $c):?>
<h3><?=$c->fc_title?></h3>
<p><?=$c->ft_text?></p>
<br />
<?php endforeach;?>
</body>
</html>
Переходим по адресу http://localhost/ci/ или http://localhost/ci/helloworld и видим, что вместо приветствия теперь отображается наша информация из базы данных.