CodeIgniter: различия между версиями
Содержимое удалено Содержимое добавлено
Moriline (обсуждение | вклад) Нет описания правки |
Moriline (обсуждение | вклад) Нет описания правки |
||
Строка 304: | Строка 304: | ||
<li >Установка параметров сессии</li> |
<li >Установка параметров сессии</li> |
||
<li >Добавление собственных данных в сессию</li> |
<li >Добавление собственных данных в сессию</li> |
||
<li >Поддержка сессий в БД</li></ul> <p > </p> |
<li >Поддержка сессий в БД</li></ul> <p > </p> |
||
<source lang="php"> |
|||
<?php |
|||
$this->load->library('session'); // загружаем класс |
|||
$newdata = array( |
|||
'username' => 'johndoe', |
|||
'email' => 'johndoe@some-site.com', |
|||
'logged_in' => TRUE |
|||
); // определяем массив с параметрами для сессии |
|||
$this->session->set_userdata($newdata); // записываем массив в сессию |
|||
echo $session_id = $this->session->userdata('email'); // выводим параметр из записанной сессии |
|||
?> |
|||
</source> |
|||
<h3>Т<span>rackback</span></h3> |
<h3>Т<span>rackback</span></h3> |
||
<p >Назначение</p> <ul style="margin-top: 0cm"> |
<p >Назначение</p> <ul style="margin-top: 0cm"> |
Версия от 08:13, 8 октября 2007
Code Igniter - фреймворк написанный на PHP для построения веб-приложений.
Классы Code Igniter:
Benchmarking
Назначение
- Функции CodeIgniter для измерения времени
Возможности:
- Установка именованной точки для измерения
- Получение времени прошедшего с установки определённой точки
- Получение времени прошедшего с момента старта
- Получение объёма использованной памяти
Пример кода:
<?php
$this->benchmark->mark('code_start');//устанавливаем точку для замера времени
//...код
$this->benchmark->mark('code_end');//устанавливаем вторую точку
echo $this->benchmark->elapsed_time('code_start', 'code_end');//вычисляем время выполнения кода и выводим на экран
$this->benchmark->mark('dog');
//...код
$this->benchmark->mark('cat');
//...код
$this->benchmark->mark('bird'); // установили 3 точки для замера времени выполнения кода и далее выводим разницу времени по этим точкам
echo $this->benchmark->elapsed_time('dog', 'cat');
echo $this->benchmark->elapsed_time('cat', 'bird');
echo $this->benchmark->elapsed_time('dog', 'bird');
?>
Calendaring
Назначение
- Функции CodeIgniter для создания календарей
Возможности:
- Создание календаря на любую дату
- Вставка ссылок в даты календаря
- Вставка ссылок на предыдущий/следующий месяцы
- Установка параметров: первый день недели, режим отображения месяца, режим отображения дня.
- Вывод календаря на основе шаблона дизайна
<?php
$this->load->library('calendar');// загружаем класс в контроллере
echo $this->calendar->generate();// выводим календарь<br>
echo $this->calendar->generate(2006, 6); // выводим календарь на определенную дату
----
$prefs = array (<br>
'start_day' => 'saturday',
'month_type' => 'long',
'day_type' => 'short'
); // установка параметров для отображения
$this->load->library('calendar', $prefs);
echo $this->calendar->generate();// выводим календарь
?>
Config
Назначение
- Функции CodeIgniter для получения параметров конфигурации
Возможности:
- Загрузка основного/альтернативного файла конфигурации
- Получение значения параметра конфигурации
- Установка значения параметра конфигурации
<?php
$this->config->load('new_file'); // загрузка конфигурационного файла new_file.php который лежит в папке /config
echo $this->config->item('some_item'); // вывод переменной вашего конфигурационного файла new_file.php.
$this->config->set_item('some_item', 'new item value'); //Установка нового значения параметра конфигурации
?>
Файл new_file.php:
<?php
$config['some_item'] =”some text”;
?>
Database
Назначение
- Функции CodeIgniter для взаимодействия с БД
Возможности:
- Установка параметров соединения с сервером БД
- Подключение к БД
- Возможность подключения к множественным БД
- Формирование шаблона запроса
- Получение результата запроса в виде объекта
- Получение результата запроса в виде массива
- Получение первой, последней, определённой строки результата
- Получение количества строк в результате
- Получение количества полей в результате
- Получение количества строк, изменённых запросами INSERT, UPDATE и т.п.
- Получение общего количества строк в таблице
- Получение информации об используемом сервере БД
- Получение версии БД
- Получение текста последнего выполненного запроса к БД
- Создание запроса на основе массива переменных
- Поддержка объектно-ориентированного доступа к БД
- Поддержка транзакций в принудительном и автоматическом режимах
- Получение списка таблиц в БД
- Проверка существования определённой таблицы в БД
- Получение списка полей в таблице
- Проверка существования определённого поля в таблице
- Получение метаданных поля (имя, размер, тип, ключ)
- Вызов функций PHP для работы с БД с получением результата средствами CI
- Поддержка кеширования результатов запросов к БД
- Создание БД
- Удаление БД
- Получение списка БД сервера
- Вызов серверной процедуры оптимизации таблицы
- Вызов серверной процедуры восстановления таблицы
- Вызов серверной процедуры оптимизации БД
- Генерация CSV из результата запроса
- Генерация XML из результата запроса
- Создание/восстановление резервной копии БД или таблиц с архивированием
<?php
$this->load->database(); // загружаем класс
$query = $this->db->query('SELECT orderid, name FROM my_table'); // делаем запрос и возвращаем результат в виде обьекта
foreach ($query->result() as $row)
{
echo $row->orderid . "<br>"; // выводим результат
echo $row->name . "<br>";
}
echo 'Total: ' . $query->num_rows(); // кол-во строк
foreach ($query->result_array() as $row) {
echo $row['title']; // вывод результата как ассоциативного массива
echo $row['name'];
echo $row['email'];
}
$row = $query->row(); // возвращает результат в виде обьекта выбирая только одну строку
echo $row->orderid;
$row = $query->row_array();// возвращает результат в виде массива выбирая только одну строку
echo $row['orderid'];
?>
Назначение
- Функции CodeIgniter для работы с электронной почтой
Возможности:
- Отсылка сообщения
- Установка параметров сообщения
- Присоединение файлов к сообщению
- Пакетный режим рассылки
- Получение служебной информации почтового сервера
- Принудительное отключение переноса слов в части сообщения
<?php
$this->load->library('email'); // загружаем класс
$this->email->from('your@your-site.com', 'Your Name'); // от кого письмо
$this->email->to('someone@some-site.com'); // кому письмо
$this->email->subject('Email Test'); // тема письма
$this->email->message('Testing the email class.'); // тело сообщения
$this->email->attach('/path/to/photo1.jpg'); // вложение в письмо(attachment)
$this->email->send(); //отправка сообщения
?>
Encryption
Назначение
- Функции CodeIgniter для криптографии
Возможности:
- Установка типа ключа шифрования
- Шифрование/дешифрование данных
<?php
$this->load->library('encrypt'); // загружаем класс
$msg = 'message'; // сообщение для кодирования
$key = 'super-secret-key'; // ключ для кодирования и декодирования
echo $encrypted_string = $this->encrypt->encode($msg, $key); // вывод закодированного сообщения при использовании $key
echo "<br>" . $plaintext_string = $this->encrypt->decode($encrypted_string, $key); // вывод раскодированного сообщения
?>
<?php
// Можно также использовать конфигурационную переменную $config['encryption_key'] задав в ней ключ для кодирования и декодирования.
//Тогда второй параметр передавать не нужно. Например:
echo $encrypted_string = $this->encrypt->encode($msg);
echo $plaintext_string = $this->encrypt->decode($encrypted_string);
?>
File Uploading
Назначение
- Функции CodeIgniter для загрузки файлов
Возможности:
- Создание веб-формы загрузки фалов
- Установка параметров/ограничений
- Прием данных
FTP
Назначение
- Функции CodeIgniter для работы с FTP
Возможности:
- Подключение к серверу FTP
- Передача файлов на сервер
- Получение списка файлов в каталоге
- Переименование, перемещение, удаление файлов на сервере
- Создание, удаление каталогов на сервере
- Установка атрибутов файла на сервере
- Синхронизация локального каталога с каталогом на сервере
HTML Table
Назначение
- Функции CodeIgniter для создания таблиц HTML
Возможности:
- Генерация таблиц из результатов запросов к БД
- Установка параметров таблицы
- Генерация таблицы на основе шаблона дизайна
<?php
$this->load->library('table'); // загружаем класс
// формируем данные для отображения в таблице
$data = array(
array('Name', 'Color', 'Size'),
array('Fred', 'Blue', 'Small'),
array('Mary', 'Red', 'Large'),
array('John', 'Green', 'Medium')
);
echo $this->table->generate($data); // выводим таблицу
?>
Image Manipulation
Назначение
- Функции CodeIgniter для работы с изображениями
Возможности:
- Установка параметров преобразования
- Преобразование изображения - изменение размера, обрезка, поворот, наложение
- Автоматическое создание эскиза
- Поддержка наложения двух типов: текста и другого изображения
Input
Назначение
- Получение/фильтрация данных
Возможности:
- XSS-фильтр
- Получение данных с фильтрацией: POST, cookie, SERVER
- Простая проверка адреса IP
- Получение данных о клиенте
<?php
echo $this->input->post('some_data'); // вывод параметра переданного методом POST
echo $this->input->post('some_data', TRUE); // Для проверки данных на атаку XSS нужно установить вторым параметром TRUE
echo $this->input->cookie('some_data', TRUE); // вывод данных занесенных в куки
echo $this->input->server('HTTP_HOST'); // вывод значения из массива $_SERVER
echo $this->input->ip_address(); // вывод IP-адреса пользователя
echo $this->input->user_agent(); // вывод информации о броузере пользователя
?>
Load
Назначение
- Функции CodeIgniter для загрузки компонентов во время выполения
Возможности:
- Загрузка классов, шаблонов, переменных, помощников, дополнений, сообщений и просто файлов.
Language
Назначение
- Функции CodeIgniter для интернационализации
Возможности:
- Загрузка файла сообщений
- Получение текста сообщения по ключу
Output
Назначение
- Функции CodeIgniter для управления выводом
Возможности:
- Установка параметров заголовка
- Включение/отключение профайлера
- Непосредственная передача вывода
- Получение вывода
Pagination
Назначение
- Функции CodeIgniter для разбиения на страницы
Возможности:
- Установка параметров вывода
- Настройка дизайна блока выбора страниц
<?php
$this->load->library('pagination'); // загружаем класс
$config['base_url'] = 'http://www.your-site.com/index.php/test/page/'; //адрес страницы которая принимает параметры для навигации по сайту
$config['total_rows'] = '200';
$config['per_page'] = '20';
$this->pagination->initialize($config);
echo $this->pagination->create_links();
?>
Вид навигации на странице:
« First < 1 2 3 4 5 > Last »
Session
Назначение
- Функции CodeIgniter для работы с сессиями
Возможности:
- Получение данных сессии
- Установка параметров сессии
- Добавление собственных данных в сессию
- Поддержка сессий в БД
<?php
$this->load->library('session'); // загружаем класс
$newdata = array(
'username' => 'johndoe',
'email' => 'johndoe@some-site.com',
'logged_in' => TRUE
); // определяем массив с параметрами для сессии
$this->session->set_userdata($newdata); // записываем массив в сессию
echo $session_id = $this->session->userdata('email'); // выводим параметр из записанной сессии
?>
Тrackback
Назначение
- Функции CodeIgniter для работы с трекбеками
Возможности:
- Отсылка/приём трекбеков
- Поддержка трекбеков в БД
Template Parser
Назначение
- Функции CodeIgniter для работы с шаблонами страниц
Возможности:
- Загрузка шаблона
- Генерация вывода на основе шаблона
- Поддержка циклов в шаблоне
Unit Testing
Назначение
- Функции CodeIgniter для тестирования
Возможности:
- Возможность тестирования функций на результат, тип результата
- «Ленивый» и «строгий» режим тестирования
- Возможность пакетного запуска тестов
- Возможность формирования отчёта по тестам
URI
Назначение
- Функции CodeIgniter для работы с URI-адресами
Возможности:
- Получение значения сегмента по номеру
- Преобразование URI в ассоциативный массив и обратно
- Получение строки URI после имени сервера
- Получение количества сегментов
- Получение массива сегментов
User Agent
Назначение
- Функции CodeIgniter для получения информации о клиенте
Возможности:
- Проверка, является ли клиент: браузером, мобильным, роботом, рефералом
- Получение строки идентификации браузера, мобильного или робота, версии и платформы клиента, реферера, допустимых языков и кодировок.
Validation
Назначение
- Функции CodeIgniter для проверки данных форм
Возможности:
- Установка правил проверки
- Каскадирование правил проверки
- Проверка данных формы
- Подключение функций подготовки/фильтрации данных перед проверкой
- Подключение собственных функций проверки
- Возврат формы в случае ошибки
- Установка индивидуальных сообщений об ошибках в данных
XML-RPC
Назначение
- Функции CodeIgniter для организации XML-RPC-сервера/клиента
Возможности:
- Установка метода обмена
- Приём/отсылка запросов
- Получение отладочной информации
Zip Encoding
Назначение
- Функции CodeIgniter для работы с ZIP
Возможности:
- Создание архива
- Добавление файлов/каталогов в ахрив
- Получение файлов/каталогов из архива
- Запись архива на сервере
- Передача архива клиенту