Development

Documentation/de_DE/getting-started/1_4/04-Project-Setup (diff)

You must first sign up to be able to contribute.

Changes between Version 1 and Version 2 of Documentation/de_DE/getting-started/1_4/04-Project-Setup

Show
Ignore:
Author:
Think (IP: 87.147.142.200)
Timestamp:
12/26/09 14:04:57 (8 years ago)
Comment:

Übersetzung

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/de_DE/getting-started/1_4/04-Project-Setup

    v1 v2  
    3232<tr><td>cache/</td><td>Die Dateien, die vom Framework gecached werden</td></tr> 
    3333<tr><td>config/</td><td>Die Dateien der Projekt-Konfiguration</td></tr> 
     34<tr><td>data/</td><td>Datendateien wie z.B. die Anfangs-Ausstattung</td></tr> 
    3435<tr><td>lib/</td><td>Die Projekt-Bibliotheken und -Klassen</td></tr> 
    3536<tr><td>log/</td><td>Die Log-Dateien des Frameworks</td></tr> 
    4849Von jetzt an also können Sie statt des vollständigen Pfades zum symfony-Programm die symfony-Abkürzung verwenden. 
    4950 
     51### Die Datenbank konfigurieren 
     52 
     53Das symfony-Framework unterstützt alle Datenbanken, die [PDO](http://www.php.net/PDO) unterstützen (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). Symfony vefügt über zwei ORM-Tools, die auf PDO aufsetzen: Propel und Doctrine. 
     54 
     55Beim Erstellen eines neuen Projekts ist Doctrine standardmäßig aktiviert. Die Konfiguration der von Doctrine verwendeten Datenbank erfolgt ganz einfach mit dem Task `configure:database`: 
     56 
     57--- 
     58`$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret` 
     59 
     60--- 
     61 
     62Der `configure:database`-Task erhält drei Argumente: die [PDO DSN](http://www.php.net/manual/en/pdo.drivers.php), den Usernamen und das Passwort für den Zugang zur Datenbank. Wenn Sie auf Ihrem Entwicklungs-Server kein Zugangs-Passwort zur Datenbank brauchen, lassen Sie das dritte Argument einfach weg. 
     63 
     64--- 
     65**Tipp:** Wenn Sie Propel statt Doctrine einsetzen möchten, dann fügen Sie `--orm=Propel` hinzu, wenn Sie das Projekt mit dem Task `generate:project` anlegen. Wollen Sie gar kein ORM verwenden, dann geben Sie `--orm=none` ein. 
     66 
     67--- 
     68 
    5069### Anwendung erstellen 
    5170 
    5372 
    5473--- 
    55 `$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend` 
     74`$ php symfony generate:app frontend` 
    5675 
    5776--- 
    6483--- 
    6584 
    66 Abhängig vom Anwendungsnamen, der als Argument angegeben wurde, erzeugt der Task `generate:app` die für die Anwendung notwendige Standard-Verzeichnisstruktur innerhalb der Verzeichnisses `apps/frontend/`: 
     85Abhängig vom Anwendungsnamen, der als *Argument* angegeben wurde, erzeugt der Task `generate:app` die für die Anwendung notwendige Standard-Verzeichnisstruktur innerhalb des Verzeichnisses `apps/frontend/`: 
    6786 
    6887<table> 
    7493</table> 
    7594 
    76 --- 
    77 **Tipp:** Beim Aufruf des Tasks `generate:app` haben Sie ebenfalls zwei sicherheitsrelevante Optionen mitgegeben: 
     95#### Sicherheit 
    7896 
    79 - `--escaping-strategy:` Aktiviert das Output-Escaping zur Verhütung von XSS-Attacken 
    80 - `--csrf-secret:` Aktiviert Session-Tokens zur Verhütung von CSRF-Attacken 
     97Standardmäßig hat der Task `generate:app` unsere Anwendung gegen die zwei am meisten verbreiteten Schwachstellen im Web abgesichert. Sie haben richtig gelesen, symfony übernimmt für Sie automatisch Sicherheitsmaßnahmen. 
    8198 
    82 Durch Angabe dieser beiden optionalen Argumente an den Task haben Sie Ihre zukünftige Entwicklung gegen die zwei am meisten verbreiteten Schwachstellen im Web abgesichert. Das ist richtig, symfony übernimmt für Sie automatisch Sicherheitsmaßnahmen. 
     99Zur Verhütung von XSS-Attacken ist das Output-Escaping aktiviert worden; und zur Verhütung von CSRF-Attacken ist 
     100ein zufälliges geheimes CSRF generiert worden. 
    83101 
    84 Sollten Sie nichts über [XSS](http://en.wikipedia.org/wiki/Cross-site_scripting) oder [CSRF](http://en.wikipedia.org/wiki/CSRF) wissen, dann nehmen Sie sich die Zeit, mehr über diese Sicherheits-Schwachstellen zu lernen. 
     102Natürlich können Sie diese Einstellungen durch die folgenden *Optionen* optimieren: 
    85103 
    86 --- 
     104- `--escaping-strategy:` Aktiviert oder deaktiviert das Output-Escaping 
     105- `--csrf-secret:` Aktiviert Session-Tokens in Formularen 
     106 
     107Sollten Sie nichts über [XSS](http://de.wikipedia.org/wiki/Cross-Site_Scripting) oder [CSRF](http://de.wikipedia.org/wiki/CSRF) wissen, dann nehmen Sie sich die Zeit, mehr über diese Sicherheits-Schwachstellen zu lernen. 
    87108 
    88109### Verzeichnisstruktur-Rechte 
    89110 
    90 Bevor Sie auf Ihr neu erstelltes Projekt zugreifen müssen Sie die Schreibrechte für die Verzeichnisse `cache/` und `log/` auf die geeignete Stufe setzen, damit der Webserver darauf schreiben kann: 
     111Bevor Sie auf Ihr neu erstelltes Projekt zugreifen, müssen Sie die Schreibrechte für die Verzeichnisse `cache/` und `log/` auf die geeignete Stufe setzen, damit der Webserver darauf schreiben kann: 
    91112 
    92113--- 
    95116--- 
    96117 
    97 --- 
    98 **Tipp für Leute, die ein SCM-Tool (Software Configuration Management) verwenden:**<BR> 
     118#### Tipp für Leute, die ein SCM-Tool (Software Configuration Management) verwenden 
     119 
    99120Symfony schreibt überhaupt nur in zwei Verzeichnisse eines symfony-Projektes, `cache/` und `log/`. Der Inhalt dieser Verzeichnisse sollte von Ihrem SCM ignoriert werden. (Wenn Sie z.B. Subversion verwenden durch Anpassen der `svn:ignore`-Eigenschaft.) 
    100121 
    101 --- 
    102  
    103 ### Der symfony-Pfad 
    104  
    105 Sie erhalten die symfony-Version, die Ihr Projekt verwendet, durch Eingabe von: 
    106  
    107 --- 
    108 `$ php symfony -V` 
    109  
    110 --- 
    111  
    112 Die Option `-V` zeigt ebenfalls den Pfad zum symfony-Installationsverzeichnis, das in `config/ProjectConfiguration.class.php` gespeichert ist: 
    113  
    114 --- 
    115 `// config/ProjectConfiguration.class.php`<BR> 
    116 `require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php';` 
    117  
    118 --- 
    119  
    120 Für eine bessere Portabilität wechseln Sie die absolute Pfadangabe zur symfony-Installation in eine relative: 
    121  
    122 --- 
    123 `// config/ProjectConfiguration.class.php`<BR> 
    124 `require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';` 
    125  
    126 --- 
    127  
    128 Auf diese Weise können Sie das Projektverzeichnis überall auf Ihrem Rechner oder auf einen anderen verschieben und alles wird weiterhin funktionieren. 
    129  
    130 ### Die Datenbank konfigurieren 
    131  
    132 Eines der ersten Dinge, die Sie tun können ist die Anpassung der Datenbank-Verbindung für Ihr Projekt. Das symfony-Framework unterstützt alle Datenbanken, die [PDO](http://www.php.net/PDO) unterstützen (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). Symfony vefügt über zwei ORM-Tools, die auf PDO aufsetzen: Propel und Doctrine. Propel ist das Standard-Tool, das Umschalten auf Doctrine ist aber recht einfach (s. nächster Abschnitt für mehr Informationen). 
    133  
    134 Die Konfiguration der Datenbank erfolgt ganz einfach mit dem Task `configure:database`: 
    135  
    136 --- 
    137 `$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret` 
    138  
    139 --- 
    140  
    141 Der `configure:database`-Task erhält drei Argumente: die [PDO DSN](http://www.php.net/manual/en/pdo.drivers.php), den Usernamen und das Passwort zum Zugang zur Datenbank. Wenn Sie auf Ihrem Entwicklungs-Server kein Zugangs-Passwort zur Datenbank brauchen, lassen Sie das dritte Argument weg. 
    142  
    143 ### Auf Doctrine umschalten 
    144  
    145 Sollten Sie sich entschließen, Doctrine statt Propel zu verwenden, müssen Sie zuerst `sfDoctrinePlugin` einschalten und `sfPropelPlugin` abschalten. Sie erreichen dies durch diesen Code in Ihrer `config/ProjectConfiguration.class.php`: 
    146  
    147 --- 
    148  
    149     [PHP] 
    150      public function setup() 
    151      { 
    152        $this->enableAllPluginsExcept(array('sfPropelPlugin', 'sfCompat10Plugin')); 
    153      } 
    154  
    155 --- 
    156  
    157 Nach dieser Änderung führen Sie diese Kommandos aus: 
    158  
    159 --- 
    160 `$ php symfony plugin:publish-assets`<BR> 
    161 `$ php symfony cc`<BR> 
    162 `$ rm web/sfPropelPlugin`<BR> 
    163 `$ rm config/propel.ini`<BR> 
    164 `$ rm config/schema.yml`<BR> 
    165 `$ rm config/databases.yml` 
    166  
    167 --- 
    168  
    169 Anschließend starten Sie dieses Kommando, um Ihre Datenbank für Doctrine zu konfigurieren: 
    170  
    171 --- 
    172 `$ php symfony configure:database --name=doctrine --class=sfDoctrineDatabase "mysql:host=localhost;dbname=jobeet" root mYsEcret` 
    173  
    174 --- 
    175122}}} 
    176123