Your SlideShare is downloading. ×
0
Выполнила: ст.гр ИТ-07-2 Лысак О.Ю. Использование фреймворка  CodeIgniter  для автоматизации решения типовых задач   web- ...
<ul><li>Основные преймущества использования framework’ов в целом, и codeigniter в частности: </li></ul><ul><li>скорость,  ...
<ul><li>защита от  SQL Injection </li></ul><ul><li>одного из распространённых способов  </li></ul><ul><li>взлома сайтов и ...
<ul><li>Model-view-controller  ( MVC )  - архитектура программного обеспечения, в которой модель данных  приложения, польз...
<ul><li>System: </li></ul><ul><li>Application: </li></ul>Структура  CodeIgniter:
<ul><li>Используется хелпер  Form : </li></ul><ul><li>$this->load->helper('form‘); </li></ul>Создание  web- форм <ul><ul><...
Создание  web- форм Атрибуты могут быть добавлены путём передачи ассоциативного массива вторым параметром: $attributes = a...
Создание  web- форм <ul><ul><li>form_close() </li></ul></ul><ul><li>$string = &quot;</div></div>&quot;; echo form_close($s...
Создание  web- форм <ul><ul><li>form_input() </li></ul></ul><ul><li>Достаточно указать имя и значение первым и вторым пара...
Создание  web- форм <ul><ul><li>f orm_submit() </li></ul></ul><ul><li>создаёт стандартную кнопку для отправки формы  </li>...
Валидация и перзаполнение  web- форм Используется библиотека  validation: $this->load->library('validation');   <ul><li>По...
<ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title> Моя Форма </title> </li></ul><ul><li></head> </li></ul><...
<ul><li><?php  </li></ul><ul><li>class Form extends Controller { </li></ul><ul><li>function index() </li></ul><ul><li>{ </...
Основные правила валидации:
Пейджинация Это набор ссылок позволяющих перемещаться по страницам, например: « В начало    1    2    3    4    5    В кон...
Пейджинация <ul><li>$config['num_links'] = 2; </li></ul><ul><li>количество ссылок, которое будет перед и после номера выбр...
Операции с СУБД <ul><li>CodeIgniter использует модифицированную версию паттерна  Active Record Database .  </li></ul><ul><...
Операции с СУБД $this->db->select('*'); $this->db->from('blogs'); $this->db->join('comments', 'comments.id = blogs.id'); $...
Операции с СУБД Функции для получения результатов запроса: result()  -  функция возвращает результаты запроса в виде масси...
<ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title>Форма загрузки</title> </li></ul><ul><li></head> </li></u...
<ul><li>function do_upload() </li></ul><ul><li>{ </li></ul><ul><li>$config['upload_path'] = './uploads/'; </li></ul><ul><l...
<ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title> Результат загрузки</ title> </li></ul><ul><li></head> </...
<ul><li>Класс  Language  предоставляет функции для создания языковых файлов и строк текста для интернационализации. </li><...
<ul><li>закружаем языковой файл </li></ul><ul><li>$this->lang->load(' filename ', ' language '); </li></ul><ul><li>наиболе...
<ul><li>все проекты имеют одну и ту же структуру  файлов </li></ul><ul><li>многие функции в нем реализованы грамотнее, чем...
Upcoming SlideShare
Loading in...5
×

Ci

1,160

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,160
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Ci"

  1. 1. Выполнила: ст.гр ИТ-07-2 Лысак О.Ю. Использование фреймворка CodeIgniter для автоматизации решения типовых задач web- разработки
  2. 2. <ul><li>Основные преймущества использования framework’ов в целом, и codeigniter в частности: </li></ul><ul><li>скорость, </li></ul><ul><li>удобство, </li></ul><ul><li>качество. </li></ul>CodeIgniter   — фреймворк, написанный на  PHP для разработки полноценных веб-систем и приложений. Разработан компанией EllisLab, а также Риком Эллисом (Rick Ellis) и Полом Бурдиком (Paul Burdick).
  3. 3. <ul><li>защита от SQL Injection </li></ul><ul><li>одного из распространённых способов </li></ul><ul><li>взлома сайтов и  программ , работающих с  базами данных , основанного на внедрении в  запрос произвольного  SQL -кода. </li></ul><ul><li>безопастность </li></ul>SELECT * FROM news WHERE id_news = 5 http://example.org/script.php?id=5 SELECT * FROM news WHERE id_news = -1 OR 1=1
  4. 4. <ul><li>Model-view-controller  ( MVC )  - архитектура программного обеспечения, в которой модель данных  приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента так, что модификация одного из компонентов оказывает минимальное воздействие на остальные: </li></ul><ul><li>Модель (Model) - предоставляет данные (обычно для View), а также реагирует на запросы (обычно от контроллера), изменяя своё состояние. </li></ul><ul><li>Представление (View) - отвечает за отображение информации (пользовательский интерфейс). </li></ul><ul><li>Поведение (Controller) - интерпретирует данные, введённые пользователем, и информирует модель и представление о необходимости соответствующей реакции. </li></ul>Разделение логики и отображения
  5. 5. <ul><li>System: </li></ul><ul><li>Application: </li></ul>Структура CodeIgniter:
  6. 6. <ul><li>Используется хелпер Form : </li></ul><ul><li>$this->load->helper('form‘); </li></ul>Создание web- форм <ul><ul><li>form_open() </li></ul></ul><ul><li>echo form_open('email/send'); </li></ul><ul><li><form method=&quot;post&quot; </li></ul><ul><li>action=&quot;http:/www.your-site.com/index.php/email/send&quot; /> </li></ul>
  7. 7. Создание web- форм Атрибуты могут быть добавлены путём передачи ассоциативного массива вторым параметром: $attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes); <form method=&quot;post&quot; action=&quot;http:/www.your-site.com/index.php/email/send&quot;   class=&quot;email&quot;  id=&quot;myform&quot; />
  8. 8. Создание web- форм <ul><ul><li>form_close() </li></ul></ul><ul><li>$string = &quot;</div></div>&quot;; echo form_close($string); </form> </div></div> </li></ul>
  9. 9. Создание web- форм <ul><ul><li>form_input() </li></ul></ul><ul><li>Достаточно указать имя и значение первым и вторым параметром: </li></ul><ul><li>echo form_input('username', ' Александр '); </li></ul><ul><li>Или массив: </li></ul>$data = array(               'name'        => 'username',               'id'          => 'username',               'value'       => ' Александр ',               'maxlength'   => '100',               'size'        => '50',               'style'       => 'width:50%',             ); echo form_input($data); <input type=&quot;text&quot; name=&quot;username&quot; id=&quot;username&quot; value=&quot; Александр &quot; maxlength=&quot;100&quot; size=&quot;50&quot; style=&quot;width:50%&quot; />
  10. 10. Создание web- форм <ul><ul><li>f orm_submit() </li></ul></ul><ul><li>создаёт стандартную кнопку для отправки формы </li></ul><ul><ul><li>form_reset() </li></ul></ul><ul><li>создаёт стандартную кнопку для сброса полей формы </li></ul><ul><li>echo form_submit('mysubmit', ' Отправить !'); </li></ul><ul><li><input type=&quot;submit&quot; name=&quot;mysubmit&quot; value=&quot; Отправить !&quot; /> </li></ul>
  11. 11. Валидация и перзаполнение web- форм Используется библиотека validation: $this->load->library('validation'); <ul><li>Показать форму. </li></ul><ul><li>Заполнение ее и отправка пользователем </li></ul><ul><li>Если заполнены не все необходимые поля или данные имеют не тот формат - показать сообщение об ошибке и вернуть данные пользователю для правки. </li></ul><ul><li>Повторять 1-2-3 пока сервер не получит верные данные. </li></ul>
  12. 12. <ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title> Моя Форма </title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><?=form_open('form'); ?> </li></ul><ul><li><h5>Username</h5> </li></ul><ul><li><?=$this->validation->username_error; ?> </li></ul><ul><li><input type=&quot;text&quot; name=&quot;username&quot; value=&quot;<?=$this->validation->username;?>&quot; size=&quot;50&quot; /> </li></ul><ul><li><h5>Password</h5> </li></ul><ul><li><?=$this->validation->password_error; ?> </li></ul><ul><li><input type=&quot;text&quot; name=&quot;password&quot; value=&quot;<?=$this->validation->password;?>&quot; size=&quot;50&quot; /> </li></ul><ul><li><h5>Email Address</h5> </li></ul><ul><li><?=$this->validation->email_error; ?> </li></ul><ul><li><input type=&quot;text&quot; name=&quot;email&quot; value=&quot;<?=$this->validation->email;?>&quot; size=&quot;50&quot; />  </li></ul><ul><li><div><input type=&quot;submit&quot; value=&quot; Отправить &quot; /></div> </li></ul><ul><li>  </li></ul><ul><li></form> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul><ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title> Успешная загрузка </title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h3>Ваша форма была успешно отправлена!</h3> </li></ul><ul><li><p> </li></ul><ul><li><?=anchor('form', ' Еще раз !'); ?> </li></ul><ul><li></p> </li></ul><ul><li>  </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>Файл отображения с формой myform.php Файл отображения сообщения об успешной проверке formsuccess.php  
  13. 13. <ul><li><?php  </li></ul><ul><li>class Form extends Controller { </li></ul><ul><li>function index() </li></ul><ul><li>{ </li></ul><ul><li>$this->load->library('validation'); </li></ul><ul><li>$rules['username'] = &quot;required&quot;; </li></ul><ul><li>$rules['password'] = &quot;required&quot;; </li></ul><ul><li>$rules['email'] = &quot;required&quot;; </li></ul><ul><li>$this->validation->set_rules($rules); </li></ul><ul><li>$fields['username'] = 'Username'; </li></ul><ul><li>$fields['password'] = 'Password'; </li></ul><ul><li>$fields['passconf'] = 'Password Confirmation'; </li></ul><ul><li>$fields['email'] = 'Email Address'; </li></ul><ul><li>  </li></ul><ul><li>$this->validation->set_fields($fields); </li></ul><ul><li>if ($this->validation->run() == FALSE) </li></ul><ul><li> $this->load->view('myform'); </li></ul><ul><li>else </li></ul><ul><li>$this->load->view('formsuccess'); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul>Контроллер form.php
  14. 14. Основные правила валидации:
  15. 15. Пейджинация Это набор ссылок позволяющих перемещаться по страницам, например: « В начало    1    2    3    4    5    В конец » Создание пейджинации в одном из контроллеров: $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();   Массив  $config   содержит конфигурационные переменные. Он передается в функцию  $this->pagination->initialize , как показано выше base_url  — это полный путь к классу контроллера/функции содержащей нумерацию страниц. В примере выше контроллер «Test», а функция «page». total_rows  — это общее число страниц, которые будут в результате. Обычно это количество записей, возвращаемых запросом к базе данных. per_page  — это количество элементов, которое вы намерены показать на странице. В примере выше, будет выводится двадцать элементов на страницу. Функция  create_links()   вернет пустую строку, когда не будет необходимости показывать нумерацию.
  16. 16. Пейджинация <ul><li>$config['num_links'] = 2; </li></ul><ul><li>количество ссылок, которое будет перед и после номера выбранной страницы. </li></ul><ul><li>$config['next_link'] = 'Далее'; </li></ul><ul><li>текст ссылки, указывающей на следующую страницу. </li></ul><ul><li>$config['prev_link'] = 'Назад'; </li></ul><ul><li>текст ссылки, указывающей на предыдущую страницу. </li></ul><ul><li>$config['first_link'] = ' В начало '; </li></ul><ul><li>текст ссылки, указывающей на первую страницу. </li></ul><ul><li>$config [' last _ link '] = ' Last '; </li></ul><ul><li>- текст ссылки, указывающей на последнюю страницу. </li></ul>
  17. 17. Операции с СУБД <ul><li>CodeIgniter использует модифицированную версию паттерна Active Record Database . </li></ul><ul><li>позволяет извлекать, вставлять и обновлять информацию базы данных с помощью написания минимального количества кода. </li></ul><ul><li>позволяет вам создавать приложения независимые от какой-то конкретной базы данных, поскольку синтаксис запросов генерируется адаптером соответствующей базы данных. </li></ul><ul><li>позволяет делать запросы более безопасными за счет автоматического экранирования значений. </li></ul>
  18. 18. Операции с СУБД $this->db->select('*'); $this->db->from('blogs'); $this->db->join('comments', 'comments.id = blogs.id'); $query = $this->db->get(); SELECT * FROM blogs JOIN comments ON comments.id = blogs.id
  19. 19. Операции с СУБД Функции для получения результатов запроса: result() - функция возвращает результаты запроса в виде массива  объектов , или  пустой массив  в случае неудачи. Лучше всего такой результат обрабатывается перебором массива с помощью foreach: $query = $this->db->query(&quot; Ваш запрос &quot;); foreach ($query->result() as $row) {     echo $row->title;    echo $row->name; }   $query->num_rows() – количество строк, полученых по выполнению запроса. $query->num_fields() – количество полей, возвращаемых по выполнению запроса.
  20. 20. <ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title>Форма загрузки</title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li>  </li></ul><ul><li><?=$error;?> </li></ul><ul><li><?echo form_open_multipart('upload/do_upload');?> </li></ul><ul><li>  </li></ul><ul><li><input type=&quot;file&quot; name=&quot;userfile&quot; size=“1000&quot; /> </li></ul><ul><li><br /><br /> </li></ul><ul><li>  <input type=&quot;submit&quot; value=&quot;upload&quot; /> </li></ul><ul><li>  </form> </li></ul><ul><li>  </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>Загрузка файлов и изображений <ul><li>класс File Uploading </li></ul><ul><li>пример upload_form.php : </li></ul>
  21. 21. <ul><li>function do_upload() </li></ul><ul><li>{ </li></ul><ul><li>$config['upload_path'] = './uploads/'; </li></ul><ul><li>$config['allowed_types'] = 'gif|jpg|png'; </li></ul><ul><li>$config['max_width'] = '1024'; </li></ul><ul><li>$config['max_height'] = '768'; </li></ul><ul><li>$this->load->library('upload', $config); </li></ul><ul><li>if ( ! $this->upload->do_upload()) </li></ul><ul><li>{ </li></ul><ul><li>$error = array('error' => $this->upload->display_errors()); </li></ul><ul><li>$this->load->view('upload_form', $error); </li></ul><ul><li>} </li></ul><ul><li>else </li></ul><ul><li>{ </li></ul><ul><li>$data = array('upload_data' => $this->upload->data()); </li></ul><ul><li>$this->load->view('upload_success', $data); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul>Контроллер upload.php: <?php class Upload extends Controller { function Upload() { parent::Controller(); } function index() { $this->load->view('upload_form', array('error' => ' ' )); }
  22. 22. <ul><li><html> </li></ul><ul><li><head> </li></ul><ul><li><title> Результат загрузки</ title> </li></ul><ul><li></head> </li></ul><ul><li><body> </li></ul><ul><li><h3> Файл успешно загружен!</ h3> </li></ul><ul><li><ul> </li></ul><ul><li><?php foreach($upload_data as $item => $value):?> </li></ul><ul><li><li><? = $item?>: <? = $value?></li> </li></ul><ul><li><?endforeach;?> </li></ul><ul><li></ul> </li></ul><ul><li><p><? = anchor('upload', ' Загрузить еще!')?></ p> </li></ul><ul><li></body> </li></ul><ul><li></html> </li></ul>Страница уведомления о завершенной загрузке upload_success.php
  23. 23. <ul><li>Класс Language предоставляет функции для создания языковых файлов и строк текста для интернационализации. </li></ul><ul><li>языковые файлы хранятся в папке system/application/language или папке  system/language </li></ul><ul><li>для каждого языка содается своя папка с именем языка </li></ul><ul><li>языковые файлы должны называться с окончанием  _lang.php . </li></ul><ul><li>это набор строк вида: </li></ul><ul><li>$lang[' error _url_missing'] = &quot;Вы должны указать URL&quot;; </li></ul>Локализация
  24. 24. <ul><li>закружаем языковой файл </li></ul><ul><li>$this->lang->load(' filename ', ' language '); </li></ul><ul><li>наиболее простой способ вызова <?=lang( 'error_url_missing ’)?> </li></ul>Локализация
  25. 25. <ul><li>все проекты имеют одну и ту же структуру файлов </li></ul><ul><li>многие функции в нем реализованы грамотнее, чем ты бы реализовал их сам </li></ul><ul><li>отлично написанная документация (и отлично переведенная на русский язык) </li></ul><ul><li>поддержка различных СУБД </li></ul><ul><li>очень быстрый и очень легкий </li></ul><ul><li>бесплатен </li></ul>Вывод . Преймущества CodeIgniter
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×