O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Webentwicklung mit CakePHP, 2nd Edition

Book Description

CakePHP ist der schmackhafte Senkrechtstarter unter den Rapid-Development-Frameworks für PHP, mit ihm lässt sich die Entwicklungszeit von PHP-Applikationen extrem beschleunigen. CakePHP adaptiert die Konzepte des erfolgreichen Frameworks Ruby On Rails auf PHP, bietet darüber hinaus aber auch zahlreiche nützliche eigene Funktionalitäten.

Dieses Buch zeigt Ihnen, wie CakePHP genau funktioniert und wie Sie Ihre Arbeit mithilfe des Frameworks von Ballast befreien können. Es deckt ein breites Themenspektrum ab: Ein Crashkurs lässt Sie direkt mit der Webentwicklung starten, danach lernen Sie das MVC-Modell als Basis für die CakePHP-Programmierung kennen. Schritt für Schritt werden dann alle Elemente der Erstellung einer Webapplikation mit CakePHP erläutert. Die 2. Auflage behandelt CakePHP 1.3.

Table of Contents

  1. Webentwicklung mit CakePHP
  2. Vorwort
  3. Einleitung
    1. Unterschiede von CakePHP 1.2 zu Version 1.3
    2. Für wen ist dieses Buch gedacht?
    3. Aufbau dieses Buchs
    4. Typografische Konventionen
    5. Verwendung der Codebeispiele
    6. Die Codebeispiele zu diesem Buch
    7. Die CakePHP-Welt
      1. Die Cake Software Foundation
      2. Die Cake Development Corporation
      3. Weiterführende Quellen
      4. Danksagungen
  4. 1. CakePHP kennenlernen
    1. Was ist ein Framework?
    2. Grundprinzipien des CakePHP-Frameworks
      1. DRY – Don’t Repeat Yourself
      2. Rapid Development
      3. CRUD – CREATE, READ, UPDATE und DELETE
      4. Konvention über Konfiguration
    3. Das Model-View-Controller-Pattern
      1. Das Model
      2. Das View
      3. Der Controller
    4. Das Zusammenspiel der CakePHP-Komponenten
      1. MVC in CakePHP
      2. Weitere Komponenten
        1. Plugins
        2. Routes und der Dispatcher
        3. Die CakePHP-ole
        4. Tests
    5. CakePHP-Entwicklung Schritt für Schritt
      1. 1. CakePHP aufsetzen
      2. 2. Das Datenbankschema
      3. 3. Das Model erstellen
      4. 4. Den Controller erstellen
      5. 5. Views erstellen
      6. 6. Die Anwendung erweitern und verbessern
    6. CakeJobs – die Beispielanwendung
  5. 2. Installation und Konfiguration
    1. Installation des Webservers
      1. Setup unter Windows
      2. Setup unter Mac OS X
        1. Installation mit Bordmitteln unter Mac OS X 10.5 Leopard und Mac OS X 10.6 Snow Leopard
        2. MAMP als fertigen Webserver installieren
      3. Setup unter Linux/UNIX
    2. Installation von CakePHP
      1. CakePHP herunterladen und entpacken
        1. Verzeichnisstruktur
      2. Datenbankkonfiguration
      3. Installation testen
    3. Installation der CakePHP-Konsole
      1. Die Konsole unter Windows einrichten
      2. Die Konsole unter Mac OS X einrichten
  6. 3. Schnell zum Erfolg – Ihre erste Webapplikation mit CakePHP
    1. Die Datenbank als Grundlage der Applikation
      1. Eine neue Datenbanktabelle
      2. Das Model für die Datenbanktabelle
      3. Daten mit dem Controller verarbeiten
    2. Die Anwendung starten und Gerüste bauen
      1. Der Quelltext des Beispiels
  7. 4. Der Controller
    1. Aufbau des Controllers
      1. Was soll die Applikation können?
      2. Welche Actions und Parameter werden benötigt?
      3. Die Übersicht über alle Jobangebote
      4. Detailansicht der Jobangebote
      5. Bearbeiten eines Jobangebots
      6. Anlegen eines Jobangebots
      7. Jobangebote löschen
    2. Attribute und Methoden im Controller
      1. Controller-Attribute
        1. Components einbinden – $uses, $helpers und $components
        2. Seitentitel setzen
        3. Zugriff auf die Parameter der Anfrage – $params
        4. Auf Daten zugreifen – $data
      2. Controller-Methoden
        1. Dem View Daten übergeben – set()
        2. Der Action ein Ende machen – render()
        3. Den Fluss steuern – redirect( ) und flash( )
    3. CakePHP-Konventionen
      1. Dateinamen
      2. Model-Konventionen
      3. Controller-Konventionen
  8. 5. Das Model
    1. Was ist ein Model?
    2. Validierung im Model
      1. Eigene Validierungsregeln
      2. Mitgelieferte Validierungsregeln
    3. Ein zweites Model einbinden
    4. Model-Relationen herstellen
    5. Retrieve: Daten finden
      1. Die Finder-Methode find()
        1. find(‘list’)
        2. find(‘neighbors’)
        3. find(‘threaded’)
      2. Parameter der find()-Methode
        1. Bedingungen definieren – conditions
        2. Zu selektierende Felder definieren – fields
        3. Sortierung mit order und direction
        4. Tiefe der Rekursion in Fremd-Models – recursive
        5. limit
      3. Das magische find()
      4. ActiveRecord auslesen: read($fields, $id)
      5. Einzelne Felder auslesen: field($name, $conditions, $order)
    6. Create und Update: Daten speichern
      1. create($data)
      2. save($data, $validate, $fieldList)
      3. saveAll($data, $options)
      4. saveField($name, $value, $validate)
      5. updateAll($fields, $conditions)
    7. Delete: Daten löschen
      1. Datensätze mit delete() löschen
      2. deleteAll($conditions, $cascade)
    8. Model-Methoden und -Attribute
      1. Model-Methoden
        1. SQL ausführen – query()
        2. Model-Schema überprüfen – hasField($name)
        3. Vorkommen von Daten überprüfen – hasAny($conditions)
        4. Die Einzigartigkeit von Datensätzen überprüfen – isUnique($fields, $or)
        5. Die Validierung manuell überprüfen – validates() und invalidFields()
        6. Informationen über die letzten Abfragen – getInsertID(), getNumRows() und getAffectedRows()
      2. Model-Attribute
        1. Tabellennamen überschreiben – $useTable
        2. Name des Primärschlüssels – $primaryKey
        3. Anzeigefeld definieren – $displayField
        4. Alternative Datenbankkonfiguration verwenden – $useDbConfig
        5. Tabellenschema ändern oder simulieren – $_schema
        6. Weitere Attribute
      3. Ausblick
  9. 6. Das View
    1. Was ist ein View?
    2. Die Template-Engine in CakePHP
      1. Ordnerstruktur und Dateinamen
      2. Aufbau einer Template-Datei
      3. Rahmenlayouts festlegen
      4. Die dynamischen Bereiche des Layouts
      5. Templates und Layouts zur Laufzeit festlegen
        1. Die Variable $layout
    3. Nützliche Helfer im View: Die Helper-Klassen
      1. Der Form-Helper
        1. Den <form>-Tag erstellen – create($model, $options)
        2. Das <form>-Tag beenden – end($options)
        3. Formulare erstellen – input($fieldName, $options)
        4. Attribute der weiteren Input-Elemente
        5. Validierung
        6. before, between und after
        7. format
        8. inputDefaults
    4. Die Mini-Views: Elements
      1. Zusammenfassung
  10. 7. Helper – Lassen Sie CakePHP für sich arbeiten
    1. Die Standard-Helper von CakePHP
    2. Der HTML-Helper
      1. Bilder mit dem HTML-Helper ausgeben
      2. Formatierte Textabschnitte erzeugen
      3. Listen erstellen
      4. Tabellen erzeugen
      5. CSS-Stylesheets erstellen
      6. Breadcrumbs – Brotkrumen sammeln und anzeigen
    3. Der Text-Helper
      1. Worte hervorheben
      2. Links entfernen und hinzufügen
      3. Texte kürzen und Ausschnitte erstellen
      4. Textlisten erstellen
    4. Der Time-Helper
      1. Zeitpunkte formatieren
      2. Wann war das? – Zeitpunkte überprüfen
      3. Zeitpunkte in SQL
    5. Der Number-Helper
      1. Währungen ausgeben
      2. Prozentwerte angeben
      3. Datengrößen darstellen
      4. Werte flexibel formatieren
    6. Der Cache-Helper
      1. Konfiguration
      2. Caching in Ihrer Applikation
      3. Ausnahmebereiche im View definieren
      4. Den Cache leeren
    7. Der Paginator-Helper
      1. Konfiguration im Controller
      2. Die Methode paginate()
      3. Der Paginator-Helper im View
      4. In den Seiten blättern
      5. Sortierungen einfügen
    8. JavaScript und CakePHP
      1. Externe JavaScript-Dateien einbinden
      2. JavaScript-Code in den Quelltext einfügen
    9. Eigene Helper entwickeln
      1. Der HelloHelper
      2. Allgemeine Helper-Funktionalitäten mit der AppHelper-Klasse
  11. 8. Session-Handling mit CakePHP
    1. Session-Konfiguration
    2. Die Session-Component verwenden
      1. Grundlagen
      2. Mehr Sicherheit
    3. Der Session-Helper
      1. Ausgaben mit flash() und setFlash()
    4. Beispiel: Ein Merkzettel für Jobanzeigen
    5. Kekse zum Kuchen – Der Einsatz von Cookies
      1. Die CakePHP-Cookie-Component einsetzen
  12. 9. Die CakePHP-Konsole und die Bake-Shell
    1. Shells starten
    2. Die Console-Shell kennenlernen
      1. Mit Models arbeiten
      2. Routes testen
    3. Baking: Code automatisch generieren
      1. Model baken
      2. Controller baken
      3. Views baken
      4. Projekte baken
      5. Datenbankkonfigurationen baken
      6. Bake-Kurzbefehle
      7. Hilfe beim Baking
    4. Eigene Shells programmieren
      1. Console-Tasks
      2. Argumente übergeben
  13. 10. Der Controller reloaded – Callbacks, Routes & Co.
    1. Die Controller-Funktionalität erweitern
      1. Models laden
      2. protected und private – den Zugriff auf Methoden einschränken
    2. Controller-Callbacks
      1. beforeFilter()
      2. afterFilter()
      3. beforeRender()
    3. URLs und Routes
      1. Named Parameters
      2. Die Rolle des Dispatchers
      3. Routes definieren
      4. Dynamische Routes einrichten
      5. Reverse Routing nutzen
      6. Prefix-Routing nutzen
      7. Die Methode requestAction()
    4. Statische Seiten in CakePHP
  14. 11. Components verwenden
    1. Die Core-Components von CakePHP
      1. Die RequestHandler-Component
        1. Den Datentyp der Rückgabe festlegen
    2. Die Email-Component
      1. Templates und Layouts festlegen
      2. Einfache Textmails versenden
      3. Verwendung von Templates
      4. Beispiel: Ein Jobangebot weiterempfehlen
    3. Components selbst entwickeln
      1. Callbacks und Zugriff auf das Model
  15. 12. Das Model reloaded – Bindings, Behaviors & Co.
    1. HABTM – hasAndBelongsToMany-Associations
    2. Model-Bindings
    3. Model-Callbacks
      1. beforeFind($queryData)
      2. afterFind($results, $primary)
      3. beforeValidate()
      4. beforeSave() und afterSave($created)
      5. beforeDelete($cascade) und afterDelete()
      6. onError()
    4. Die AppModel-Klasse
    5. Models durch Behaviors erweitern
      1. Behaviors dynamisch verwalten
      2. Virtuelle Felder
      3. Magische Methoden selbst gemacht: $mapMethods
      4. Das TreeBehavior
      5. Schlussbemerkung
  16. 13. Ajax und DHTML mit CakePHP
    1. Der Js-Helper
    2. JQuery, Mootools oder Prototype
    3. Den JS-Helper einsetzen
      1. Zugriff auf DOM-Elemente
        1. JavaScript-Code im Buffer
      2. Events
        1. Ein Beispiel
      3. Effekte
      4. Arbeiten mit Ajax
      5. JSON anstatt HTML
      6. Ajax-Formulare erstellen
  17. 14. Sicherheit, Authentifizierung und Autorisierung
    1. Zugriffsschutz mit der Security-Component
      1. Die Security-Component einbinden
      2. Das schwarze Loch: blackHole( )
      3. Actions im Controller schützen
      4. Den Zugriff mit HTTP-Authentication beschränken
      5. Ein Login-Callback definieren
    2. Authentifizierung mit der Auth-Component
      1. Eine Benutzerverwaltung einrichten
      2. Die Authentifizierung anpassen
    3. Autorisierung mit der Auth-Component
      1. Autorisierung über den Controller
      2. Autorisierung über ein Objekt
    4. ACL – Access Control Lists
      1. Access Control Objects (ACOs) definieren
      2. Access Request Objects (AROs)
        1. Gruppen- und Benutzersystem vorbereiten
        2. AROs erstellen
        3. Benutzer erstellen
      3. Zugriffsrechte zuweisen
      4. Schlussbemerkung
  18. 15. Lokalisierung und Internationalisierung
    1. Grundlagen
      1. Internationalisierung mit gettext
      2. Verwenden Sie UTF-8
    2. Mehrsprachigkeit einrichten
      1. Die nötige Ordnerstruktur anlegen
      2. Was soll übersetzt werden?
      3. Sprachfiles automatisiert erstellen
      4. Die Sprachversion festlegen
      5. Jetzt darf der Benutzer entscheiden
    3. Dynamische Daten internationalisieren
      1. Das Translation-Behavior
      2. Die Model-Klasse erweitern
      3. Die Datenstruktur anpassen
      4. Automagic!
      5. Die Sprache im Model setzen
    4. Die Klasse i18n einsetzen
  19. 16. Testing
    1. Die Test-Suite installieren
    2. Tests schreiben
      1. Models testen
      2. Controller testen
      3. Components testen
      4. Helper testen
    3. Tests zusammenfassen
    4. Browsersimulation mit Web Testing
      1. Schlussbemerkung
  20. 17. Weitere Kernfunktionalitäten von CakePHP
    1. Plugins erstellen und einbinden
      1. Ein Plugin erzeugen
      2. Struktur und Verwendung von Plugins
    2. Fehlerbehandlung in CakePHP
    3. Ein eigener ErrorHandler
    4. Debugging in CakePHP
    5. Die CakePHP-Core-Klassen
      1. App::import()
      2. Configure
      3. File und Folder
        1. Folder
        2. File
      4. Sanitize
        1. Strings reinigen
        2. Arrays reinigen
        3. SQL-Injections abfangen
      5. Set
        1. Set::classicExtract($data, $path);
        2. Set::extract($path, $data, $options)
        3. Set::insert($list, $path, $data)
        4. Set::remove($list, $path)
        5. Set::check($data, $path)
        6. Set::diff($val1, $val2)
        7. Set::sort($data, $path, $dir)
        8. Set::merge($arr1, $arr2 = null, ...);
  21. 18. Tipps und Tricks
    1. RSS-Feeds erstellen
    2. Routes dynamisch aus der Datenbank generieren
    3. Zugriff auf die Datenbank ohne Model
  22. A. Über die Autoren
  23. Stichwortverzeichnis
  24. Kolophon