Teil 4: Reihe: PHP - Frameworks - Cake PHP
- Reihe: PHP - Frameworks - Cake PHP
- Teil 2: Reihe: PHP - Frameworks - Cake PHP
- Teil 3: Reihe: PHP - Frameworks - Cake PHP
- Teil 4: Reihe: PHP - Frameworks - Cake PHP
- Teil 5: Reihe: PHP - Frameworks - Cake PHP
In dieser Konfigurationsdatei finden Sie übrigens noch weitere Anpassungen. Eine ist der zufällige String, der für das Erzeugen von Hashes verwendet wird. Er heißt salt. Diesen sollten Sie ebenfalls ändern....
In dieser Konfigurationsdatei finden Sie übrigens noch weitere Anpassungen. Eine ist der zufällige String, der für das Erzeugen von Hashes verwendet wird. Er heißt salt. Diesen sollten Sie ebenfalls ändern.
Configure::write('Security.salt',
'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
Andere Einstellungen betreffen unter anderem die Session-Steuerung. Hier werden viele Möglichkeiten schon durch die Kommentare klar. Den Rest finden Sie im offiziellen Kochbuch unter .
Interessant sind die Möglichkeiten von app/config/routes.php und app/config/bootstrap.php. Erstere Datei sorgt für das Routing, sprich für die Umleitung und URL-Gestaltung. Hier können Sie beispielsweise beim Erstaufruf auf unseren FrameworksController umleiten:
Router::connect('/', array
('controller' => 'frameworks', 'action' => 'index'));
Model
Bisher wurde das Model noch von Cake PHP generiert. In unserem Beispiel gibt es allerdings eine Abhängigkeit zwischen Frameworks und Lizenzen. Diese Abhängigkeit kann im Model direkt abgebildet werden. Dazu kommen die Eigenschaften für Relationen zum Einsatz.

Ein Beispiel: Die Eigenschaft $belongsTo gibt an, zu welchem Model ein Model eine entsprechende Beziehung hat. In diesem Fall ist unser Ausgangs-Model Framework. Um es zu erstellen, erzeugen Sie im Verzeichnis app/models eine PHP-Datei namens framework.php. Diese enthält die Klasse Framework, die von AppModel erbt:
<?php
class Framework extends AppModel {
var $belongsTo = 'Licence';
}
?>
Mit $belongsTo wird direkt auf das Licence-Model verwiesen. Der Fremdschlüssel ist dabei in Framework vorhanden und muss korrekt benannt sein (licence_id). Ansonsten scheitert die automatische Erkennung.
Allerdings haben Sie auch die Möglichkeit, hier einen Array mit einem eigenen Fremdschlüssel und eventuellem Klassennamen für das Modell anzugeben:
<?php
class Framework extends AppModel {
var $belongsTo = array(
'Licence' => array(
'className' => 'Licence',
'foreignKey' => 'licence_id'
)
);
}
?>
Durch diese Änderung gibt es - ohne dass Sie extra ein Model Licence anlegen müssten - automatisch ein weiteres Element im Ergebnis unserer Controller-Abfrage. Diese können Sie in der View weiterverwenden und nun in der Tabelle auch noch die Lizenz ausgeben:
<div id="view"><table border="1"><tr><th>Frameworks</th><th>
Licence</th></tr><?php
foreach ($frameworks as $framework) {
echo '<tr><td>';
echo $framework['Framework']['name'];
echo '</td><td>';
echo $framework['Licence']['name'];
echo '</td></tr>';
}
?></table></div>