Symfony2 mit git installieren

Symfony2 mit git installieren

git Repository auf dem git Server anlegen:

cd /path/to/my/git
mkdir mysymfony
cd mysymfony
git init --bare
cd ..
chown -R www-root mysymfony
[...] #evtl. apache konfigurieren

Symfony auf dem Entwicklungsrechner auschecken:

git clone https://git.example.com/mysymfony

master branch erstellen:

cd mysymfony
touch x
git add x
git commit -a
git rm x
git commit -a
git push origin master

Änderungen im neuen beta-branch machen:

git checkout --track -b beta

git-repository von symfony einbinden:

git remote add symfony git://github.com/symfony/symfony-standard.git

# Inhalt des Repositories herunterladen

git fetch symfony

Symfony Version 2.0.15 in den beta-branch mergen

git merge v2.0.15

Vendors installieren und Cache löschen:

bin/vendors install
app/console cache:clear --env dev
app/console cache:clear --env prod

Committen und remote repository aktualisieren

git commit -a
git push origin beta

Test: Mit web/ als webroot kann man jetzt die Demo-Anwendung aufrufen:

http://mysymfony.localhost/app_dev.php/demo/hello/Horst

Symfony aktualisieren

Symfony mit git aktualisieren:

git remote update
git merge v2.0.16

Vendors mit git aktualisieren:

php bin/vendors install

Frontend-Controller für Produktionsbetrieb aktivieren

In Datei web/app.php:

$kernel = new AppKernel('prod', false);

ändern auf:

$kernel = new AppKernel('prod', true);

Zum Betrachten der Demo-Anwendung mit app.php muss folgende Zeile in app/Appkernel außerhalb des ifs stehen (zwei Zeilen nach oben verschieben)

$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();

Das Routing in app/config/routing.yml ändern auf:

_welcome:
    pattern:  /
    defaults: { _controller: AcmeDemoBundle:Welcome:index }
 
_demo_secured:
    resource: "@AcmeDemoBundle/Controller/SecuredController.php"
    type:     annotation
 
_demo:
    resource: "@AcmeDemoBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo

Cache leeren:

app/console cache:clear --env dev
app/console cache:clear --env prod

Test: Jetzt kann die Demo-Anwendung (bei entsprechender Apache-Konfiguration) abgerufen werden unter:

http://mysymfony.localhost/app.php/demo/hello/Fabien

Wenn das Apache-Modul mod_rewrite aktiviert ist kann der Aufruf auch erfolgen mit:

http://mysymfony.localhost/demo/hello/Fabien

Bundle erstellen (enthält Model, View, Controller)

Zuerst muss ein neues Bundle erstellt werden, welches Controller und View enthält:

php app/console generate:bundle --namespace=myname/TestBundle --format=yml

Man kann alle Einstellungen lassen, sollte jedoch die Verzeichnisstruktur erstellen lassen (wenn man möchte).

Model: Entity erstellen

Zunächst eine Datenbankverbindung einrichten in properties.ini.

Model: Entity für das Bundle erstellen mit

php app/console doctrine:generate:entity --entity="mynameTestBundle:Product" --fields="name:string(255) price:float description:text"

Getter und Setter hinzufügen:

php app/console doctrine:generate:entities myname/TestBundle/Entity/Product

Datenbank-Schema updaten:

php app/console doctrine:schema:update --force

Assets ins wwwroot kopieren

Dieser Befehl kopiert alle assets (css, Bilder usw.) der verschiedenen Bundles ins web-Verzeichnis, sodass sie über http erreichbar sind.

php app/console assets:install web