Development

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

You must first sign up to be able to contribute.

Changes from Version 1 of Documentation/de_DE/getting-started/1_4/04-Project-Setup

Show
Ignore:
Author:
Think (IP: 87.154.45.129)
Timestamp:
12/26/09 12:29:56 (8 years ago)
Comment:

Seite erstellt

Legend:

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

    v0 v1  
     1Übersetzung von [http://www.symfony-project.org/getting-started/1_4/en/04-Project-Setup Getting Started with symfony] 
     2 
     3{{{ 
     4#!WikiMarkdown 
     5# Der Start mit symfony 
     6 
     7## Projekt einrichten 
     8 
     9In symfony werden die **Anwendungen**, die auf dasselbe Datenmodell zugreifen, innerhalb von **Projekten** gruppiert. Bei den meisten Projekten werden Sie zwei verschiedene Anwendungen haben: ein Frontend und ein Backend. 
     10 
     11### Projekt erstellen 
     12 
     13Vom Verzeichnis `sfproject/` aus starten Sie den symfony-Task `generate:project` um das eigentliche symfony-Projekt zu erstellen. 
     14 
     15--- 
     16`$ php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME` 
     17 
     18--- 
     19 
     20Mit Windows: 
     21 
     22--- 
     23`c:\> php lib\vendor\symfony\data\bin\symfony generate:project PROJECT_NAME` 
     24 
     25--- 
     26 
     27Der `generate:project`-Task erstellt die Standard-Struktur aus Verzeichnissen und Dateien, die ein symfony-Projekt braucht. 
     28 
     29<table> 
     30<tr><td>Verzeichnis</td><td>Beschreibung</td></tr> 
     31<tr><td>apps/</td><td>Enthält alle Anwendungen des Projekts</td></tr> 
     32<tr><td>cache/</td><td>Die Dateien, die vom Framework gecached werden</td></tr> 
     33<tr><td>config/</td><td>Die Dateien der Projekt-Konfiguration</td></tr> 
     34<tr><td>lib/</td><td>Die Projekt-Bibliotheken und -Klassen</td></tr> 
     35<tr><td>log/</td><td>Die Log-Dateien des Frameworks</td></tr> 
     36<tr><td>plugins/</td><td>Die installierten Plugins</td></tr> 
     37<tr><td>test/</td><td>Die Dateien der Element-Tests und Funktions-Tests</td></tr> 
     38<tr><td>web/</td><td>Das Webroot-Verzeichnis (s. unten)</td></tr> 
     39</table> 
     40 
     41--- 
     42**Anmerkung:** Warum generiert symfony so viele Dateien? Einer der Hauptvorteile der Verwendung eines voll ausgestatteten Frameworks besteht in der Standardisierung Ihrer Entwicklungen. Dank symfonys Standardstruktur aus Dateien und Verzeichnissen kann jeder Entwickler mit etwas symfony-Kenntnissen die Pflege eines symfony-Projekts übernehmen. Innerhalb von Minuten wird es ihm möglich sein, in den Code einzutauchen, Fehler zu beheben und neue Features hinzuzufügen. 
     43 
     44--- 
     45 
     46Der `generate:project`-Task hat ebenfalls in Ihrem Projekt-Hauptverzeichnis eine Abkürzung erstellt, damit Sie nicht so viele Zeichen eintippen müssen, um einen symfony-Task zu starten. 
     47 
     48Von jetzt an also können Sie statt des vollständigen Pfades zum symfony-Programm die symfony-Abkürzung verwenden. 
     49 
     50### Anwendung erstellen 
     51 
     52Nun erstellen Sie die Frontend-Anwendung durch starten des Tasks `generate:app`: 
     53 
     54--- 
     55`$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend` 
     56 
     57--- 
     58 
     59--- 
     60**Tipp:** Da die symfony-Abkürzung eine ausführbare Datei ist, können alle Unix-Anwender von jetzt an statt `'php symfony'` `'./symfony'` eingeben.<BR> 
     61Bei Windows können Sie die Datei `'symfony.bat'` in Ihr Projekt kopieren und `'symfony'` statt `'php symfony'` verwenden:<BR> 
     62`c:\> copy lib\vendor\symfony\data\bin\symfony.bat .` 
     63 
     64--- 
     65 
     66Abhä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/`: 
     67 
     68<table> 
     69<tr><td>Verzeichnis</td><td>Beschreibung</td></tr> 
     70<tr><td>config/</td><td>Die Dateien der Anwendungs-Konfiguration</td></tr> 
     71<tr><td>lib/</td><td>Die Bibliotheken und Klassen der Anwendung</td></tr> 
     72<tr><td>modules/</td><td>Der Code der Anwendung (MVC)</td></tr> 
     73<tr><td>templates/</td><td>Die globalen Template-Dateien</td></tr> 
     74</table> 
     75 
     76--- 
     77**Tipp:** Beim Aufruf des Tasks `generate:app` haben Sie ebenfalls zwei sicherheitsrelevante Optionen mitgegeben: 
     78 
     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 
     81 
     82Durch 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. 
     83 
     84Sollten 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. 
     85 
     86--- 
     87 
     88### Verzeichnisstruktur-Rechte 
     89 
     90Bevor 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: 
     91 
     92--- 
     93`$ chmod 777 cache/ log/` 
     94 
     95--- 
     96 
     97--- 
     98**Tipp für Leute, die ein SCM-Tool (Software Configuration Management) verwenden:**<BR> 
     99Symfony 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.) 
     100 
     101--- 
     102 
     103### Der symfony-Pfad 
     104 
     105Sie erhalten die symfony-Version, die Ihr Projekt verwendet, durch Eingabe von: 
     106 
     107--- 
     108`$ php symfony -V` 
     109 
     110--- 
     111 
     112Die 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 
     120Fü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 
     128Auf 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 
     132Eines 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 
     134Die 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 
     141Der `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 
     145Sollten 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 
     157Nach 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 
     169Anschließ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--- 
     175}}} 
     176 
     177zurück zu: [wiki:Documentation/de_DE/getting-started/1_4 Übersicht "Der Start mit symfony"][[BR]] 
     178zurück zu: [wiki:Documentation/de_DE Deutsche Startseite]