CodeIgniter

CodeIgniter
Logo
VývojářBritish Columbia Institute of Technology
Aktuální verze4.4.1 (5. září 2023)
Vyvíjeno vPHP
Typ softwaruwebový aplikační framework a svobodný software
LicenceOpen Software License
licence Apache
licence MIT
BSD licence
Webcodeigniter.com, codeigniter.es a forum.codeigniter.com
Některá data mohou pocházet z datové položky.

CodeIgniter (zkratka CI) je open source framework, založený na architektonickém principu MVC a určený pro vývoj dynamických webových aplikací v PHP. Byl vyvíjen americkou společností EllisLab společně s rozsáhlou internetovou komunitou. První veřejná verze frameworku byla uvolněna v únoru roku 2006. V září 2014 společnost EllisLab oznámila, že vývoj CI bude pokračovat pod patronátem British Columbia Institute of Technology. V březnu 2015 byla zveřejněna nová verze CodeIgniter 3.0.0.

CI do verze 2. je licencován pod Apache/BSD licencí, od verze 3. pod MIT licencí.

Cílem CI je ušetřit vývojářům čas a práci poskytnutím sady nástrojů a knihoven s jednoduchým rozhraním řešících časté a opakující se úlohy. Vývojář se tak může soustředit na řešení zadané úlohy, kterého (s využitím nabízené funkcionality) dosáhne s menším množstvím potřebného kódu.

Provozní prostředí a konfigurace

CI je aplikace napsaná v jazyce PHP. Zdrojový kód vychází z PHP verze 4.1. Bude však fungovat i na verzi 5, ačkoliv nevyužívá žádné její nové vlastnosti. Vývojářům tedy nic nebrání psát vlastní kód (jako nadstavbu frameworku), který těží z vlastností PHP5. Prozatím se autoři zdráhají vypustit verzi frameworku založenou na PHP5, hlavním argumentem je malá rozšířenost podpory této verze na komerčních hostingových službách.

K provozování aplikace je potřeba běžný webový server, schopný zpracovávat PHP skripty, jako je Apache nebo LiteSpeed. Samotný Framework je vyvíjen jako odlehčený, to znamená, že jádro systému závisí jen na několika malých knihovnách. Další potřebné knihovny jsou nahrávány až v případě potřeby a za běhu. Takový způsob dynamického nahrávání zdrojů velmi přispívá k rychlosti frameworku.

Zprovoznění samotného frameworku je jednoduché. Stačí nakopírovat zdrojové kódy do libovolného adresáře, odkud čte webový server. Ten následně obsahuje soubor index.php a adresář system (a dále by měl obsahovat také licenční ujednání licence.txt).

Soubor index.php obsahuje dvě důležité proměnné: cestu k adresáři system, kde jsou umístěny zdrojové kódy frameworku a cestu k adresáři application, kam budou uloženy zdrojové kódy aplikace. Lze tedy adresář system umístit mimo adresář projektu a sdílet jej mezi více projekty. Taková praktika šetří místo a usnadňuje také upgrade na vyšší verzi frameworku. Adresář application (který je členěn na další adresáře) je pak vhodné umístit do kořenového adresáře projektu. Soubor index.php dále slouží jako jediný bod vstupu (single point of entry).

Veškerá další konfigurace probíhá editací různých souborů v adresáři application/config. Jedná se především o tato nastavení:

  • config.php – různá nastavení pro správný chod aplikace
  • autoload.php – automatické nahrávání zdrojů jako jsou knihovny, modely a pomocné funkce (helpery)
  • database.php – nastavení přístupu k databázi
  • routes.php – umožňuje přepisovat URI dotazy

Knihovny

Ve verzi 2.1.0 obsahuje framework spousty knihoven ve formě samostatných tříd, které nabízenou funkcionalitou pokrývají standardní a často řešené úlohy. Mezi nejpoužívanější patří:

  • Calendar Class – generuje kalendář
  • Database Class – slouží k vytváření dotazů nad databázovým systémem, inspirováno návrhovým vzorem ActiveRecord
  • Email Class – posílání zpráv, přidávání souborů jako příloh
  • File Uploading Class – usnadní proces a zvyšuje bezpečnost nahrávání souborů na server
  • Form Validation Class – na základě určených pravidel provádí kontrolu vstupních dat a zobrazuje chybové zprávy, může filtrovat nebezpečné vstupy
  • Image Manipulation Class – zmenšování a ořezy obrázků, vkládání vodoznaku
  • Pagination Class – generuje stránkování při zobrazování rozsáhlých souborů dat
  • Session Class – ukládání perzistentních dat uživatelské seance pomocí cookies nebo databáze

Jednodušší problémové oblasti jsou pak řešeny za pomoci knihoven pomocných funkcí, například:

  • Cookie Helper – usnadňuje práci se soubory cookies
  • Download Helper – vynutí stahování souboru do počítače
  • File Helper – usnadňuje práci se soubory jako je jejich zapisování, čtení a zjištění dodatečných informací
  • HTML Helper – generuje některé značky jazyka HTML
  • Typography Helper – obsahuje funkce umožňující formátování textu při zachování jeho sémantiky
  • URL Helper – užitečné funkce pro práci s řetězci URL

Dokumentace a komunita

Vzhledem k vyčerpávající a přehledné dokumentaci bývá Codeigniter často uváděn jako framework s příkrou křivkou učení. Dokumentace se týká vždy poslední stabilní verze a je rozdělena do několika částí, které pokrývají hlavní témata. Čtenář je tak nejdříve seznámen se základními informacemi jako jsou požadavky a licenční ujednání. Dále je vysvětlena samotná instalace nebo upgrade z předchozích verzí frameworku. Následuje kapitola, která představuje framework z hlediska jeho funkcí, architektury a vývojového diagramu požadavku (demonstrace MVC). Další kapitola pokrývá obecná témata. Ta vysvětlují hlavní zásady a styl práce s frameworkem a také uvádějí krátké ukázky zdrojových kódů pro typické konstrukce. Zbývající dvě kapitoly tvoří referenční příručku s komentářem a ukázkami zdrojových kódů pro knihovny a pomocné funkce.

Diskusní fórum má přes 100 000 registrovaných členů a témat, a takřka 600 tisíc příspěvků. Tím tvoří rozsáhlou znalostní bázi, která má své místo vedle klasické dokumentace. Aktivních členů fóra je 3-5 tisíc. Komunita je mezinárodní a velmi živá, komunikačním jazykem je angličtina. Odpověď na dotaz do sekce fóra zabývající se vývojem aplikací obvykle netrvá déle než jednu hodinu.

Jiným komunitním projektem je systém wiki, určený pro příspěvky ze strany uživatelů frameworku. Ti obvykle přispívají formou popisu řešení určité úlohy nebo problému. Kromě toho slouží wiki jako dokumentace pro uživatelské nadstavby frameworku, jako jsou jednotlivé knihovny nebo celé aplikační moduly.

Externí odkazy