Preskoči na sadržaj
Tehnologija

PHP vs React: zašto sam odabrao "zastarjelu" tehnologiju za svoj posao

Svi pričaju o Reactu, Next.js-u i modernim frameworkovima. Ja sam za svoj site svjesno odabrao PHP i čisti HTML. Evo zašto mislim da je to pametniji izbor za 90% poslovnih web stranica.

~75%
weba pokreće PHP
~300KB
React bundle prosječno
<1s
PHP page load
30 god.
PHP postoji od 1995.

Svaki put kada na LinkedInu objavim nešto o PHP-u, isti komentari se ponavljaju. "Zar to još netko koristi?" "Preseli se na React." "PHP je mrtav." A onda pogledam statistike i vidim da PHP pokreće tri četvrtine cijelog weba, uključujući WordPress, Facebookovu infrastrukturu i Wikipediju.

Ironično je da isti ljudi koji govore da je PHP mrtav svaki dan posjećuju stranice koje se vrte na njemu. Ali hajdemo dalje od anegdota i pogledajmo konkretne razloge zašto sam za webdesignbytomi.com svjesno odabrao PHP i statični HTML umjesto Reacta.

Kontekst: što moja stranica treba raditi

Prije nego usporedimo tehnologije, bitno je razumjeti kontekst. Moja stranica treba:

  • Prikazati informacije o uslugama i paketima
  • Omogućiti kontaktiranje putem forme i chata
  • Objavljivati blog članke (poput ovog)
  • Rangirati se na Googleu za lokalne pretrage
  • Učitavati se brzo na svim uređajima

Nijedna od ovih stvari ne zahtijeva kompleksnu JavaScript aplikaciju. Nema real-time dashboarda, nema drag-and-drop editora, nema stotina interaktivnih komponenti. To je, suštinski, digitalna brošura s kontakt formom i blogom.

I upravo tu leži ključna poanta cijelog članka: odabir tehnologije mora odgovarati problemu koji rješavate, a ne trendu koji vidite na Twitteru.

Zanimljiv podatak: Facebook je napisan u PHP-u (točnije, u Hacku koji je evoluirao iz PHP-a), a React je napravljen... u Facebooku. Dakle, PHP je dovoljno dobar za tvrtku koja je stvorila React.

Brzina učitavanja: gdje PHP dominira

Ovo je možda najvažniji argument za prezentacijske stranice. Pogledajmo što se dogodi kada posjetitelj otvori stranicu izgrađenu na različitim tehnologijama.

PHP/statični HTML pristup

Korisnik šalje zahtjev. Server odmah vraća gotov HTML. Preglednik ga prikazuje. Kraj priče. Moja stranica se učitava za ispod jedne sekunde, a ukupna veličina svih resursa je oko 150 KB uključujući slike.

React pristup (SPA)

Korisnik šalje zahtjev. Server vraća prazan HTML s jednim <div id="root">. Preglednik preuzima JavaScript bundle (tipično 300-500 KB samo za framework). JavaScript se izvršava. React renderira komponente u DOM. Tek tada korisnik vidi sadržaj. A ako treba podatke s API-ja, to je još jedan krug čekanja.

Konkretna razlika: Dok React stranica još učitava i parsira JavaScript, moja PHP stranica je već potpuno interaktivna. Na mobilnom internetu, ta razlika može biti 2-4 sekunde. Google mjeri Core Web Vitals i penalizira spore stranice u rangiranju.

A Next.js i SSR?

Zagovornici Reacta će reći: koristi Next.js koji ima server-side rendering. I u pravu su, Next.js rješava mnoge probleme klasičnog React SPA-a. Ali razmislite o tome: uzeli ste React (koji je client-side framework), dodali mu server-side rendering (što PHP radi od samog početka), i sada imate kompleksniji sustav koji radi isto što PHP radi iz kutije. Plus trebate Node.js server, build pipeline i značajno više znanja za održavanje.

SEO: Google voli ono što može pročitati

Za stranicu koja MORA rangirati na Googleu, ovo je ključno pitanje. Kada Google crawler dođe na PHP stranicu, odmah vidi sav sadržaj. Schema.org oznake, meta tagovi, heading struktura, tekst. Sve je tu od prvog trenutka.

Kada dođe na React SPA? Vidi prazan <div> i mora pokrenuti JavaScript da bi pročitao sadržaj. Google može renderirati JavaScript, ali to zahtijeva dodatne resurse i nije uvijek pouzdano. Neke stranice čekaju danima na indeksiranje jer je Googleov render budget ograničen.

Za stranicu koja se treba rangirati za izrada web stranica Zagreb ili web dizajn Krapina, zašto bih uopće riskirao s client-side renderiranjem?

Zanimljiv podatak: Googlebot ima "render budget" za svaku stranicu. Ako vaš JavaScript traje predugo ili ne uspije, Google jednostavno indeksira prazan sadržaj. Kod statičnog HTML-a taj rizik ne postoji jer je sadržaj odmah vidljiv.

