Etap 1: Przygotowanie środowiska pracy

5.2 version
Maintained Unmaintained
5.0

Przygotowanie środowiska pracy

Zanim rozpoczniemy pracę nad projektem, musimy upewnić się, że mamy właściwe środowisko pracy. To bardzo ważne. Narzędzia programistyczne, którymi dzisiaj dysponujemy, bardzo różnią się od tych, których używaliśmy 10 lat temu. Przeszły pozytywną zmianę, szkoda byłoby zatem z nich nie skorzystać. Odpowiednio dobrane narzędzia bardzo ułatwią nam pracę.

Proszę, nie pomijaj tego kroku. Przeczytaj przynajmniej ostatnią sekcję o Symfony CLI.

Komputer

Potrzebujesz komputera. Dobra wiadomość jest taka, że może na nim działać dowolny, popularny system operacyjny: macOS, Windows lub Linux. Symfony i wszystkie narzędzia, których będziemy używać, są kompatybilne z każdym z nich.

Podjęte decyzje projektowe

Chciałbym szybko przejść przez wybór dostępnych opcji. Na potrzeby tej książki podjąłem kilka decyzji projektowych kierując się swoimi doświadczeniami.

Użyjemy PostgreSQL do wszystkiego: od kolejek (ang. queue), przez magazyn pamięci podręcznej (ang. cache), aż do przechowywania sesji (ang. session storage). Dla większości projektów PostgreSQL jest rozwiązaniem idealnym - dobrze się skaluje i pozwala uprościć infrastrukturę, dzięki czemu musimy zarządzać tylko jedną usługą.

Na końcu tej książki nauczymy się w jaki sposób używać RabbitMQ do obsługi kolejek i Redis do obsługi sesji.

IDE

Możesz użyć notatnika, jeśli chcesz, aczkolwiek nie polecam.

Miałem okazję pracować w Textmate - nigdy więcej. Komfort korzystania z „prawdziwego” IDE jest bezcenny. Autouzupełnianie, automatyczne dodawanie i sortowanie instrukcji use, czy płynne przechodzenie między kolejnymi plikami projektu, to tylko kilka z wielu funkcji, które zwiększą Twoją produktywność oraz wygodę pracy.

Osobiście polecam skorzystać z jednego z dwóch IDE: Visual Studio Code lub PhpStorm. Pierwszy z nich jest darmowy, drugi już nie, ale posiada za to dużo lepszą integrację z Symfony (dzięki wtyczce Symfony Support Plugin) - wybór zostawiam Tobie. Pewnie chcielibyście wiedzieć, z którego IDE osobiście korzystam? Ta książka została napisana z wykorzystaniem Visual Studio Code.

Terminal

Bardzo często będziemy przełączać się między IDE a terminalem. Możesz używać terminala wbudowanego w IDE, ale ja wolę używać systemowego, aby mieć więcej miejsca.

Linux posiada wbudowany Terminal. Na MacOS użyj iTerm2. W systemie Windows Hyper jest dobrym wyborem.

Git

W mojej ostatniej książce polecałem Subversion jako system kontroli wersji. Wygląda na to, że teraz wszyscy używają Gita.

Jeśli używasz systemu Windows, zainstaluj Git BASH.

Upewnij się, że wiesz, jak wykonywać podstawowe operacje, takie jak: git clone, git log, git show, git diff, git checkout, …

PHP

Będziemy używać Dockera dla usług, lecz PHP lubię mieć zainstalowany na lokalnym komputerze dla wydajności, stabilności i prostoty. Nazywaj mnie staromodnym, jeśli chcesz, ale połączenie lokalnego PHP i Dockera jest dla mnie idealne.

Użyj PHP 8.0 i sprawdź, czy następujące rozszerzenia PHP są zainstalowane. Jeżeli nie, zainstaluj je teraz: intl, pdo_pgsql, xsl, amqp, gd, openssl, sodium. Opcjonalnie możesz zainstalować również redis, curl i zip.

Możesz sprawdzić aktualnie włączone rozszerzenia poprzez php -m.

Będziemy także potrzebować php-fpm, jeśli jest dostępny na Twojej platformie. Możesz również wykorzystać php-cgi.

Composer

Zarządzanie zależnościami jest obecnie niezbędne w projekcie Symfony. Pobierz najnowszą wersję Composer, narzędzia do zarządzania pakietami dla PHP.

Jeśli nie znasz narzędzia Composer, poświęć chwilę na zapoznanie się z nim.

Wskazówka

Nie musisz wpisywać pełnych nazw poleceń: composer req robi to samo co composer require, użyj composer rem zamiast composer remove, ….

NodeJS

Co prawda nie będziemy pisali dużo kodu w JavaScript, ale będziemy używali narzędzi napisanych w JavaScript/NodeJS do zarządzania naszymi zasobami (ang. assets). Upewnij się, że masz zainstalowany NodeJS oraz narzędzie do zarządzania pakietami Yarn.

Docker i Docker Compose

Usługi będą zarządzane przez platformę Docker oraz narzędzie Docker Compose. Zainstaluj je, a następnie uruchom Dockera. Jeśli nie znasz Dockera, poznaj go. Nie ma powodów do obaw, cały proces będzie bardzo prosty. Bez dziwnych konfiguracji, bez skomplikowanych ustawień.

Symfony CLI

Wreszcie, co nie mniej ważne, wykorzystamy symfony CLI, aby zwiększyć naszą produktywność. Od uruchomienia lokalnego serwera WWW, po pełną integrację Dockera i obsługę SymfonyCloud - oszczędzimy mnóstwo czasu.

Zainstaluj Symfony CLI i dodaj jego ścieżkę do zmiennej $PATH. Załóż konto SymfonyConnect, jeśli jeszcze go nie masz, i zaloguj się przez symfony login.

Aby korzystać z HTTPS lokalnie, musimy również zainstalować urząd certyfikacji (ang. Certificate Authority ), aby włączyć obsługę TLS. Wykonaj następujące polecenie:

1
$ symfony server:ca:install

Sprawdź, czy Twój komputer spełnia wszystkie niezbędne wymagania, wykonując następujące polecenie:

1
$ symfony book:check-requirements

Jeśli masz ochotę, możesz również uruchomić serwer proxy Symfony. Jest to opcjonalne, ale pozwala na uzyskanie nazwy domeny lokalnej kończącej się na .wip w Twoim projekcie.

Gdy wykonujemy polecenie w terminalu, prawie zawsze będziemy je poprzedzać słowem symfony, jak na przykład symfony composer zamiast samego composer, lub symfony console zamiast ./bin/console.

Głównym powodem jest to, że narzędzie Symfony CLI automatycznie ustawia niektóre zmienne środowiskowe w oparciu o usługi działające na Twojej maszynie poprzez Dockera. Te zmienne środowiskowe są dostępne dla żądań (ang. requests) HTTP, ponieważ lokalny serwer WWW wstrzykuje je automatycznie. Tak więc, użycie symfony w konsoli gwarantuje, że działanie aplikacji będzie takie samo w linii komend jak na stronie WWW.

Ponadto, Symfony CLI automatycznie wybiera „najlepszą” możliwą wersję PHP dla projektu.


This work, including the code samples, is licensed under a Creative Commons BY-NC-SA 4.0 license.