
Czego nauczysz się w tym kursie Symfony
Przedstawienie aplikacji budowanej w tym kursie Symfony
Rozpoczynamy pracę z PHP 8. Uruchomienie servera PHP i stworzenie pierwszego pliku oraz skryptu PHP
W PHP 8 zamiast switch-a możemy użyć dużo prostszego wyrażenia match
Dzięki nazwanym argumentom funkcji nie musimy pamiętać o kolejności argumentów oraz możemy pominąć argumenty opcjonalne
Zamiast deklarować zmienne klasowe w standardowy sposób, możemy deklarować je bezpośrednio jako argumenty konstruktora
Dodatkowa instrukcja warunkowa w postaci znaku zapytania przy wywołaniu funkcji lub zmiennych
Możemy deklarować kilka naraz typów danych dla jednego argumentu funkcji lub zwracanej wartości przez funkcję
Kilka nowych funkcji operujących na danych typu string
Dołączone do stringu za pomocą konkatenacji wyrażenie matematyczne jest traktowane jako wyrażenie matematyczne a nie jako string jak przed wersją PHP 8
W PHP 8 tablice mogą być indeksowane od liczby ujemnej
Jeśli nie masz doświadczenia z Dockerem zalecam używanie XAMPP-a zamiast Dockera
Uruchomienie Symfony za pomocą XAMPP-a. Oprócz tego potrzebujemy zainstalować Node oraz Composer
Instalacja paczki requirements-checker przez Composer. Paczka sprawdzi czy paczki składowe Symfony są bezpieczne
Stworzenie kilku ścieżek i obsługa tych ścieżek za pomocą kontrolera
Kontrolery będą zwracały konkretne widoki np. szczegóły posta bloga
Jako framework CSS użyjemy TailwindCSS w tym kursie Symfony
Wszystkie podstrony będą miały wspólny nagłówek z logo, wyszukiwarką oraz linkami do logowania i rejestracji
Na urządzeniach mobilnych będziemy mieli klikalną ikonkę tzw. Hamburger do otwierania i zamykania menu
Pasek powiadomień (narazie tylko ostylowany HTML) do informowania o nowym poście
Formularz wyszukiwarki oraz przykładowe wyniki wyszukiwania (HTML) aby zobaczyć jak wyszukiwarka będzie finalnie wyglądać
W nagłówku będą dostępne linki do zalogowania, rejestracji oraz wylogowania
Na stronie głównej wyświetlimy kilka ostatnio dodanych postów
Dla użytkowników zalogowanych pod każdym postem autora będą linki do usuwania oraz edycji posta
Podstrona "szczegóły posta". Aby nie powtarzać sekcji head i in. zastosujemy główny plik szablonu base.html.twig
W szczegółach posta dla użytkowników zalogowanych będzie można wyświetlić przycisk do śledzenia autora lub informację, że już jest śledzony
W szczegółach posta będą informacje o polubieniach/odlubieniach a dla użytkowników zalogowanych dodatkowo będzie możliwość polubienia/odlubienia posta
Ostylowany w TailwindCSS html do widoku edycji posta bloga
Ostylowany w TailwindCSS html do widoku dodawania posta bloga
Podstrony dla panelu admina będą sterowane z osobnego kontrolera więc utwórzmy go
W panelu administracyjnym będzie można podejrzeć lubiane posty oraz śledzonych użytkowników
W panelu administracyjnym użytkownik będzie edytował swoje dane jak email, nazwisko itd.
Na podstronie edycji będzie kilka formularzy, które będziemy trzymać w osobnych plikach i ładować funkcją include
Załadowanie formularza funkcją include. Formularz będzie umożliwiał upload plików graficznych
HTML i CSS w TailwindCSS dla formularza edycji hasła użytkownika
Przed usunięciem użytkownika użytkownik będzie musiał podać aktualne hasło (narazie tylko ostylowany widok bez możliwości faktycznego usuwania)
Pasek powiadomień zniknie po 5 sekundach lub będzie go można zamknąć natychmiast poprzez kliknięcie krzyżyka
Gdy zapiszemy nowe dane użytkownika pokażemy komunikat "Saved", który zniknie po 3 sekundach z pomocą Alpine JS
Sterowanie wyświetlaniem zakładek przy pomocy Alpine JS
Nadpisanie bloku title dla każdej podstrony (tytuł zakładki przeglądarki)
Za pomocą funkcji include możemy ładować zewnętrzne pliki do szablonu html i dzięki temu uniknąć m.in. powtarzania kodu
Zamiast funkcji include możemy stosować komponenty, które są trudniejsze w użyciu ale oferują więcej możliwości
Zastosowanie funkcji path w plikach widoków
Zastosowanie bloku trans w Twig do tłumaczenia tekstu na stronie
Wykonanie połączenia z bazą danych. Stworzenie entity Post z polami, które będą jako kolumny w bazie danych w tabeli post. Stworzenie pliku migracji na podstawie entity
Odczytywanie danych w Symfony, edytowanie i usuwanie z bazy danych
Nie musimy pisać całości kodu samodzielnie, wystarczy kilka poleceń w konsoli i Symfony sam wygenereuje bezpieczny kod rejestracji użytkowników
Nie musimy pisać całości kodu samodzielnie, wystarczy kilka poleceń w konsoli i Symfony sam wygenereuje bezpieczny kod logowania użytkowników
Wylogowanie za pomocą formularza zabezpieczonego tokenem anty csrf
Niektóre ścieżki wymagają zalogowania przed dostępem, np. podstrona do dodawania nowego posta
Użytkownik zalogowany będzie widział link do wylogowania a niezalogowany linki do logowania i rejestracji
Zastosujemy konwencję Symfony do tworzenia formularzy zamiast tworzyć je ręcznie od podstaw
Reguły walidacji dla zapisania nowego posta zapiszemy w Post Entity
Formularz praktycznie ten sam co formularz tworzenia posta (poprzednie wideo)
Gdy wpiszemy błędne dane logowania podświetlimy błąd na czerwono
Stworzenie formularza i reguł walidacji według konwencji Symfony
Użytkownik będzie mógł zmienić swoje imię oraz adres email
Aby zmienić hasło trzeba będzie podać aktualne hasło
Aby usunąć użytkownika należy ze względów bezpieczeństwa najpierw podać aktualne hasło
Wykorzystamy mechanizm sesji do sterowania wyświetlaniem komunikatu o zapisaniu danych użytkownika
Użytkownik może mieć wiele postów
Wygenerujemy realistyczne dane do bazy danych - 3 użytkowników i każdy z nich będzie miał po 5 postów
Pobranie wszystkich postów z bazy danych i wyświetlenie ich na stronie głównej
Będziemy wyświetlali po 3 posty na stronę. Pod postami będą linki do paginacji
Użycie left join aby zmniejszyć liczbę zapytań do bazy danych
Wyciągnięcie szczegółów posta z bazy danych. Dzięki param converter Symfony wyciągnie dane za nas na podstawie parametru z adresu url
Dzięki formularzom napisanym w konwencji Symfony po wejściu na podstronę edycji, pola edytowanego posta mamy wypełnione automatycznie
Symfony sam znajdzie post do usunięcia na podstawie parametru id (Param Converter)
Na stronie głównej możemy również wyświetlić posty konkretnego użytkownika
Użytkownik może mieć jeden obrazek a obrazek należy do jednego użytkownika. Zapisanie ścieżki obrazka w bazie danych
Dokończenie obsługi formularzy do edycji i usuwania użytkownika (zapytania do bazy danych)
Finalna obsługa formularza do zmiany hasła - operacja na bazie danych
Kurs jest oparty o stworzenie prawdziwego projektu z wykorzystaniem Symfony 6 (jednego z najpopularniejszych frameworków języka PHP).
W trakcie kursu poznasz:
co nowego w PHP 8 (najnowsza wersja PHP, na której działa Symfony 6 użyty w kursie)
routing, middlewares
kontrolery
widoki
Tailwind CSS
Alpine Js
komponenty Live
zagadnienia bezpieczeństwa: autoryzacja i tokeny anty CSRF
formularze, sesje
operacje na bazie danych
upload plików
stworzysz API
i inne
W trakcie kursu stworzysz zaawansowaną aplikację mikroblog z następującymi funkcjonalnościami:
logowanie, rejestracja
lista postów
paginacja, sortowanie, wyszukiwanie, filtrowanie
aplikacja responsywna
polubienie/odlubienie postów bloga
śledzenie autora posta bloga
panel administracyjny
zmiana avatara
edycja danych użytkownika
wysyłka email
powiadomienia Pusher
i inne (zobacz darmowe wideo)
Przeczytaj, co piszą o innych moich kursach studenci:
I would probably say this course was more than the expected. Although I had some experience with Symfony ,but the course is so suitable for beginner and also to others who wants upgrade the Symfony knowledge to expertise. The instructor is great, has excellent knowledge of the content and also he is quick to response to resolve issue. I'm really grateful to Robert.
I am very excited about this course. I was familiar with Symfony before but this course gave me a deeper knowledge of it.
Thank you for your work, I am happy that I choose your course and finished it.
Actually, I am a senior software engineer and in some places in your code I want to do it in my way but in general, that is a perfect job, thank you!
Jeśli chcesz stworzyć w Symfony 6 ciekawą aplikację i przy okazji poznać najważniejsze funkcjonalności Symfony potrzebne przy budowie każdej aplikacji webowej - nie zwlekaj i zapisz się na kurs już dzisiaj.