Troškovi hostinga: matematika je jasna

Moj cjelokupni stack je Hetzner VPS za 4.5 eura mjesečno, Nginx i PHP 8.3. Na tom serveru vrti se i ova stranica i nekoliko drugih projekata. Godišnji trošak: oko 55 eura.

Za usporedbu, Node.js aplikacija zahtijeva process manager (PM2 ili slično), više memorije, pažljivije upravljanje procesima. Platforme poput Vercela ili Netlifya nude besplatne razine, ali uz ograničenja. Za ozbiljniji promet, cijene brzo rastu na 20-50 eura mjesečno ili više.

Za malu tvrtku koja razmišlja o troškovima, PHP hosting je jednostavno jeftiniji. A s hostingom i domenom koji su uključeni u moje pakete, klijenti nemaju nikakvih dodatnih troškova.

Kompleksnost i dependency hell

Ovo je argument koji se rijetko spominje u marketinškim člancima, ali svatko tko je radio s Node.js ekosustavom zna o čemu govorim.

Prosječan React projekt ima stotine, ponekad tisuće dependency paketa. Svaki od njih može imati sigurnosne ranjivosti, nekompatibilnosti ili jednostavno prestati s održavanjem. Pokušajte otvoriti React projekt star dvije godine i pokrenuti npm install. Velika je šansa da ćete naletjeti na deprecation upozorenja, sigurnosne ranjivosti i peer dependency konflikte.

// Tipičan output nakon npm install na starijem projektu: 47 packages are looking for funding 12 vulnerabilities (3 moderate, 7 high, 2 critical) npm warn deprecated inflight@1.0.6 npm warn deprecated rimraf@3.0.2 npm warn deprecated glob@7.2.3

PHP datoteka napisana 2020. godine? Kopirate je na server i radi. Nema build koraka, nema package managera, nema transpilacije. To je ogromna prednost za dugoročno održavanje.

Iz prakse: Klijentima isporučujem stranice koje rade godinama bez ikakvih intervencija u kodu. Nema ažuriranja dependencya, nema verzija koje treba pratiti, nema "breaking changeova" u novim verzijama frameworka. Uploadam datoteku, radi. Točka.

Želite stranicu koja radi godinama bez komplikacija?

Čist kod, brzo učitavanje, bez nepotrebnih frameworkova. Pogledajte što nudim.

Kada TREBA koristiti React?

Da budem fer, React je fantastičan alat za određene vrste projekata. Bilo bi nepošteno reći da PHP može sve što React može. Ne može. React briljira u situacijama koje zahtijevaju:

Kompleksne web aplikacije

Dashboardi s grafovima koji se ažuriraju u realnom vremenu, alati poput Figme ili Canve gdje korisnik interaktivno uređuje sadržaj, chat aplikacije s real-time porukama. Za ovakve projekte, React je odličan izbor jer upravlja kompleksnim stanjem aplikacije na elegantan način.

SaaS proizvode

Ako gradite proizvod s korisničkim računima, višestrukim pogledima, filtriranjem i sortiranjem podataka, React i njegov komponentni pristup ima smisla. Trello, Notion, Slack - sve su to aplikacije gdje React sjaji.

Projekte s velikim timom

Ako na projektu radi 10+ developera, Reactov komponentni model pomaže organizirati kod. Svaki developer radi na svojoj komponenti, testira je izolirano i integrira u cjelinu. Za solo developera ili mali tim, ta prednost je manje relevantna.

Kada je PHP/statični HTML bolji izbor?

Za većinu projekata s kojima se susrećem u praksi. Konkretno:

  • Prezentacijske stranice tvrtki i obrta - glavna svrha je informirati, ne interagirati
  • Portfolio stranice - trebaju biti brze i vizualno privlačne, ne kompleksne
  • Landing pageovi - cilj je konverzija, a svaka milisekunda učitavanja smanjuje stopu
  • Blogovi i content marketing - tekst, slike, SEO. PHP to radi savršeno
  • Lokalni biznisi - lokalni SEO je kritičan, a server-side rendering tu ima prednost
  • Projekti s ograničenim budžetom - jeftiniji hosting, brža izrada, manje održavanja

Kad pogledam različite vrste poslovnih stranica koje izrađujem, nijedna od njih ne zahtijeva React. Frizerski salon ne treba virtual DOM. Knjigovodstveni ured ne treba state management. Autoservis ne treba hydration.

Direktna usporedba: PHP vs React

Evo konkretne usporedbe za kontekst poslovne web stranice male tvrtke, ne za web aplikaciju.

KriterijPHP/HTMLReact
Brzina prvog učitavanja✓ brže✕ sporije
SEO iz kutije✕ treba SSR
Trošak hostinga✓ 4-10€/mj✕ 10-30€/mj
Vrijeme izrade✓ brže✕ 30-50% duže
Održavanje koda✓ minimalno✕ redovito
Dependency rizik✓ nema✕ visok
Kompleksne interakcije✕ ograničeno✓ odlično
Real-time funkcionalnosti✕ treba dodatno✓ prirodno
Veliki razvojni timovi~ ok✓ bolje
SPA korisničko iskustvo

