PHP:Cakephp-Framework

Aus Alexander's Wiki
Version vom 9. Februar 2014, 17:53 Uhr von Admin (Diskussion | Beiträge) (Admin verschob die Seite Cakephp nach PHP:Cakephp-Framework, ohne dabei eine Weiterleitung anzulegen)

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];
    }


CakePHP-Webseite zur Installation