Privacy Policy Cookie Policy Terms and Conditions CakePHP - Wikipedia

CakePHP

aus Wikipedia, der freien Enzyklopädie

CakePHP
Bild:Cake 120.gif
Das offizielle CakePHP Logo
Basisdaten
Entwickler: Cake Software Foundation
Aktuelle Version: 1.1.10.x (3. November 2006)
Betriebssystem: Linux, Windows, Mac OS X uvm.
Kategorie: Framework
Lizenz: MIT-Lizenz
Deutschsprachig: Nein
Website: cakephp.org

CakePHP, kurz Cake, ist ein in PHP geschriebenes quelloffenes Web-Framework. CakePHP ist angelehnt an Ruby on Rails und folgt ebenfalls dem "Model View Controller"-Schema (MVC). Eine weitere Gemeinsamkeit mit Ruby on Rails ist das zugrunde liegende Prinzip Don't Repeat Yourself (DRY).

Inhaltsverzeichnis

[Bearbeiten] Geschichte

CakePHP wird seit 2005 entwickelt. Es entstand parallel zur steigenden Popularität von Ruby on Rails und dem Wunsch nach einem ähnlichen MVC-Framework auf PHP-Basis.

[Bearbeiten] Philosophie

Analog zu Ruby on Rails versucht man auch bei CakePHP die Konfiguration auf das Minimum zu beschränken. Das heißt, dass der einzige Konfigurationsschritt die Festlegung der Verbindungsparameter zum Datenbankserver ist. Die Zuordnung von z. B. Modellen zu Datenbanktabellen geschieht über die Namensgleichheit in Singular und Plural, nicht über Konfigurationsdateien. Beispiel:

  • Modell: User, Group (Singular)
  • Controller: UsersController, GroupsController (Plural)
  • Datenbanktabelle: users, groups, groups_users (Plural, letztes Beispiel zeigt den Namen für eine Relationstabelle für hasAndBelongsToMany. In diesem Fall werden die zu verknüpfenden Tabellen in alphabetischer Reihenfolge angegeben)
  • Fremdschlüssel in Datenbanktabellen: user_id, group_id (Singular plus "_id")

CakePHP erkennt z. B. Fremdschlüssel in Datenbanktabellen automatisch und erzeugt dementsprechend die korrekten Joins.

[Bearbeiten] Merkmale

  • kompatibel mit PHP4 und PHP5
  • vereinfachter Datenbankzugriff, CRUD-Funktionalität bereits integriert
  • Request-Dispatcher mit sauberen URLs
  • flexible Templates mit PHP-Syntax
  • Helper vereinfachen die Arbeit in den Templates (AJAX, JavaScript, Formulare uvm.)
  • funktioniert in jedem Verzeichnis, meist keine Konfiguration des Webservers notwendig
  • eingebaute Formularüberprüfung
  • Scaffolding von Anwendungen
  • Unterstützung von Access Control Lists
  • eingebautes Filtern von durch über Formulare eingespeisten Schadcode
  • Komponenten für Session-Verwaltung, Request-Handling und Security
  • Caching von Ausgabe und Modellen

[Bearbeiten] Schichten

[Bearbeiten] Model

Als Backend einer CakePHP-Applikation kommt eine Datenbank zum Einsatz. Es werden folgenden Datenbanken unterstützt:

Die Beziehungen zwischen verschiedenen Modellen werden über sogenannte Associations festgelegt. Dabei exisitieren folgende Möglichkeiten:

  • hasOne
  • belongsTo
  • hasMany
  • hasAndBelongsToMany

CakePHP kann damit automatisch die benötigten Datenbankabfragen (inklusive eventuell benötigter Joins) generieren. Die Konfiguration geschieht durch die Einhaltung bestimmter Konventionen bei der Vergabe der Namen von Datenbanktabellen, Modellen und Controllern (siehe Abschnitt "Philosophie"). Es werden keinerlei Konfigurationsdateien benötigt.

[Bearbeiten] Controller

Der Controller enthält die sogenannte Business-Logic und bietet Schnittstellen, um mit dieser zu interagieren. Diese Schnittstellen werden analog zu Ruby on Rails Actions genannt. Ein Request (z. B. http://foobar.net/controller/action) enthält den Namen des Controllers und die auszuführende Methode. Es können auch Parameter für die Methode übergeben werden. Man kann das Aussehen der URLs mit Hilfe von Routen sehr flexibel anpassen. Controller können durch Components in ihrer Funktionalität erweitert werden.

[Bearbeiten] View

Unter einem View versteht man die Präsentationsschicht einer CakePHP-Applikation. Es handelt sich bei einem View um ein Template, welches durch die Ausgabedaten des jeweiligen Controllers mit Inhalten gefüllt wird. Dabei kann beliebiger PHP-Code in einem Template eingebettet werden. CakePHP bringt einige sogenannte Helper mit, welche bestimmte Ausgaben in Templates erstellen können, z. B. Links, Formulare, JavaScript uvm. Für sich wiederholende Ausgaben kann man auf Elements zurückgreifen, welche sich als Templates innerhalb von Templates vorstellen kann.

[Bearbeiten] Projektstatus

CakePHP liegt momentan in einer stabilen Version vor, wird aber permanent weiter entwickelt.

[Bearbeiten] Links


[Bearbeiten] Deutschsprachige Ressourcen

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu