PHP:Cakephp-Framework: Unterschied zwischen den Versionen

Aus Alexander's Wiki
Zeile 24: Zeile 24:
</source>
</source>
|-
|-
| IDE ([https://netbeans.org/ Netbeans]) ||  
| IDE ([https://netbeans.org/ Netbeans]) || Rechtsklick auf das Projekt --> Properties --> Sources/Encoding
|-
|-
| IDE ([http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr Eclipse]) || Window/Preferences --> General/Editors/Text Editors/Spelling --> Encoding
| IDE ([http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr Eclipse]) || Window/Preferences --> General/Editors/Text Editors/Spelling --> Encoding
Zeile 30: Zeile 30:
| Editor ([http://jedit.org/ jedit]) || Extras/Globale Optionen --> Zeichenkodierung --> Standardzeichenkodierung
| Editor ([http://jedit.org/ jedit]) || Extras/Globale Optionen --> Zeichenkodierung --> Standardzeichenkodierung
|-
|-
| Editor (notepad++) || Kodierung
| Editor ([http://notepad-plus-plus.org/ notepad++]) || Kodierung
|-
|-
| Spracheditor ([http://www.poedit.net/ poedit]) || Wenn ein Katalog geöffnet ist. Katalog/Eigenschaften --> Zeichensatz
| Spracheditor ([http://www.poedit.net/ poedit]) || Wenn ein Katalog geöffnet ist. Katalog/Eigenschaften --> Zeichensatz

Version vom 9. Februar 2014, 19:23 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];
    }


CakePHP-Webseite zur Installation