PHP: co w nim budujemy i dlaczego
PHP spotykamy tam, gdzie żyje hosting: w WHMCS, Pterodactylu i jego motywach, w małych stronach bez frameworka i w API, które ma działać na każdym serwerze.
PHP na prawdziwych zrzutach
Projekty z tej strony na ekranach z portfolio i case studies, każdy z krótkim opisem i drogą do pełnego.
Kiedy PHP, a kiedy coś innego
Technologia ma pasować do miejsca, w którym kod będzie działał, i do zespołu, który go przejmie. Ostateczny wybór zapada przy wycenie, razem z Tobą.
Wybieramy PHP
Moduły do systemów rozliczeń
Moduły Flaem dla WHMCS, HostBill, Paymenter i Blesta mają testy w PHPUnit. Te systemy ładują dodatki tylko w PHP, więc to jedyna droga, żeby hosting sprzedawał usługi z platformy.
Motywy i dodatki do Pterodactyla
Panel Pterodactyla stoi na Laravelu. Motyw WaveHost to panel gier w barwach klienta, zbudowany na kodzie Pterodactyla.
Małe API bez kroku budowania
ghapi to API statystyk GitHuba w czystym PHP, bez frameworka. Wdrożenie to skopiowanie plików, a kolektor czyta tylko gałęzie, które się przesunęły.
Strony na każdym hostingu
Strona DualFroz ma prosty router i HTML przygotowany na serwerze. Treść jest w pierwszej odpowiedzi, a strona działa na każdym hostingu z PHP.
Sklep bez ciężkiego frameworka
bazaar ma katalog, koszyk, płatność przez Stripe Checkout, konta klientów i panel admina na własnym mikroframeworku. Zapytania idą wyłącznie przez przygotowane instrukcje PDO, a formularze mają ochronę CSRF.
Przejęcie istniejącego projektu
Działający system w PHP przejmujemy od przeglądu kodu i listy ryzyk. Często taniej jest go naprawić i rozwijać, niż przepisywać od zera.
Wybieramy coś innego
Nowa platforma na lata
Platforma, która ma rosnąć latami, dostaje rdzeń w Ruście i panel w TypeScripcie. PHP obsługuje jedno żądanie i kończy pracę, a platformie potrzebne są stale działające procesy i kolejki.
Połączenia na żywo i głos
Klasyczny PHP kończy pracę po każdym żądaniu, więc nie trzyma otwartych połączeń. Serwery Plazera z WebSocketem i rozmowami głosowymi są w Go.
Agent na serwerze
Agent na cudzej maszynie nie może zależeć od zainstalowanego PHP i jego rozszerzeń. Agenty Flaem są w Go, jako pojedyncze pliki.
Panel z konsolą i wykresami
HTML z serwera wystarcza prostej stronie, ale panel z konsolą na żywo i wykresami piszemy w React i TypeScripcie. Tak są zbudowane panel Flaem i panele klienta.
Bot Discord
Bot musi stale trzymać połączenie z Discordem, a PHP uruchamiany na żądanie do tego nie pasuje. Boty piszemy w Pythonie z discord.py albo w TypeScripcie.
Długie zadania w tle
Zakładanie serwerów i synchronizacje trwają dłużej niż jedno żądanie. W WaveHost robi to osobny proces z kolejkami BullMQ w TypeScripcie, a we Flaem usługi w Ruście i Go.
PHP w porównaniu, punkt po punkcie
Każda potrzeba w jednym wierszu, a obok siebie to, co w tej sprawie daje każda z dwóch kolumn.
Moduł do WHMCS
Hosting współdzielony
Nowa platforma na lata
Wdrożenie
Otwarte połączenia na żywo
Motyw albo dodatek do Pterodactyla
Zadania w tle
PHP w całym naszym kodzie
Ile linii napisaliśmy w PHP i jaką część wszystkiego, co napisaliśmy, to stanowi. Liczymy linie dodane w commitach naszych repozytoriów, osobno dla każdego języka.
Biblioteki, na których stoją te projekty
Z plików zależności naszych repozytoriów. Przy każdej jedno zdanie o tym, do czego jej używamy.
PHP 8.2 bez frameworka
API statystyk i strona osobista.
Laravel
Pterodactyl i jego motywy.
PHPUnit
Testy modułów rozliczeniowych.
sodium i openssl
Kryptografia z biblioteki standardowej.
Nasze zmiany w cudzych projektach w PHP
32 przyjęte zmiany w 20 repozytoriach. Opiekunowie tych projektów przejrzeli nasz kod i włączyli go do swojego.
Tydzień po tygodniu
Udział języków w naszych zmianach
- PHP32 26%
- Go33 26%
- JavaScript25 20%
- C#11 8,8%
- Rust10 8,0%
- Perl i JavaScript6 4,8%
- Python6 4,8%
- TypeScript2 1,6%
- KanboardProsty system zarządzania projektami w metodzie kanban, do postawienia na własnym serwerze.4 przyjęte zmiany9904 gwiazdki na GitHubie
- PHPMailerKlasyczna biblioteka PHP do wysyłania poczty, używana przez WordPressa i wiele innych systemów.3 przyjęte zmiany22 310 gwiazdek na GitHubie
- Spiral TestingZestaw narzędzi do testów aplikacji na frameworku Spiral w PHP.3 przyjęte zmiany7 gwiazdek na GitHubie
- WhoopsCzytelna strona błędu dla aplikacji PHP, znana z Laravela.2 przyjęte zmiany13 230 gwiazdek na GitHubie
- PredisElastyczny i kompletny klient Redis i Valkey dla PHP.2 przyjęte zmiany7778 gwiazdek na GitHubie
- SatisGenerator statycznego repozytorium pakietów Composer dla prywatnych bibliotek PHP.2 przyjęte zmiany3306 gwiazdek na GitHubie
Inne technologie i gdzie działa ich kod
Każda ma swoją stronę z projektami na prawdziwych ekranach i porównaniem z alternatywami.
Pytania o PHP
Odpowiedzi o PHP, naszych projektach i liczbach na tej stronie.
Czytaj dalej
Opisy projektów z tej strony i przegląd wszystkich technologii.
Projekt w PHP?
Opisz, co chcesz zbudować. Odpiszemy w godzinę i powiemy wprost, czy ta technologia jest dobrym wyborem.