Rezultat je jasan: za prezentacijsku stranicu, PHP pobjeđuje u svim kategorijama koje su bitne. React pobjeđuje u kategorijama koje prezentacijska stranica ne koristi.

Argument koji se rijetko čuje

Postoji jedan razlog zašto mnogi developeri preporučuju React za svaki projekt, i rijetko se o tome otvoreno govori: React je popularniji na tržištu rada.

Developer koji gradi vaš projekt u Reactu dobiva React iskustvo za svoj CV. Developer koji ga gradi u PHP-u dobiva... PHP iskustvo, što na tržištu rada manje "sjaji". To ne znači da React developer svjesno donosi krivu odluku. Jednostavno je ljudska priroda da biramo alate koji nam donose višestruku korist.

Ali vaš cilj kao vlasnika tvrtke nije zaposliti developera. Vaš cilj je imati web stranicu koja privlači klijente, brzo se učitava i košta razumno za održavanje. I za taj cilj, jednostavnija tehnologija je gotovo uvijek bolja.

Zanimljiv podatak: WordPress (koji je baziran na PHP-u) pokreće oko 43% svih web stranica na internetu. Dodajte tome ostale PHP frameworkove (Laravel, Symfony) i statične stranice, i dolazite do brojke od oko 75% ukupnog weba. React pokreće impresivne aplikacije, ali po tržišnom udjelu nije ni blizu.

Moj pristup: pravi alat za pravi posao

Ne postoji "najbolja" tehnologija. Postoji prava tehnologija za određeni problem. I kada klijent dođe s potrebom za poslovnom stranicom, moj odgovor je uvijek isti: čisti HTML, CSS i minimalan JavaScript, s PHP-om na backendu za kontakt formu, chat i dinamičke funkcionalnosti.

Rezultat? Stranice koje se učitavaju za ispod jedne sekunde, postižu 90+ na Google PageSpeed testu, savršeno rade na svim uređajima i koštaju višestruko manje za hosting i održavanje od ekvivalentne React aplikacije.

A ako vam netko kaže da se WordPress ili React moraju koristiti za vašu stranicu mali obrt ili firmu, pitajte zašto. Ako odgovor uključuje riječi poput "moderno", "trendy" ili "svi to koriste", razmislite ponovno.

Zaključak: React je fantastičan za ono za što je napravljen, kompleksne web aplikacije. Ali za prezentacijsku stranicu malog biznisa? To je kao koristiti kamion za odvesti jednu vrećicu iz dućana. Može, ali postoji bolji način. Pogledajte moj pristup dizajnu po mjeri i uvjerite se sami.

Česta pitanja

Ne. PHP pokreće oko 75% svih web stranica na svijetu, uključujući WordPress, Facebook i Wikipediju. PHP 8.3+ donosi JIT kompilaciju, union typove, named argumente i odlične performanse. "Zastario" je mit koji šire oni koji ne poznaju moderni PHP.
React je odličan za kompleksne web aplikacije s puno interaktivnosti, poput dashboarda, SaaS proizvoda, chat aplikacija ili alata za uređivanje. Za prezentacijske web stranice, blogove i landing pageove, PHP ili statični HTML su bolji, brži i jeftiniji izbor.
Statični HTML i server-side PHP imaju jasnu prednost za SEO. Google odmah vidi sav sadržaj bez čekanja na JavaScript renderiranje. React SPA zahtijeva dodatni rad (SSR ili Next.js) da bi bio SEO-friendly, što povećava kompleksnost i troškove.
PHP hosting je značajno jeftiniji. Kvalitetan VPS za PHP stranicu košta 4-10 eura mjesečno. React/Node.js aplikacija obično zahtijeva 10-30 eura mjesečno, a platforme poput Vercela ili Netlifya mogu koštati i više za veći promet. Više o troškovima pročitajte u vodiču o cijenama web stranica.
Da, to je čak i preporučeni pristup za većinu projekata. Možete imati PHP ili statični HTML za većinu stranice, a React dodati samo za specifične interaktivne komponente koje to zaista zahtijevaju. Tako dobivate brzu stranicu bez gubitka interaktivnosti tamo gdje vam je potrebna.
Zato što je React popularan na tržištu rada i developeri ga žele koristiti za svoje portfolije. To je razumljivo, ali ne znači da je React pravi alat za svaki projekt. Za poslovnu web stranicu male tvrtke, React dodaje nepotrebnu kompleksnost, veće troškove i duže vrijeme izrade bez konkretne koristi.

Trebate web stranicu bez nepotrebne kompleksnosti?

Napravit ću vam brzu, SEO-optimiziranu stranicu u čistom kodu. Bez frameworkova, bez komplikacija.