PHP:Cakephp-Framework: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
| Zeile 2: | Zeile 2: | ||
== Einstellungen der Tools == | == Einstellungen der Tools == | ||
Wenn die Webseite nicht nur Englisch , sondern auch andere Sprachen verwenden soll, dann ist es notwendig einen einheitlichen Zeichensatz festzulegen. Wenn man das nicht macht, können Sonderzeichen falsch dargestellt werden. Meist wird die UTF-8-Zeichenkodierung dafür verwendet. Im Folgenden zeige ich, wie man die Tools, die ich verwendet auf den UTF-8-Zeichensatz umstellt. | Wenn die Webseite nicht nur Englisch, sondern auch andere Sprachen verwenden soll, dann ist es notwendig einen einheitlichen Zeichensatz festzulegen. Wenn man das nicht macht, können Sonderzeichen falsch dargestellt werden. Meist wird die UTF-8-Zeichenkodierung dafür verwendet. Im Folgenden zeige ich, wie man die Tools, die ich verwendet auf den UTF-8-Zeichensatz umstellt. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
| Zeile 14: | Zeile 14: | ||
</source> | </source> | ||
|- | |- | ||
| Datenbank (mysql) || <source lang="sql">CREATE TABLE user ( | | Datenbank ([http://www.mysql.de/ mysql]) || <source lang="sql">CREATE TABLE user ( | ||
id INT UNSIGNED AUTO_INCREMENT, | id INT UNSIGNED AUTO_INCREMENT, | ||
username VARCHAR(50) NOT NULL, | username VARCHAR(50) NOT NULL, | ||
| Zeile 36: | Zeile 36: | ||
| [http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html?ssSourceSiteId=ocomdk SQL-Developer] || Extras/Voreinstellungen --> Umgebung --> Codierung | | [http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html?ssSourceSiteId=ocomdk SQL-Developer] || Extras/Voreinstellungen --> Umgebung --> Codierung | ||
|} | |} | ||
== Aufbau der Webseite == | == Aufbau der Webseite == | ||
Version vom 9. Februar 2014, 19:25 Uhr
Einstellungen der Tools
Wenn die Webseite nicht nur Englisch, sondern auch andere Sprachen verwenden soll, dann ist es notwendig einen einheitlichen Zeichensatz festzulegen. Wenn man das nicht macht, können Sonderzeichen falsch dargestellt werden. Meist wird die UTF-8-Zeichenkodierung dafür verwendet. Im Folgenden zeige ich, wie man die Tools, die ich verwendet auf den UTF-8-Zeichensatz umstellt.
| Tools | Einstellung |
|---|---|
| Browser | <meta charset="utf-8" /> (HTML5)
bzw.
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> (XHTML)
|
| Datenbank (mysql) | CREATE TABLE user (
id INT UNSIGNED AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
modified DATETIME DEFAULT NULL,
created DATETIME DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| IDE (Netbeans) | Rechtsklick auf das Projekt --> Properties --> Sources/Encoding |
| IDE (Eclipse) | Window/Preferences --> General/Editors/Text Editors/Spelling --> Encoding |
| Editor (jedit) | Extras/Globale Optionen --> Zeichenkodierung --> Standardzeichenkodierung |
| Editor (notepad++) | Kodierung |
| Spracheditor (poedit) | Wenn ein Katalog geöffnet ist. Katalog/Eigenschaften --> Zeichensatz |
| SQL-Developer | Extras/Voreinstellungen --> Umgebung --> Codierung |
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];
}