Symfony 4.4 installeren op Windows/Linux

Technische benodigdheden

Voordat u uw eerste Symfony-toepassing maakt, moet u:

PHP 7.2.5 of hoger en deze PHP-extensies (die standaard zijn geïnstalleerd en ingeschakeld in de meeste PHP 7-installaties): Ctype, iconv, JSON, PCRE, Session, SimpleXML en Tokenizer;

Installeer Composer, die wordt gebruikt om PHP-pakketten te installeren.

Optioneel kunt u ook Symfony CLI installeren. Dit creëert een binair bestand met de naam symfony dat alle tools biedt die u nodig hebt om uw Symfony-toepassing lokaal te ontwikkelen en uit te voeren.

Het symfony binaire bestand biedt ook een hulpmiddel om te controleren of uw computer aan alle vereisten voldoet. Open uw consoleterminal en voer deze opdracht uit

symfony check:requirements

Het Symfony-binaire bestand is intern ontwikkeld bij Symfony. Als u een bug wilt rapporteren of een nieuwe functie wilt voorstellen, maak dan een probleem aan op symfony / cli.

Symfony-applicaties maken¶

Open uw consoleterminal en voer een van deze opdrachten uit om een ​​nieuwe Symfony-toepassing te maken:

symfony new my_project_name --full

symfony new my_project_name

Het enige verschil tussen deze twee opdrachten is het aantal pakketten dat standaard is geïnstalleerd. De --full optie installeert alle pakketten die je normaal gesproken nodig hebt om webapplicaties te bouwen, dus de installatiegrootte zal groter zijn.

Als u het binaire bestand Symfony niet gebruikt, voert u deze opdrachten uit om de nieuwe Symfony-toepassing te maken met Composer:

composer create-project symfony/website-skeleton my_project_name

composer create-project symfony/skeleton my_project_name

Het maakt niet uit welke opdracht u uitvoert om de Symfony-toepassing te maken. Ze zullen allemaal een nieuwe my_project_name / directory maken, enkele afhankelijkheden erin downloaden en zelfs de basismappen en bestanden genereren die je nodig hebt om aan de slag te gaan. Met andere woorden, uw nieuwe aanvraag is klaar!

De cache en de logboekdirectory van het project (standaard <project> /var/cache/ en <project>/var/log/) moeten door de webserver kunnen worden geschreven. Als u een probleem ondervindt, lees dan hoe u machtigingen instelt voor Symfony-toepassingen.

Een bestaand Symfony-project opzetten

Naast het maken van nieuwe Symfony-projecten, werk je ook aan projecten die al door andere ontwikkelaars zijn gemaakt. In dat geval hoeft u alleen de projectcode op te halen en de afhankelijkheden met Composer te installeren. Ervan uitgaande dat je team Git gebruikt, stel je project dan in met de volgende commando's:

cd projects/
git clone ...

cd my-project/
composer install

U moet waarschijnlijk ook uw .env-bestand aanpassen en een paar andere projectspecifieke taken uitvoeren (bijvoorbeeld een database maken). Als u voor het eerst aan een bestaande Symfony-toepassing werkt, kan het handig zijn om deze opdracht uit te voeren om informatie over het project weer te geven:

php bin/console about

Symfony-applicaties uitvoeren

In productie moet u een webserver zoals Nginx of Apache installeren en deze configureren om Symfony uit te voeren. Deze methode kan ook worden gebruikt als u de lokale Symfony-webserver niet voor ontwikkeling gebruikt.

Voor lokale ontwikkeling is de handigste manier om Symfony uit te voeren echter door de lokale webserver te gebruiken die wordt geleverd door het symfony-binaire bestand. Deze lokale server biedt onder meer ondersteuning voor HTTP / 2, gelijktijdige verzoeken, TLS / SSL en het automatisch genereren van beveiligingscertificaten.

Open uw consoleterminal, ga naar uw nieuwe projectdirectory en start de lokale webserver als volgt:

cd my-project/
symfony server:start

Open uw browser en ga naar http://localhost:8000/. Als alles werkt, ziet u een welkomstpagina. Als u klaar bent met werken, stopt u de server door op Ctrl + C vanaf uw terminal te drukken.

TIP

De webserver werkt met elke PHP-applicatie, niet alleen met Symfony-projecten, dus het is een zeer nuttige generieke ontwikkelingstool.

Pakketten installeren

Een gangbare praktijk bij het ontwikkelen van Symfony-applicaties is het installeren van pakketten (Symfony noemt ze bundels) die kant-en-klare functies bieden. Pakketten vereisen meestal enige configuratie voordat ze kunnen worden gebruikt (een bestand bewerken om de bundel in te schakelen, een bestand maken om een ​​eerste configuratie toe te voegen, enz.)

Meestal kan deze installatie worden geautomatiseerd en daarom bevat Symfony Symfony Flex, een tool om de installatie / verwijdering van pakketten in Symfony-applicaties te vereenvoudigen. Technisch gezien is Symfony Flex een Composer-plug-in die standaard wordt geïnstalleerd bij het maken van een nieuwe Symfony-applicatie en die de meest voorkomende taken van Symfony-applicaties automatiseert.

