Начало работы с CodeIgniter
Этот урок посвящен фреймворку CodeIgniter. CodeIgniter позволяет разработчикам создавать web-приложения быстрее, и он предлагает множество полезных библиотек кода и помощников, ускоряющее трудоемкие задачи в PHP.
ПОЧЕМУ CODEIGNITER?
CodeIgniter очень легкий, хорошо работающий Framework. Он идеально подходит как для маленьких не очень сложных приложений, так и для крупных и требовательных приложений. Разработчиком CodeIgniter является EllisLab.
ПЛЮСИ CODEIGNITER
- компактность с исключительной производительностью;
- очень хорошо приспособлен к поисковой оптимизации;
- легок в решении;
- работает как с PHP 4 (4.3.2+), так и с PHP 5;
- поддерживает большинство основных баз данных, включая MySQL (4.1 +),MySQLi, MS SQL, Postgres, Oracle, SQLite;
- уделено очень большое значение безопасности;
- очень простое кэширование операций;
- использование многих библиотек, которые помогут Вам при таких операциях, как электронная почта, работа с изображениями, загрузкой файлов, сессиями, создание интерфейсов для приложений и многие другие;
- большинство библиотек загружаются только при необходимости, что позволяет уменьшить нагрузку на ресурс.
Ну что, давайте начинать урок.
ЗАГРУЗКА CODEIGNITER
Перед тем как начать изучение CodeIgniter, его необходимо сначала скачать. В этом уроке мы будем использовать версию 1.7.2.
УСТАНОВКА CODEIGNITER
После того как Вы загрузили CodeIgniter, все, что нам нужно это распаковать архив и переименовать папку CodeIgniter_1.7.2 на имя приложения или как в моем случае на ci. После того как переименовали, папку необходимо загрузить на свой PHP и MySQL сервер.
Теперь, когда все папки на сервере, пришло время объяснить, что обозначает каждая папка.

Папка system содержит все файлы, которые необходимы для работы.
Папка application практически идентична содержанию папки system. Это позволяет получать файлы, которые непосредственно относятся к данному заявлению.
Папка config содержит все конфигурационные фалы, которые включают в себя информацию о том, что должно сейчас загружаться и информацию о базе данных.
Папка controllers содержит все контроллеры для приложений.
Папка errors содержит все шаблоны страниц ошибок для приложений. Когда происходит ошибка, генерируется страница из одного из шаблонов.
Папка helpers содержит все помощники, которые являются специфическими для вашего приложения.
Папка hooks содержит кавычки, которые изменяют функционирование основных файлов. Кавычки используются только опытными пользователями.
Папка language содержит линии текста, которые можно будет загрузить с помощью Библиотеки для создания многоязычного приложения.
В папке libraries хранятся все библиотеки, которые являются специфическими для Вашего приложения.
В папке models хранятся все модели для приложения.
Папка views содержит все мнения для приложения.
Папка cache хранит все кэш файлы, которые были созданы библиотекой кэширования.
В папке CodeIgniter хранятся файлы, которые позволяют работать приложению.
Папка database содержит все драйвера (drivers) и классы, которые позволяют подключиться к базе данных.
В папке fonts хранятся все шрифты, которые необходимы для работы приложения.
В папке helpers содержатся помощники, эти файлы будут доступны для всех приложений.
Папка language содержит языковые файлы, которые используются для папок helpers и libaries. Также Вы можете поместить свои собственные языковые папки, которые будут доступны для Вашего приложения.
Папка libaries содержит основные библиотеки для приложения, также Вы можете размешать свои собственные библиотеки.
Папка logs хранит все журналы, которые были созданы при работе приложения.
Папка plugin содержит все плагины, которые Вы можете использовать.
Папка scaffolding содержит шаблон Вашего приложения.
Папка user_guide содержит руководство по работе с CodeIgniter.
Файл index.php отображает приложение, также он позволяет изменять имена системной папки и папки с приложениями.
НАСТРОЙКА CODEIGNITER
Для работы нашего приложения нам необходимо изменить конфигурацию нескольких файлов. Для начала нам необходимо указать URL нашего приложения. Чтобы это сделать необходимо перейти system/application/config/config.php и изменить элемент массива base_url, чтобы он указывал на вашу папку на сервере.
$config['base_url'] = "http://localhost/ci/";
ТЕСТИРОВАНИЕ CODEIGNITER
Сейчас сделаем быструю проверку работы Codeigniter, нам необходимо убедится, что наше приложение работает. Перейдите по http://localhost/ci/ (ваше имя папки) и вы должны увидеть следующее:

