Codeigniter: быстрый старт



codeigniter
Codeigniter — это PHP фреймворк от компании EllisLab. Благодаря подробной документации и большому сообществу, Codeigniter(CI) является наилучшим решением для тех, кто только начинает изучать фреймворки. На мой взгляд, CI один из самых удобных и простых в освоении фреймворков. Подробнее о плюсах и минусах этого фреймворка можно прочитать здесь.
В своей статье я покажу как установить и настроить CI.

Шаг 1: Загрузка CodeIgniter

Для начала работы, необходимо скачать сам Codeigniter, для этого переходим на официальный сайт: http://codeigniter.com/. Последняя версия на момент написания статьи: 1.7.1.

Шаг 2: Установка

После того, как скачали Codeigniter. Распаковываем архив и переименовываем папку “CodeIgniter_1.7.1”. После этого копируем папку с фреймворком к себе на сервер. В моем случае я назвал папку — «ci». В результате у вас должна получиться следующая структура:

структура Codeigniter

Шаг 3: Настройка Codeigniter

Открываем файл /system/application/config/config.php
Находим строку:

1
$config['base_url'] = "http://example.com/";

И меняем ее на

1
$config['base_url'] = "http://localhost/ci/";

По умолчанию система адресов в Codeigniter строится по такому принципу:
www.your-site.com/index.php/news/article/my_article
Использовать такой адрес нежелательно, поэтому в том же файле config.php ищем строчку:

1
$config['index_page'] = "index.php";

Далее заменяем эту строку на

1
$config['index_page'] = "";

Создаем в корневой папке файл .htaccess, чтобы удалить из запроса index.php.

1
2
3
4
5
6
7
<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/. Видим следующую страницу с приветствием:
welcome codeigniter

Шаг 5: Создание «HelloWorld» приложения

Создание базы данных
Создадим базу “helloworld”и добавим в нее таблицу “tdata” выполнив следующий запрос:

1
2
3
4
5
6
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”:

1
2
3
4
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, вносим свои настройки для соединения с БД. В моем случае настройки будут выглядеть так:

1
2
3
4
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "helloworld";

Для работы с базой данных нам необходимо подключить библиотеку “database”. Для этого открываем файл system/application/config/autoload.php и добавляем библиотеку.

1
$autoload['libraries'] = array('database');

По умолчанию CI использует контроллер welcome.php; найти его можно в папке controllers. Для создания нашего “helloworld” приложения этот контроллер не нужен, поэтому удаляем его. Далее открываем файл system/application/config/routes.php, находим строку:

1
$route['default_controller'] = "welcome";

и исправляем ее на

1
$route['default_controller'] = "helloworld";

Codeigniter так же по умолчанию использует отображение welcome_message расположенное в папке views, нам он тоже не нужен и поэтому можно его удалить.
Создание модели “HelloWorld”
Модели в CI представляют из себя php класс для работы с базой данных. Создадим модель helloworld_model.php в папке system/application/models. Добавим в нашу модель конструктор и метод getData.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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.

1
2
3
4
5
6
7
8
9
10
11
12
<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 и видим, что вместо приветствия теперь отображается наша информация из базы данных.



Теги: ,

Комментарии

  1. Алексей

    Здорово! Спасибо! 🙂

    Reply

  2. Спасибо. Надеюсь на продолжение

    Reply

  3. Чтобы вы хотели видеть в продолжении?

    Reply

  4. Неплохим продолжением было бы что-нибудь вроде создания небольшой гостевой.. Тоже «быстро» 🙂

    Reply

  5. Неплохо было бы сделать цикл статей по написанию реального сайта на этом фреймворке. Я бы и сам понмл что и как работает но я не знаю ооп и поэтому для меня любой фреймворк это пытка

    Reply

Оставить комментарий