PHP Developer Cheatsheet/Cookbook
Ten dokument to skrócony przewodnik po kluczowych narzędziach, które każdy deweloper PHP powinien znać. Zawiera podstawowe informacje o ich przeznaczeniu oraz przykłady instalacji/użycia. Materiał bazuje na artykule "Narzędzia, które każdy PHP Developer powinien znać" (learn.kowalskiadrian.pl).
1. Edytory Kodu i IDE
PhpStorm
- Opis: Jedno z najbardziej zaawansowanych IDE dla PHP. Oferuje autouzupełnianie, inteligentne podpowiedzi, szybkie refaktoryzacje i wbudowany debugger. Posiada pełną integrację z popularnymi frameworkami (Laravel, Symfony) i systemami zarządzania wersjami (Git). Wspiera również Composer i Docker, co czyni go kompleksowym środowiskiem pracy do dużych projektów.
- Instalacja/Użycie: Pobierz instalator ze strony JetBrains (dostępna wersja trial).
Visual Studio Code (VS Code)
- Opis: Lekkie, darmowe i otwarte IDE z bogatym ekosystemem wtyczek. Dzięki rozszerzeniom (np. Intelephense, PHP Debug) można dostosować je do rozwoju PHP, uzyskując funkcje takie jak autouzupełnianie czy debugowanie. Obsługuje Docker i Git, jest wszechstronnym wyborem dla początkujących i zaawansowanych.
- Instalacja/Użycie: Pobierz ze strony VS Code, instaluj wtyczki z Marketplace.
Notepad++
- Opis: Szybki i lekki edytor tekstowy idealny do prostych, szybkich poprawek w kodzie PHP. Obsługuje wiele języków programowania, zużywa mało zasobów i radzi sobie z dużymi plikami. Choć nie oferuje zaawansowanych funkcji IDE, jest świetnym, darmowym narzędziem uzupełniającym.
- Instalacja/Użycie: Pobierz ze strony Notepad++.
2. Systemy Wersjonowania
Git
GitKraken
- Opis: Wizualny klient Gita, który upraszcza zarządzanie repozytoriami dzięki intuicyjnemu interfejsowi graficznemu. Oferuje przegląd historii commitów, łatwe zarządzanie gałęziami oraz integrację z popularnymi platformami hostingu kodu (GitHub, GitLab). Ceniony za czytelność i łatwość obsługi.
- Instalacja/Użycie: Pobierz ze strony GitKraken.
GitHub, GitLab, Bitbucket
- Opis: Platformy hostingu repozytoriów, które umożliwiają współdzielenie kodu, zarządzanie wersjami i współpracę w zespole.
- GitHub: Najpopularniejszy, z szerokim ekosystemem wtyczek i integracji.
- GitLab: Wyróżnia się wbudowanymi narzędziami CI/CD (Continuous Integration/Continuous Deployment).
- Bitbucket: Ceniony za integrację z narzędziami Atlassian (np. Jira).
- Użycie: Zarejestruj konto na wybranej platformie i stwórz/sklonuj repozytorium.
3. Frameworki PHP
Laravel
Symfony
CakePHP
4. Debugowanie i Profilowanie
Xdebug
Symfony Profiler
- Opis: Wbudowane narzędzie w framework Symfony, które dostarcza szczegółowe informacje o każdym żądaniu do aplikacji. Pozwala monitorować wydajność, analizować zapytania SQL, debugować błędy, a także śledzić zużycie pamięci i czas wykonania poszczególnych części kodu. Posiada intuicyjny interfejs dostępny w trybie deweloperskim.
- Użycie: Aktywny automatycznie w środowisku deweloperskim aplikacji Symfony.
Blackfire.io
- Opis: Zaawansowane narzędzie do profilowania aplikacji PHP, również w środowisku produkcyjnym. Pozwala na szczegółową analizę wydajności, identyfikując najbardziej zasobożerne fragmenty kodu. Umożliwia porównywanie wyników profilowania z różnych wersji aplikacji, co pomaga w mierzeniu efektów optymalizacji.
- Instalacja/Użycie: Wymaga instalacji agenta i sondy Blackfire, konfiguracja konta.
Laravel Telescope
5. Bazy Danych
phpMyAdmin
- Opis: Popularne, oparte na przeglądarce narzędzie do zarządzania bazami danych MySQL/MariaDB. Umożliwia wykonywanie zapytań SQL, zarządzanie tabelami, import/eksport danych i tworzenie kopii zapasowych, bez konieczności znajomości zaawansowanych komend SQL.
- Instalacja/Użycie: Zwykle preinstalowane na serwerach hostingowych lub jako część pakietów deweloperskich (XAMPP, WAMP, MAMP).
pgAdmin
- Opis: Kompletne, graficzne narzędzie do zarządzania bazami danych PostgreSQL. Oferuje przejrzysty interfejs do tworzenia i edycji tabel, wykonywania zapytań SQL, monitorowania serwera oraz analizy danych. Jest doskonałym wyborem dla programistów korzystających z PostgreSQL.
- Instalacja/Użycie: Pobierz instalator ze strony pgAdmin.
DBeaver
- Opis: Uniwersalne narzędzie do zarządzania wieloma różnymi bazami danych, w tym MySQL, PostgreSQL, SQLite, Oracle i innymi. Oferuje rozbudowany edytor SQL, wizualizację schematów baz danych i funkcje eksportu danych, będąc idealnym rozwiązaniem dla deweloperów pracujących z różnymi technologiami bazodanowymi.
- Instalacja/Użycie: Pobierz ze strony DBeaver.
6. Testowanie Aplikacji
PHPUnit
Behat
Mockery
7. Narzędzia DevOps
Docker
- Opis: Narzędzie do tworzenia, wdrażania i uruchamiania aplikacji w "kontenerach" – lekkich, przenośnych i izolowanych środowiskach. Umożliwia łatwe replikowanie środowiska produkcyjnego na lokalnym komputerze, eliminując problemy "u mnie działa" i upraszczając wdrażanie aplikacji.
- Instalacja: Pobierz Docker Desktop dla swojego systemu operacyjnego.
Composer
- Opis: Menedżer zależności dla PHP, niezbędny w każdym nowoczesnym projekcie PHP. Automatycznie pobiera, instaluje i aktualizuje biblioteki wymagane przez projekt, a także obsługuje autoloading klas, co upraszcza organizację kodu i zarządzanie wersjami.
- Instalacja: Patrz sekcja "3. Frameworki PHP" (pod Laravel, Symfony, CakePHP).
Vagrant
- Opis: Narzędzie do tworzenia i zarządzania przenośnymi, odtwarzalnymi środowiskami wirtualnymi. Pozwala każdemu członkowi zespołu pracować w identycznym środowisku, co eliminuje problemy związane z różnicami w konfiguracji lokalnej. Obsługuje wielu dostawców maszyn wirtualnych (np. VirtualBox, VMware).
- Instalacja: Pobierz ze strony Vagrant.
8. Automatyzacja i CI/CD
GitLab CI/CD
- Opis: Wbudowane narzędzie w platformie GitLab do automatyzacji procesów Continuous Integration/Continuous Deployment. Umożliwia definiowanie złożonych "pipeline'ów" za pomocą plików YAML, automatyzując testowanie, budowanie i wdrażanie aplikacji po każdej zmianie w kodzie.
- Użycie: Skonfiguruj plik
.gitlab-ci.yml
w swoim repozytorium GitLab.
GitHub Actions
- Opis: Narzędzie do automatyzacji zadań bezpośrednio w ramach projektów hostowanych na GitHub. Pozwala na definiowanie procesów CI/CD oraz innych akcji, wykorzystując szeroką gamę gotowych "akcji" lub tworząc własne. Jest ściśle zintegrowane z ekosystemem GitHub.
- Użycie: Skonfiguruj pliki
.yml
w katalogu .github/workflows/
w repozytorium GitHub.
Jenkins
- Opis: Jedno z najstarszych i najbardziej wszechstronnych narzędzi CI/CD. Pozwala na automatyzację niemal każdego procesu w cyklu życia oprogramowania, od testowania po wdrażanie, dzięki bogatej bibliotece wtyczek. Jest skalowalny i elastyczny, popularny w dużych zespołach.
- Instalacja: Pobierz ze strony Jenkins (dostępne pakiety instalacyjne, obrazy Docker).
9. Hostowanie Aplikacji i Infrastruktura Chmurowa
Azure (Microsoft)
- Opis: Platforma chmurowa Microsoftu oferująca szeroki zakres usług dla hostowania i zarządzania aplikacjami PHP. Możesz uruchamiać aplikacje w maszynach wirtualnych (VM), kontenerach Docker lub korzystać z usług PaaS. Zapewnia skalowanie, narzędzia analityczne i monitorujące.
- Użycie: Zarejestruj konto na azure.microsoft.com i eksploruj dostępne usługi.
AWS (Amazon Web Services)
- Opis: Lider wśród dostawców usług chmurowych, oferujący wsparcie dla aplikacji PHP na wielu poziomach (od maszyn wirtualnych EC2, przez kontenery ECS/EKS, po PaaS Elastic Beanstalk). Znany z wysokiej dostępności, skalowalności i szerokiej gamy usług, co czyni go popularnym wyborem w dużych projektach.
- Użycie: Zarejestruj konto na aws.amazon.com i eksploruj dostępne usługi.
Heroku
- Opis: Platforma PaaS (Platform-as-a-Service), która umożliwia szybkie wdrażanie i zarządzanie aplikacjami PHP bez konieczności złożonej konfiguracji infrastruktury. Ceniona za prostotę i szybkość konfiguracji, co czyni ją idealną dla małych i średnich projektów oraz do szybkiego startu.
- Użycie: Zarejestruj konto na heroku.com i wdróż aplikację poprzez Git.
10. Analiza i Czystość Kodu
PHPStan
Prettier i PHP-CS-Fixer
11. Bezpieczeństwo Aplikacji
OWASP ZAP (Zed Attack Proxy)
- Opis: Narzędzie do testowania aplikacji webowych pod kątem luk bezpieczeństwa. Umożliwia przeprowadzanie zarówno automatycznych skanów, jak i ręcznych testów w celu wykrycia podatności takich jak SQL Injection, XSS czy błędy konfiguracji. Integruje się z procesami CI/CD.
- Instalacja/Użycie: Pobierz ze strony OWASP ZAP.
Symfony Security Checker
CSRF, XSS i SQL Injection
- Opis: Trzy najczęściej spotykane typy ataków w aplikacjach webowych:
- CSRF (Cross-Site Request Forgery): Atak, w którym złośliwa strona wymusza na uwierzytelnionym użytkowniku wykonanie nieautoryzowanej akcji. Ochrona: Stosowanie tokenów CSRF w formularzach.
- XSS (Cross-Site Scripting): Atak polegający na wstrzyknięciu złośliwego kodu JavaScript do strony, który jest wykonywany w przeglądarce ofiary. Ochrona: Prawidłowa sanifikacja i escapowanie danych wejściowych i wyjściowych.
- SQL Injection: Atak polegający na wstrzyknięciu złośliwych zapytań SQL do bazy danych, co może prowadzić do nieautoryzowanego dostępu lub modyfikacji danych. Ochrona: Stosowanie zapytań z parametrami (prepared statements) lub ORM (np. Doctrine, Eloquent).
12. Monitorowanie i Logowanie
Monolog
Sentry
SŁOWNICZEK POJĘĆ
- IDE: Zintegrowane Środowisko Deweloperskie. Kompleksowe narzędzie do pisania, debugowania, zarządzania kodem.
- System kontroli wersji: Narzędzie do śledzenia zmian w kodzie i zarządzania historią projektu, umożliwiające współpracę zespołową (np. Git).
- Framework PHP: Zbiór bibliotek i narzędzi, które ułatwiają i przyspieszają tworzenie aplikacji PHP, często narzucając pewną strukturę.
- Composer: Menedżer zależności dla PHP, służy do automatycznej instalacji, aktualizacji i zarządzania bibliotekami i pakietami projektu.
- ORM (Object-Relational Mapper): Technika lub biblioteka (np. Eloquent w Laravelu), która mapuje obiekty kodu na tabele w bazie danych, umożliwiając obiektową interakcję z danymi.
- CLI (Command Line Interface): Interfejs wiersza poleceń, umożliwiający interakcję z systemem operacyjnym lub aplikacjami za pomocą tekstowych komend.
- Debugowanie: Proces znajdowania, analizowania i usuwania błędów (bugów) w kodzie programu.
- Profilowanie: Analiza wydajności aplikacji w celu identyfikacji i optymalizacji "wąskich gardeł" kodu, które spowalniają działanie.
- Testy jednostkowe: Testy sprawdzające najmniejsze, niezależne jednostki kodu (np. pojedyncze funkcje lub metody) w izolacji.
- Testy behawioralne (BDD): Testy opisujące zachowanie aplikacji z perspektywy użytkownika końcowego lub biznesowej, często pisane w języku naturalnym (np. Gherkin).
- Obiekty mockujące (Mocks): Atrapy obiektów, które naśladują zachowanie prawdziwych obiektów w testach jednostkowych, pozwalając na izolowanie testowanego komponentu od jego rzeczywistych zależności.
- DevOps: Kultura i zbiór praktyk łączących rozwój oprogramowania (Development) z operacjami IT (Operations), mające na celu skrócenie cyklu życia rozwoju systemu i szybsze dostarczanie wartości.
- Docker: Narzędzie do tworzenia, wdrażania i uruchamiania aplikacji w "kontenerach" – lekkich, przenośnych i izolowanych środowiskach, które zawierają wszystko, czego aplikacja potrzebuje do działania.
- Vagrant: Narzędzie do tworzenia i zarządzania przenośnymi, odtwarzalnymi środowiskami wirtualnymi, które zapewniają spójne środowisko deweloperskie dla całego zespołu.
- CI/CD (Continuous Integration/Continuous Deployment): Zestaw praktyk, w których kod jest często integrowany, automatycznie testowany, a następnie automatycznie wdrażany do środowisk testowych lub produkcyjnych.
- Chmura (Cloud Computing): Model dostarczania zasobów obliczeniowych (serwery, bazy danych, oprogramowanie, analityka) przez internet, eliminujący potrzebę posiadania i zarządzania fizyczną infrastrukturą.
- PaaS (Platform-as-a-Service): Usługa chmurowa, która dostarcza platformę do tworzenia, uruchamiania i zarządzania aplikacjami, abstrakując deweloperów od zarządzania podstawową infrastrukturą.
- Analiza statyczna kodu: Metoda analizowania kodu źródłowego programu bez jego faktycznego uruchamiania, w celu wykrycia potencjalnych błędów, luk bezpieczeństwa czy niezgodności ze standardami.
- CSRF (Cross-Site Request Forgery): Atak, w którym złośliwa strona internetowa wymusza na uwierzytelnionym użytkowniku wykonanie niechcianej akcji na innej stronie, na której użytkownik jest zalogowany.
- XSS (Cross-Site Scripting): Atak polegający na wstrzyknięciu złośliwego kodu (zazwyczaj JavaScript) do strony internetowej, który jest wykonywany w przeglądarce ofiary, co może prowadzić do kradzieży danych sesji czy deface'u.
- SQL Injection: Atak polegający na wstrzyknięciu złośliwego kodu SQL do zapytań bazodanowych aplikacji, co może pozwolić atakującemu na dostęp, modyfikację lub usunięcie danych.
- Logowanie: Proces rejestrowania zdarzeń, komunikatów i danych z aplikacji w celu monitorowania jej działania, diagnozowania problemów i analizy zachowania systemu.
- Sentry: Platforma do monitorowania błędów i wydajności w czasie rzeczywistym, która automatycznie zbiera informacje o wyjątkach i problemach w aplikacjach, dostarczając szczegółowe dane do szybkiego debugowania.
Ten cheatsheet to punkt wyjścia. Pełne opanowanie narzędzi wymaga głębszej nauki i praktyki. Regularne aktualizowanie wiedzy jest kluczowe w pracy dewelopera PHP.