TIP

U kunt Symfony Flex ook aan een bestaand project toevoegen.

Symfony Flex wijzigt het gedrag van de opdrachten voor het vereisen, bijwerken en verwijderen van Composer om geavanceerde functies te bieden. Beschouw het volgende voorbeeld:

cd my-project/
composer require logger

Als u die opdracht uitvoert in een Symfony-toepassing die geen Flex gebruikt, ziet u een Composer-foutmelding waarin wordt uitgelegd dat de logger geen geldige pakketnaam is. Als de applicatie echter Symfony Flex heeft geïnstalleerd, installeert en activeert die opdracht alle pakketten die nodig zijn om de officiële Symfony-logger te gebruiken.

Dit is mogelijk omdat veel Symfony-pakketten / -bundels ‘recepten’ definiëren, een reeks geautomatiseerde instructies om pakketten in Symfony-applicaties te installeren en in te schakelen. Flex houdt de recepten bij die het heeft geïnstalleerd in een symfony.lock-bestand, dat moet worden vastgelegd in uw coderepository.

Symfony Flex-recepten worden bijgedragen door de community en worden opgeslagen in twee openbare opslagplaatsen:

Hoofdreceptenrepository, is een samengestelde lijst met recepten voor hoogwaardige en onderhouden pakketten. Symfony Flex kijkt standaard alleen in deze repository.

 Contrib receptrepository, bevat alle recepten die door de community zijn gemaakt. Ze werken allemaal gegarandeerd, maar de bijbehorende pakketten kunnen niet worden onderhouden. Symfony Flex zal uw toestemming vragen voordat een van deze recepten wordt geïnstalleerd.

Lees de documentatie van Symfony Recepten om alles te weten te komen over het maken van recepten voor uw eigen pakketten.

Symfony Packs

Soms vereist een enkele functie het installeren van meerdere pakketten en bundels. In plaats van ze afzonderlijk te installeren, biedt Symfony pakketten, dit zijn Composer-metapakketten die verschillende afhankelijkheden bevatten.

Om bijvoorbeeld foutopsporingsfuncties aan uw toepassing toe te voegen, kunt u de opdracht composer vereist --dev debug uitvoeren. Dit installeert het symfony/debug-pack, dat op zijn beurt verschillende pakketten installeert zoals symfony/debug-bundle, symfony/monolog-bundle, symfony/var-dumper, etc.

U zult de afhankelijkheid van symfony/debug-pack niet zien in uw composer.json, aangezien Flex het pakket automatisch uitpakt. Dit betekent dat het alleen de echte pakketten als afhankelijkheden toevoegt (je ziet bijvoorbeeld een nieuwe symfony/var-dumper in vereisen-dev). Hoewel het niet wordt aanbevolen, kunt u de optie composer vereisen --no-unpack ... gebruiken om het uitpakken uit te schakelen.

Beveiligingsproblemen controleren

Het symfony-binaire bestand dat wordt gemaakt wanneer u Symfony CLI installeert, biedt een opdracht om te controleren of de afhankelijkheden van uw project een bekend beveiligingsprobleem bevatten:

Symfony check:security

Een goede beveiligingspraktijk is om deze opdracht regelmatig uit te voeren om gecompromitteerde afhankelijkheden zo snel mogelijk bij te werken of te vervangen. De beveiligingscontrole wordt lokaal uitgevoerd door de openbare PHP-database met beveiligingsadviezen op te halen, zodat uw composer.lock-bestand niet op het netwerk wordt verzonden.

TIP

De check: security-opdracht wordt beëindigd met een afsluitcode die niet gelijk is aan nul als een van uw afhankelijkheden wordt beïnvloed door een bekend beveiligingsprobleem. Op deze manier kunt u het toevoegen aan uw projectopbouwproces en uw continue integratie workflow om ze te laten mislukken als er kwetsbaarheden zijn.

Symfony LTS Versies

Volgens het releaseproces van Symfony worden er om de twee jaar versies voor "ondersteuning op lange termijn" (of kortweg LTS) gepubliceerd. Bekijk de Symfony-releases om te weten welke de nieuwste LTS-versie is.

Standaard gebruikt de opdracht waarmee nieuwe Symfony-toepassingen worden gemaakt, de nieuwste stabiele versie. Als je een LTS-versie wilt gebruiken, voeg dan de optie --version toe:

symfony new my_project_name --version=lts
symfony new my_project_name --version=next
symfony new my_project_name --version=4.4

De snelkoppelingen lts en next zijn alleen beschikbaar als u Symfony gebruikt om nieuwe projecten te maken. Als u Composer gebruikt, moet u de exacte versie vertellen:

composer create-project symfony/website-skeleton:"^4.4" my_project_name

De Symfony Demo-applicatie

De Symfony Demo-applicatie is een volledig functionele applicatie die de aanbevolen manier laat zien om Symfony-applicaties te ontwikkelen. Het is een geweldig leermiddel voor Symfony-nieuwkomers en de code bevat talloze opmerkingen en nuttige opmerkingen.

Voer deze opdracht uit om een ​​nieuw project te maken op basis van de Symfony Demo-applicatie:

symfony new my_project_name --demo