CodeIgniter
| {{#if: | | {{#invoke:WLink|getArticleBase}} }}
{{#if: Datei:CodeIgniterLogo.png | | ||||||||
|---|---|---|---|---|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Datei:CodeIgniterLogo.png |
{{#if: {{#invoke:Wikidata|claim|P154}} |
| ||||||||
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }}{{#if: | | ||||||||
| {{#if: | }}| }} | ||||||||
| Basisdaten
{{#if: | | ||||||||
| Hauptentwickler |
{{#if: {{#invoke:Wikidata|claim|P126}} |
| |||||||
| Maintainer | claim|P126|parameter=link|references=ja|list=, }}
}} | |||||||
| Entwickler |
{{#if: {{#invoke:Wikidata|claim|P178}} |
| |||||||
| Entwickler | claim|P178|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| Erscheinungsjahr |
{{#if: {{#invoke:Wikidata|claim|P577}} |
| |||||||
| Erscheinungsjahr | claim|P577|references=ja|list=, }} |
{{#if: {{#invoke:Wikidata|claim|P571}} |
| |||||||
| Erscheinungsjahr | claim|P571|references=ja|list=, }}
}} }} }}{{#ifeq: 4.6.1 | KEINE_ANGABE || {{#if: 4.6.1 | | |||||||
| Aktuelle Version | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | 02. Mai 2025 | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} |
|
| Aktuelle Version | claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}} }}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: | | |||||||
| Aktuelle Vorabversion | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} |
|
| Aktuelle Vorabversion | claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}} }}{{#if: | | |||||||
| Ausführungsumgebung |
{{#if: plattformunabhängig |
| |||||||
| Betriebssystem | plattformunabhängig |
{{#if: {{#invoke:Wikidata|claim|P306}} |
| |||||||
| Betriebssystem | claim|P306|parameter=link|references=ja|list=, }}
}} }} }}{{#if: PHP | | |||||||
| Programmiersprache | PHP |
{{#if: {{#invoke:Wikidata|claim|P277}} |
| |||||||
| Programmiersprache | claim|P277|parameter=link|references=ja|list=, }}
}} }}{{#if: Webframework | | |||||||
| Kategorie | Webframework
}}{{#if: seit 3.0.0 MIT-Lizenz<ref>Lizenz-Datei auf Github</ref>, vorher OSL 3.0 | | |||||||
| Lizenz | seit 3.0.0 MIT-Lizenz<ref>Lizenz-Datei auf Github</ref>, vorher OSL 3.0 |
{{#if: {{#invoke:Wikidata|claim|P275}} |
| |||||||
| Lizenz | claim|P275|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| deutschsprachig | faculty|}} | ja | nein }}
}}{{#if: | | |||||||
| Sonstiges | {{{Sonstiges}}}
}}{{#if: codeigniter.com | | |||||||
codeigniter.com |
{{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} |
| ||||||||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
}} }}{{#if: | | ||||||||
| Dateien | [[c:Category:Created with |]]
}} | |||||||
CodeIgniter ist ein in PHP geschriebenes quelloffenes Webframework. Das Projekt wird seit 2014 vom British Columbia Institute of Technology betreut, nachdem es vorher bei EllisLab entwickelt wurde.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20141017042021
| {{#ifeq: 20141017042021 | *
| {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20141017042021}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-08-30 08:22:26 InternetArchiveBot | 2019-08-30 08:22:26 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20141017042021}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-08-30 08:22:26 InternetArchiveBot | 2019-08-30 08:22:26 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2019-08-30 08:22:26 InternetArchiveBot | 2019-08-30 08:22:26 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }} ({{#if: {{#if: 2019-08-30 08:22:26 InternetArchiveBot | 2019-08-30 08:22:26 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: offizielle Ankündigung vom 6. Oktober 2014 | {{#invoke:WLink|getEscapedTitle|offizielle Ankündigung vom 6. Oktober 2014}} | {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}} }}
}}}}}}}}{{#if:2019-08-30 08:22:26 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20141017042021|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home}}
|| {{#if: || }}
}}{{#if: offizielle Ankündigung vom 6. Oktober 2014
| {{#if: {{#invoke:WLink|isBracketedLink|offizielle Ankündigung vom 6. Oktober 2014}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|https://ellislab.com/blog/entry/your-favorite-php-framework-codeigniter-has-a-new-home }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} auf EllisLab.com</ref>
Aufbau
CodeIgniter ist möglichst schlank gehalten, wodurch eine hohe Performance erreicht wird und die Einarbeitungszeit im Vergleich zu anderen Frameworks kurz ist. Zentraler Bestandteil ist die Model-View-Controller-Architektur (MVC). Die Verwendung von Model und View ist zwar nicht zwingend erforderlich, wird allerdings aus Gründen der Übersichtlichkeit dringend empfohlen. CodeIgniter enthält eine große Zahl an Bibliotheksklassen und Hilfsfunktionen, die dem Entwickler Standardaufgaben abnehmen. Beispiele dafür sind XML-RPC, Datenbankzugriff, Eingabeüberprüfung, Sessions und Datei-Uploads. So können Webanwendungen schnell und sicher entwickelt werden. Eine große Stärke von CodeIgniter ist die einfache Konfiguration. In der Regel braucht man nicht viel mehr, als die Datenbankverbindung und die Basis-Url zu hinterlegen.
Beispiel
Im folgenden Beispielcode wird bei Aufruf von http://example.com/helloworld/test die Methode „test()“ im Controller „helloworld“ ausgeführt.
Die dazu benötigten Dateien werden von CodeIgniter automatisch geladen und die Ausgabe der Methode „test()“ an den Client gesendet. Für die Weiterleitung dieser sauberen URLs wird das Apache-Modul mod_rewrite verwendet, optional können für die Übergabe der Controller- und Funktionsnamen auch HTTP-GET-Argumente verwendet werden. Dieses Beispiel macht deutlich, dass die Verwendung von Models und Views nicht unbedingt erforderlich ist. Ein Model ist bei CodeIgniter eine PHP-Klasse, die Methoden bereitstellt, um bestimmte Datenbankabfragen durchzuführen. Die View stellt die Ausgabekomponente dar und kann gemäß dem MVC-Prinzip vom Controller mit weiteren Daten befüllt werden.
Für dieses Beispiel wird im Applikationsverzeichnis unter /application/controllers eine Datei namens Helloworld.php angelegt. Ab Version 3.x des Frameworks ist bei den Dateinamen auf die korrekte Groß- und Kleinschreibung zu achten. Das bedeutet, dass der Anfangsbuchstabe jeweils groß sein muss, der Rest hingegen klein. Dies betrifft alle Dateien unter den folgenden Pfaden:
- /application/controllers
- /application/libraries
- /application/models
<syntaxhighlight lang="PHP"> <?php
class Helloworld extends CI_Controller {
function test()
{
echo "Hello World";
}
} ?> </syntaxhighlight>
Falls mod_rewrite nicht zur Verfügung steht, lautet die URL zum Laden der oben genannten Methode http://example.com/index.php/helloworld/test.
Literatur
- Thomas Myer: Professional CodeIgniter. John Wiley & Sons, Indianapolis 2008, ISBN 978-0-470-28245-8.
Weblinks
Einzelnachweise
<references />
- Seiten mit defekten Dateilinks
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- Freies PHP-Webframework