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.
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.
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:
bashsymfony 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.
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:
PHPStorm nieuw 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 bestand een aantal voorbeelden die je kan gebruiken, afhankelijk van je database type: MySQL / MariaDB, PostgreSQL, Oracle of 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:[email protected]:3306/app?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
# DATABASE_URL="postgresql://app:[email protected]: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:[email protected]:3306/app?serverVersion=8.0.32&charset=utf8mb4"
Voor het werken met MySQL en MariaDB (Windows / XAMPP):
DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
En werk je met PostgreSQL, gebruik je onderstaande regel:
DATABASE_URL="postgresql://app:[email protected]:5432/app?serverVersion=16&charset=utf8"
De eerste versie van SQLite spreekt voor zichzelf. 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.
DATABASE_URL="mysql://root:@127.0.0.1:3306/testdb?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
Database aanmaken
Je kan op twee manieren de database aanmaken die je wilt gebruiken. Als de user die je opgegeven hebt in de DATABASE_URL connectieregel ook een database mag aanmaken, kan je dit doen via een symfony commando:
bashsymfony console doctrine:database:create
Database via PHPMyAdmin aanmaken
Mocht jouw gebruiker geen rechten hebben, of omdat je zelf het leuk vindt, kan je de database ook aanmaken via de CLI omgeving of een tool als PHPMyAdmin. Dan hoef (en kan) je het bovenstaande commando niet gebruiken.
Meer in Installatie