PHP:Cakephp-Framework: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) K (Admin verschob die Seite Cakephp nach PHP:Cakephp-Framework, ohne dabei eine Weiterleitung anzulegen) |
(kein Unterschied)
| |
Version vom 9. Februar 2014, 17:53 Uhr
- Authentication
- Daten des Models abspeichern
- JavaScript-Helper
- Internationalisierung
- HTML-Helper (Breadcrumps)
- Views, auch Vererbung
- Uses, quasi die Imports
- Form-Helper
- Validation (ziemlich weit unten)
Generelle Einstellungen
Insbesondere für spezielle Zeichen wie Umlaute sollte man im ganzen Prozess eine einheitliche Zeichenkodierung verwenden. Als beste Einstellung hat sich UTF-8 etabliert. Im Folgenden wird beschrieben wie man die Tools, die ich einsetze, dementsprechend konfiguriert.
Im Browser:
<meta charset="utf-8" /> (HTML5)
bzw.
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> (XHTML)
Im Editor jedit:
Extras/Globale Optionen --> Zeichenkodierung --> Standardzeichenkodierung
Im Editor Notepad++:
Kodierung
In sqldeveloper:
Extras/Voreinstellungen --> Umgebung --> Codierung
In eclipse:
Window/Preferences --> General/Editors/Text Editors/Spelling --> Encoding
Im Sprachtool poedit:
Wenn ein Katalog geöffnet ist. Katalog/Eigenschaften --> Zeichensatz
Aufbau der Webseite
Wie die Webseite aufgebaut wird, beschreibt die Datei app/Views/Layout/default.ctp. Den HTML-Code, den die Views zu den entsprechenden Controllern erzeugen wird durch:
echo $this->fetch('content');
eingefügt.
Man kann weitere dieser Einfügestellen erstellen indem man in einer View einen Abschnitt definiert, der wie folgt aussehen würde:
$this->start('Abschnitt');
//erzeuge HTML-Text
$this->end();
Auf diesen Namen bezieht man sich dann in der app/Views/Layout/default.ctp durch Einfügen von:
echo $this->fetch('Abschnitt');
Installation
git clone git://github.com/cakephp/cakephp.git
In das Webserververzeinis kopieren und die URL aufrufen.
Speichern und Laden von Daten
Die ID einer neu gespeicherten Zeile erhalten
if($this->MyModel->save($this->data)){
//the id is here
echo $this->MyModel->id;
}
Internationalisierung
Im Model (erzeugt validation.pot):
public $validationDomain = 'validation';
public $validate = array(
'username' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Alphabets and numbers only',
'last' => false
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Username should be between %d and %d characters'
)
),
);
Im Helper (kommt in default.pot):
private static $subSets = array();
public function __construct() {
self::$subSets = array(
'deviceUpload' => array('icon' => 'icon-broadcast', 'color' => 'bg-amber',
'destination' => array('controller' => 'basedatas', 'action' => 'device_config_load'),
'text' => __('Device upload')
),
);
}
public function getSubSet($name) {
return BaseDataHelper::$subSets[$name];
}