Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

fzieris/php-demo-supero-symfony

Repository files navigation

Symfony-Demo "Supero"

Dieses Git-Repository gehört zur Lehrveranstaltung Webentwicklung an der HTW Berlin.

Inhaltsverzeichnis

Installation

1. Klonen und Abhängigkeiten installieren

Zunächst müssen Sie das Projekt klonen und dann alle Abhängigkeiten mit Composer installieren.

git clone https://github.com/fzieris/php-demo-supero-symfony.git supero-symfony
cd supero-symfony
composer install

2. Umgebungsvariablen setzen

Jede Installation eines Symfony-Projekts befindet sich in einer eigenen Umgebung, welche konfiguriert werden muss.

Erstellen Sie im Projektverzeichnis eine .env-Datei. Kopieren Sie dafür einfach die .env.dist-Datei.

cp .env.dist .env

Öffnen Sie die neue .env-Datei mit einem Text-Editor und setzen Sie bei Bedarf die folgenden drei Werte:

  • APP_ENV: Erlaubte Werte:
    • dev für ein Entwicklungssystem (schaltet viele Debugging-Informationen ein)
    • prod für ein Produktivsystem (schneller, aber keine Debugging-Informationen)
  • APP_SECRET: Wird von Symfony benutzt, um Funktionen, die zufällige Werte brauchen, ein wenig zufälliger zu machen (siehe Eintrag in der Symfony-Referenz). Sie können sich z.B. auf Seiten wie http://nux.net/secret einfach zufällige Strings erzeugen lassen.
  • DATABASE_URL: Eine Datenbank-URL. Nutzen Sie für dieses einfach Projekt einfach eine SQLite-Datenbank, indem Sie folgenden Wert setzen: sqlite:///%kernel.project_dir%/var/data.db

Die .env-Datei bleibt dank .gitignore lokal und wird nicht mit-committet.

3. Datenbank aufsetzen

Rufen Sie im Projektverzeichnis (im Beispiel von oben: supero-symfony/) folgenden Befehl auf:

php bin/console supero:reset-database

Die erwartete Ausgabe sieht etwas so aus:

Dropped database for connection named F:\git\supero-symfony/var/data.db
Created database F:\git\supero-symfony/var/data.db for connection named default
ATTENTION: This operation should not be executed in a production environment.

Creating database schema...
Database schema created successfully!
  > purging database
  > loading App\DataFixtures\HeroFixtures

(Der Befehl supero:reset-database gehört nicht zu Symfony, sondern ist eigens für dieses Demo-Projekt geschrieben worden. Er ruft aber nacheinander vier Symfony-Befehle auf: evtl. bestehende Datenbank löschen, neue Datenbank anlegen, Datenbank-Schema erstellen und Startdaten einfügen.)

4. Anwendung starten

Am einfachsten geht das Starten der Webanwendung über den PHP-eigenen Webserver:

php -S 127.0.0.1:8080 -t public

Statt 8080 können Sie auch einen anderen freien Port verwenden. Rufen Sie in Ihrem Web-Browser die Supero-Seite auf: http://127.0.0.1:8080

In Ihrer Konsole sehen Sie alle Aufrufe, die an den Webserver gehen. Wenn Sie den Webserver stoppen wollen, tippen Sie in die Konsole CTRL+C.

Entwicklungsstände

Die einzelnen Commits können im Git-Log eingesehen werden; die jeweiligen Schritte werden in diesem Dokument erläutert.

Deployment auf Heroku

Sie können die Supero-Webseite auch einfach auf Heroku deployen.

Legen Sie erst eine neue Heroku-Instanz an:

heroku create

Ihre .env-Datei ist nur lokal und in einer Heroku-Instanz können Sie nicht einfach (und vor allem nicht dauerhaft) eine Datei anlegen, die nicht unter Versionskontrolle ist. Verwenden Sie daher für Ihre Heroku-Instanz Umgebungsvariablen. Diese können Sie einfach von der Kommandozeile setzen:

heroku config:set APP_ENV=prod
heroku config:set APP_SECRET={ein frisches, zufälliges Secret}
heroku config:set DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db

Alternativ können Sie die Umgebungsvariablen auch über das Webinterface einsehen und verändern: Heroku Dashboard > Ihre App > Settings > Config Variables.

Jetzt können Sie ganz wie gewohnt deployen:

git push heroku

Das war's! Bei jedem Deployment wird die Datenbank in der Heroku-Instanz zurückgesetzt (weil im Procfile der Befehl supero:reset-database automatisch vor dem Start des Apache Webservers aufgerufen wird).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published