Starten van een project

Regel eerst de voorbereiding!

Voor je een project kan starten moet je de vorige paragraaf goed lezen en alle stappen uitvoeren, anders kan het zijn dat het niet werkt! Deze voorbereiding heb je ook nodig als je een bestaand project op jouw computer wilt installeren/ starten.

Nieuw project

Een nieuw project starten doe je altijd via een symfony commando, maar er zijn helpers. Je kan het via Powershell terminal en het Symfony-CLI commando doen, maar je kan ook PHPStorm gebruiken om een nieuw project aan te maken.

Via de terminal

Open een terminal en ga naar de map waar je jouw nieuwe project wilt maken. Je hoeft geen map aan te maken voor je nieuwe project dit doet de installer. Voer vervolgens de nieuwe code uit:

symfony new my-project --version="6.4.*" --webapp
Met bovenstaande code wordt er een map gemaakt my-project en daarin worden alle bestanden gezet om een nieuwe web-applicatie te maken.
LET OP!
Versie 6.4 is nu de LTS versie (Longterm support) we raden aan om nieuwe projecten altijd te maken in een LTS versie in verband met het up-to-date blijven en houden van je applicatie.
De parameter --webapp zorgt ervoor dat je meteen een web-applicatie omgeving hebt, dit is noodzakelijk anders mis je heel veel packages en werking van Symfony. (het is dan een console-applicatie)

Via PHPStorm

PHPStorm heeft standaard ook een Symfony plugin die je kan gebruiken. Doorloop de volgende stappen:

  • Open PHPStorm
  • Kies in het top-menu voor File
  • Kies voor de optie New project
Je krijgt nu een popup te zien:

Kies links voor Symfony, vul een goede locatie in inclusief jouw project-naam.
Project Type is uiteraard Web (tenzij je een andere wilt maken) en de versie kies je de laatste LTS versie. Klik vervolgens rechts onder op create en je kan starten!

De .env.local

Symfony werkt met een .env bestand welke meegeleverd wordt bij de standaard installatie. Deze moet je kopieren naar een .env.local bestand. Hierin komen alle lokale informatie te staan zoals de naam van jouw database en de connectie gegevens inclusief jouw wachtwoord. Deze informatie is alleen voor jouw project en niet voor anderen. Daarom staat dit bestand standaard in de gitignore van het project zodat anderen er geen toegang tot toe hebben.

Belangrijk in de .env.local voor nu is de database connectie string. Standaard staan er rond regel 22 van dit bestaand een aantal voorbeelden die je kan gebruiken. Afhankelijk van je database type die je gebruikt. Mysql/ MariaDB, PostgreSQL, Oracle, SQlite. Voor de basis installatie met XAMPP en Windows heb je de MariaDB versie nodig, Apple en Linux versies gebruiken de gewone MySQL versie. Onderstaand het database gedeelte uit de .env.local

###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"
###< doctrine/doctrine-bundle ###
Het # voor de code betekent dat dit nu niet gelezen wordt. Door deze weg te halen en een regel aan te passen met de juiste informatie gaat het in jouw applicatie werken.

Elke van de vier regels is voor een ander soort database, we leggen ze alle vier kort uit.

Voor het werken met SQLite gebruik je de volgende regel:

# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"

Voor MySQL standaard versie (Linux/ MacOS)
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"

Voor het werken met MySQL en MariaDB (Windows/ XAMPP) gebruik je deze regel
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"

En werk je met PostgreSQL gebruik je onderstaande regel
# DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8"

De eerste versie van SQLite spreekt voorzicht zelf. Voor de andere drie regels heb je belangrijke informatie nodig van jouw database.
app:!ChangeMe! dit is de gebruikersnaam en het wachtwoord. De gebruikersnaam in dit voorbeeld is app en het wachtwoord is !ChangeMe!. Beide zijn gescheiden door een dubbelepunt :
/app?serverVersion is het deel waar de database die je wilt gebruiken aangegeven wordt. app is in deze regel de naam van jouw database.

Voorbeeld DATABASE_URL in jouw .env.local

In onderstaand voorbeeld zie je de regel die je kan gebruiken als DATABASE_URL regel. Dit voorbeeld is voor een XAMPP installatie in Windows. De username is dan root, er is geen wachtwoord en de databasenaam is in dit voorbeeld testdb. Let op: ondanks dat het wachtwoord leeg is, moet je de dubbelepunt die normaal tussen username en wachtwoord staat wel laten staan.

DATABASE_URL="mysql://root:@127.0.0.1:3306/testdb?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
Let op: Je laat de hashtag (hekje/ #) voor de regel weg, anders werkt het niet.

Database aanmaken

Je kan op twee manieren de database aanmaken die je wilt gebruiken. Als de user die je op hebt gegeven in de DATABASE_URL connectieregel ook een database mag aanmaken, kan je dit doen via een symfony commando:

symfony console doctrine:database:create

Database via PHPMyAdmin aanmaken

Mocht jouw gebruiker geen rechten hebben, of omdat je zelf het leuk vind, kan je de database ook aanmaken via de CLI omgeving of een tool als PHPMyAdmin om een database aan te maken. Dan hoef (en kan) je het bovenstaande commando niet gebruiken.