MBO-SD : De site voor software developer in het MBO
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 deLTS
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
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.