CodeIgniter
Wygląd
Autor | EllisLab, Inc. |
---|---|
Pierwsze wydanie | 28 lutego 2006 |
Aktualna wersja stabilna | 4.0.4 |
Język programowania | PHP |
System operacyjny | Wieloplatformowy |
Rodzaj | Framework |
Licencja | MIT |
Strona internetowa |
CodeIgniter – framework napisany w języku PHP przez Ricka Ellisa, implementujący wzorzec Model-View-Controller. Celem projektu jest przygotowanie zestawu narzędzi dla osób, które budują aplikacje internetowe za pomocą PHP, aby umożliwić rozwój projektów znacznie szybciej niż pisanie kodu od podstaw, poprzez bogaty zestaw bibliotek dla najczęściej potrzebnych zadań, jak również prosty interfejs i logiczną strukturę dostępu do tych bibliotek. CodeIgniter pozwala twórczo skupić się na projekcie, minimalizując ilość kodu potrzebnego dla danego zadania[1].
Cechy CodeIgnitera
- Bazuje na wzorcu projektowym Model-View-Controller,
- pełna kompatybilność PHP 7.2 i nowsze (od wersji 2.0 zrezygnowano ze wsparcia dla PHP 4),
- bardzo mały rozmiar,
- wsparcie dla kilku rodzajów baz danych: MySQL (5.1+), PostgreSQL, MS SQL, Oracle, SQLite oraz ODBC,
- walidacja formularzy i treści,
- bezpieczeństwo (m.in. filtrowanie wejścia w celu zapobieżenia atakom XSS),
- zarządzanie sesjami,
- wsparcie dla kilku protokołów pocztowych (m.in. sendmail, SMTP i Mail),
- możliwość obróbki zdjęć, za pomocą bibliotek GD, GD2, ImageMagick lub NetPBM.
Lista bibliotek zaimplementowanych w CI
CodeIgniter ma budowę modułową, a wśród zaimplementowanych klas znajdują się między innymi:
- Benchmarking – pozwala między innymi sprawdzić takie parametry, jak czas ładowania strony, czy ilość zużytej pamięci RAM.
- Calendaring – generuje różnego rodzaju kalendarze, które możemy potem umieścić na stronie.
- Database – zarządzanie bazą (bazami) danych. Liczne ułatwienia, takie jak Active Records pozwalają szybko i w prosty sposób pobierać potrzebne nam dane z bazy. CodeIgniter ponadto potrafi zapisywać w pamięci podręcznej zapytania, co przy dużej ilości unikalnych odwiedzin znacznie odciąża bazę danych i przyśpiesza ładowanie danych.
- E-mail – pozwala wysyłać e-maile za pomocą takich protokołów jak Mail, Sendmail, czy SMTP. Treść wiadomości może być wysyłana jako zwykły tekst, lub HTML. Ponadto w łatwy sposób można dodawać załączniki, czy wysyłać wiadomości do kilku osób naraz.
- Encryption – dzięki tej klasie możemy kodować, lub rozkodowywać słowa, zdania, czy nawet całe pliki.
- File Uploading – obszerna biblioteka pozwalająca wgrywać pliki na serwer z poziomu przeglądarki internetowej. Bardzo obszerna konfiguracja klasy pozwala wręcz dowolnie manipulować ładowanym plikiem.
- FTP – pozwala nam łączyć się z serwerem FTP i zarządzać plikami na nim umieszczonymi.
- HTML Table – generowanie tabel HTML. Dzięki tej klasie możemy w prosty sposób np. ustawić kilka zdjęć w kolumnach, czy podzielić tekst na grupy.
- Image Manipulation – dowolna manipulacja obrazkami – obracanie, skalowanie, zmiana rozmiaru, nakładanie znaków wodnych, dodawanie filtrów, itp. Możemy zmieniać grafikę za pomocą jednej z bibliotek graficznych: GD, GD2, oraz ImageMagick.
- Input – automatycznie ładowana klasa umożliwiająca korzystanie z danych (POST, GET, cookie i server) a także ich filtrowanie pod kątem ataków XSS.
- Security – pomaga chronić przed atakami typu XSS, CSRF oraz directory traversal.
- Loader – służy do wczytywania różnych elementów, np. widoku, modelu, czy wtyczek.
- Language – pozwala na tworzenie wielojęzycznych serwisów.
- Output – automatycznie ładowana klasa pomagająca w cache'owaniu, profilowaniu a przede wszystkim służy do wysyłania strony do przeglądarki.
- Pagination – pozwala na tworzenie automatycznego podziału wyników na strony.
- Session – upraszcza zarządzanie sesjami.
- Trackback – klasa wysyłająca i odbierająca komunikaty za pomocą protokołu TrackBack.
- Template Parser – parsuje stronę w poszukiwaniu pseudo zmiennych np. {blog_title}. Działa na podobnej zasadzie co system szablonów Smarty.
- Unit Testing – umożliwia przeprowadzenie testów jednostkowych.
- URI – pozwala odczytać dane przesłane przez użytkownika poprzez adres (URI)
- User Agent – pozwala odczytać dane przeglądarki użytkownika serwisu (np. wersja).
- Validation – pomaga w ustaleniu reguł, które musi spełniać formularz HTML (np. określenie maksymalnej długości tekstu).
- XML-RPC – klasa umożliwia komunikacje za pomocą XML-RPC.
- Zip Encoding – kompresowanie archiwów ZIP.
Zobacz też
Literatura
- Thomas Myer: Professional CodeIgniter (Wrox Professional Guides). Wrox, 2008, s. 336. ISBN 978-0470282458.
- Łukasz Sosna: CodeIgniter. Zaawansowane tworzenie stron w PHP. Helion, 2013, s. 272. ISBN 978-83-246-4964-8.
- Łukasz Sosna: CodeIgniter 4. Zaawansowane tworzenie stron WWW w PHP. Helion, 2021, s. 223. ISBN 978-83-283-7487-4.
Przypisy
- ↑ CodeIgniter User Guide : CodeIgniter At A Glance. [dostęp 24 lutego 2013]. (ang.).
Linki zewnętrzne
- Oficjalna strona (ang.)