CodeIgniter to framework, napisany w języku PHP, implementujący wzorzec MVC. Jego głównym celem jest przygotowanie narzędzia dla użytkowników, którzy budują swoje aplikacje właśnie za pomocą języka PHP. Framework ten umożliwia rozwój projektów w znacznie szybszym czasie niż pisane samego kodu od podstaw dzięki bogatej bazie bibliotek.
Możemy między innymi wymienić takie biblioteki jak:
- Output (automatycznie ładowana klasa, która pomaga w cache'owaniu czy profilowaniu ale i wysyłaniu strony do przeglądarki)
- Security (pomaga chronić przed atakami)
- FTP (pozwala łączyć się z serwerami FTP oraz zarządzać umieszczonymi na nich plikami)
- Benchmarking (pozwala sprawdzić różne parametry np. ilość zużytej pamięci RAM czy czas ładowania strony)
- Session (upraszcza proces zarządzania sesjami)
- Validation (pomaga w ustaleniu reguł, które musi spełniać formularz HTML)
- Trackback (klasa wysyłająca i odbierająca komunikaty za pomocą protokołu TrackBack)
- HTML Table (generowanie tabel HTML)
- Pagination (pozwala na tworzenie automatycznego podziału wyników na stony)
- URl (pozwala odczytać dane przesłane przez użytkownika poprzed adres [URl- Uniform Resource Identifier]).
Framework CodeIgniter jest skierowany do osób, które oczekują od narzędzia wyjątkowej wydajności przy jednoczesnym wyeliminowaniu złożoności frameworka. Są to przede wszystkim proste rozwiązania, nie wymagające restrykcyjnego stylu kodowania ani operacji z linii poleceń. Wynikiem tego jest możliwość twórczego skupienia się na samym projekcie, minimalizując ilość kodu potrzebnego dla danego zadania. Framework nie wymaga żadnej specjalnej konfiguracji i dodatkowo charakteryzuje się przejrzystą dokumentacją. Oprócz tego jest kompatybilny ze standardowymi kontami hostingowymi operującymi z różnymi wersjami PHP.
Cechy, które charateryzują ten framework to przede wszystkim:
- wsparcie dla kilku rodzajów baz danych, między innymi dla: MS SQL (Microsoft SQL Server), MySQL, Oracle, SQLite, PostgreSQL czy ODBC (Open DataBase Connectivity)
- walidacja formularzy oraz wszelkich treści
- bezpieczeństwo (np. filtrowanie wejścia w celu zapobieżenia atakom XSS- Cross-site scripting czyli sposób ataki polegający na osadzeniu w treści atakowanej strony kodu, który może doprowadzić do wykonania niepożądanych akcji)
- zarządzanie sesjami
- bardzo mały rozmiar
- pełna kompatybilność PHP 5.1.6 oraz nowsze
- możliwość obróbki zdjęć za pośrednictwem bibliotek NetPBM, ImageMagick, GD czy GD2
- bazuje na wzorcu projektowym MVC (Model-View-Control).
Przykładowy kod w CodeIgniter
CodeIgniter Przykład #1
<?php
public function get_news($id) {
if($id != FALSE) {
$query = $this->db->get_where('news', array('id' => $id));
return $query->row_array();
}
else {
return FALSE;
}
}
?>
CodeIgniter Przykład #2
<?php
$sql = "INSERT INTO mytable (title, name) VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();
?>