ПРОДОЛЖАЕМ НАСТРАИВАТЬ CODEIGNITER
Если все работает нам необходимо завершить настройку. Сейчас мы начнем настройку специально для нашего приложения. Если Вы хотите использовать базу данных (которую мы используем в данном уроке), переходим system/application/config/database.php и устанавливаем следующим элементам массива соответствующие значения. Это код подключения к MySql базе данных под названием helloworld с именем хоста localhost, имя пользователя root и пароль root.
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = "root"; $db['default']['database'] = "helloworld"; $db['default']['dbdriver'] = "mysql";
Кроме того, поскольку мы будем часто использовать базу данных, мы хотим, чтобы она автоматически загружалась, чтобы не нужно было ее загружать каждый раз при соединении. Откройте system/application/config/autoload.php и сделайте следующее:
$autoload['libraries'] = array('database');
В настоявшее время файл, который запускает наше приложение, называется welcome.php, вы можете его найти в папке system/application/controllers. Удалите его и откройте system/application/config/routes.php. Измените, элемент массива, который стоит по умолчанию welcome на helloworld.
$route['default_controller'] = "Helloworld"
Наше приложение имеет вид, который нам не нужен. Перейдите system/application/view/ folder и удалите файл welcome_message.php.
СОЗДАНИЕ БАЗЫ ДАННЫХ
Поскольку это не совсем урок по MySql, этот раздел будет коротким. Создайте базу данных, назовите ее helloworld и выволните следующий Sql запрос с помощью PhpMyAdmin (или аналогичный MySql клиент).
CREATE TABLE `data` ( `id` int(11) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; INSERT INTO `data` (`id`, `title`, `text`) VALUES(1, 'Руководство по CodeIgniter!', 'CodeIgniter является инструментарием для тех, кто строит веб-приложения на PHP. Его цель в том, чтобы позволить вам разрабатывать приложения быстрее, чем если бы вы писали код с нуля, предоставляя богатый набор библиотек для часто используемых задач, а также простой интерфейс и логическую структуру для доступа к этим библиотекам. CodeIgniter позволяет творчески сосредоточиться на ваших проектах, используя минимальный объема кода, необходимый для той или иной задачи.');
СОЗДАНИЕ МОДЕЛИ
Модели не являются основными для нашего приложения, но это считается оптимальной практикой их применения. Наша модель – это простые PHP классы, которые содержат функции работы с информацией из базы данных. Создайте файл с именем helloworld_model.php и поместите его в папку system/application/models. В этом файле необходимо создать класс Helloworld_model. Внутри класса создать две функции Helloworld_model и GetData. Функцию GetData мы будем использовать для создания запросов к базе данных.
<?php
class Helloworld_model extends Model {
function Helloworld_model() {
// вызываем конструктор модулей
parent::Model();
}
function getData() {
//Запрос данных таблицы для каждой записи и строки
$query = $this->db->get('data');
if ($query->num_rows() > 0) {
//Показать ошибку если база данных пуста;
} else{
return $query->result();
}
}
}
?>
СОЗДАНИЕ КОНТРОЛЛЕРА
Давайте создадим контроллер, который будет отображать, и загружать модели. Таким образом, когда Вы перейдете по адресу http://localhost/ci/index.php/helloworld/, Вы увидите данные из базы данных. В папке system/application/controllers создайте файл с именем helloworld.php. В этом файле мы создадим класс, который имеет тоже имя, что и файл. Также необходимо создать функцию с названием index, эта функция будет отображать страницу, когда нет других представлений, например, когда Вы посетите http://localhost/ci/index.php/helloworld/.
В функции контроллера index нам необходимо загружать модель, запрос к базе данных. После того как Вы загрузили модель, мы можем войти в нее через ее название модели и конкретных функций. Для передачи данных мы должны преобразовать данные в массив и передать массивом.
<?php
class Helloworld extends Controller{
function index() {
$this->load->model('helloworld_model');
$data['result'] = $this->helloworld_model-><SPAN class="sql">getData</SPAN>();
$data['page_title'] = "Наше приложение!";
$this->load->view('helloworld_view',$data);
}
}
?>
Если мы сейчас перейдем по адресу http://localhost/ci/index.php/helloworld/, то нам выдаст ошибку. Ошибка возникает, потому что у нас не существует файла просмотра.

СОЗДАНИЕ ФАЙЛА ПРОСМОТРА
Файл просмотра – это файл, который будет состоять из HTML структуры страницы. Создайте новый файл с именем helloworld_view.php и поместите его в папку system/application/view. Далее нам необходимо создать HTML шаблон. Для отображения всех данных из базы данных мы будем использовать кавычки foreach, которые будут перебирать все элементы.
<html> <head> & lt;title><?=$page_title?></title> </head> <body> <?php foreach($result as $row):?> <h3><?=$row->title?></h3> <p><?=$row->text?></p> <br /> <?php endforeach;?> </body> </html>
Возможно, Вы заметили, что мы используем альтернативный PHP синтаксис, это позволяет обеспечить удобный способ вывода записи и сэкономить время.
НЕКОТОРЫЕ ДОПОЛНЕНИЯ
При посещении http://localhost/ci/index.php/helloworld/, вы должны увидеть что-то похожее на это:

Есть несколько вещей, которые нам необходимо сделать для улучшения работы CodeIgniter. Во-первых, удалим надоедливую приставку index.php из URL адреса. Эту задачу мы можем выполнить с помощью файла .htaccess. Создайте в корневой папке файл .htaccess и добавьте в него следующий код:
RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ ci/index.php/$1 [L]
Во-вторых, нам необходимо открыть файл config.php в папке system/application/config/ и изменить элемент массива index_page на пустую строку.
$config['index_page'] = "";
В-третьих, необходимо поставить значение TRUE для rewrite_short_tags, в том же файле config.php в папке system/application/config/. Это действие позволяет включить нам отображение альтернативного PHP синтаксиса.
$config['rewrite_short_tags'] = TRUE;
Вот и все! Я буду ждать Вас в следующих уроках.
Последние уроки категории:
Сокращение PHP кода
Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...
Видимость переменных в PHP
В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.
Как читать Rss ленты?
Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.
Установка и настройка PHP+Apache
В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.
Как выбрать фреймворк
Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.




Комментарии:
cherentanka 24.01.2012 23:48:56