Wstęp
Symfony 6 to popularny framework PHP używany przez programistów do tworzenia aplikacji webowych. W tym artykule przedstawiamy jak zainstalować Symfony 6, skonfigurować serwer Apache z wirtualnym hostem oraz utworzyć prostą stronę „Hello World”. Przykład konfiguracji został przeprowadzony na serwerze z pakietu XAMPP.
Instalacja Symfony 6
W dowolnym katalogu instalujemy Symfony 6:
composer create-project symfony/website-skeleton HelloWorldSymfony6
Na pytanie „Do you want to include Docker configuration from recipes?” odpowiadamy nie.
Przechodzimy do katalogu HelloWorldSymfony6
cd HelloWorldSymfony6
i dodajemy apache-pack
:
composer require symfony/apache-pack
Na pytanie „Do you want to execute this recipe?” odpowiadamy pozytywnie (yes).
Konfiguracja serwera Apache
W tym przykładzie użyty zostanie serwer z pakietu Xampp. Przechodzimy do katalogu C:\xampp\apache\conf\extra
i edytujemy plik httpd-vhosts.conf
. Minimalna konfiguracja jaką musimy wykonać to:
<VirtualHost *:80>
DocumentRoot "C:\www\HelloWorldSymfony6\public"
ServerName helloworld.localhost
ErrorLog "logs/helloworld.localhost-error.log"
CustomLog "logs/helloworld.localhost-access.log" common
</VirtualHost>
Zwróć uwagę, aby DocumentRoot
zawierał poprawną ścieżkę do podkatalogu public
w miejscu instalacji Symfony.
Pamiętaj, że standardowo Apache ma zablokowany dostęp do niestandardowych katalogów. W naszym przypadku w pliku konfiguracyjnym Apache httpd.conf
należy dodać poniższe linijki, które dadzą Apache możliwość korzystania z katalogu C:\www
:
<Directory "C:/www">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Po resecie Apache możemy w przeglądarce wyświetlić stronę: http://helloworld.localhost/ Widok jaki powinniśmy zobaczyć to taki:
Tworzenie pierwszego kontrolera
Widzimy brak skonfigurowanej trasy. Aby dodać pierwszy kontroler należy wykonać polecenie:
php bin/console make:controller TestController
Stworzą się dwa pliki: kontrolera oraz widoku.
Plik kontrolera src/Controller/TestController.php
ma zawartość:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class TestController extends AbstractController
{
#[Route('/test', name: 'app_test')]
public function index(): Response
{
return $this->render('test/index.html.twig', [
'controller_name' => 'TestController',
]);
}
}
Możemy zamienić linijkę:
#[Route('/test', name: 'app_test')]
na:
#[Route('/', name: 'app_test')]
Dzięki temu zabiegowi podmienimy stronę główną na tą z kontrolera. Po odświeżeniu http://helloworld.localhost/ zobaczymy taki widok:
Edytujemy plik templates/test/index.html.twig
, który ma następującą postać:
{% extends 'base.html.twig' %}
{% block title %}Hello TestController!{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code><a href="{{ 'C:/www/HelloWorldSymfony6/src/Controller/TestController.php'|file_link(0) }}">src/Controller/TestController.php</a></code></li>
<li>Your template at <code><a href="{{ 'C:/www/HelloWorldSymfony6/templates/test/index.html.twig'|file_link(0) }}">templates/test/index.html.twig</a></code></li>
</ul>
</div>
{% endblock %}
Zmieniamy plik wg własnych potrzeb, np:
{% extends 'base.html.twig' %}
{% block title %}Witaj Świecie!{% endblock %}
{% block body %}
<div>
<h1>Witaj Świecie!</h1>
<p>Witaj na mojej pierwszej stronie w Symfony!</p>
</div>
{% endblock %}
Nasza strona po odświeżeniu będzie wyglądała następująco:
Podsumowanie
W tym artykule nauczyłeś się, jak zainstalować Symfony 6 oraz skonfigurować serwer Apache z wirtualnym hostem, aby stworzyć prostą stronę „Hello World”. Przez kilka kroków opisaliśmy proces instalacji Symfony 6, dodawania apache-pack, konfiguracji serwera Apache, udostępnienia katalogu dla serwera Apache, restartowania serwera Apache, edycji kontrolera oraz widoku.
Dzięki tym krokom możemy teraz szybko tworzyć nowe projekty oparte na Symfony 6 i łatwo konfigurować środowisko lokalne na serwerze Apache. Wiedza ta jest przydatna dla każdego programisty, który chce rozpocząć pracę z frameworkiem Symfony lub udoskonalić swoje umiejętności w konfiguracji serwera Apache.