PHP

Johdatus PHP-ohjelmointiin

Mikä PHP on?

PHP (eli PHP Hypertext Preprocessor) on palvelinpuolella suoritettava, tulkattava komentosarjakieli. Se on yksi maailman käytetyimmistä ohjelmointikielistä, sillä valtaosa verkkosivustoista hyödyntää PHP:tä sisällönhallintajärjestelmien (CMS), kuten WordPressin, WooCommercen ja Drupalin, kautta. Vaikka PHP ei ole uusin tai trendikkäin teknologia, se on vakiintunut keskeiseksi työkaluksi web-kehittäjille erityisesti verkkopalvelujen toteutuksessa.

Halkileikkaus PHP:n historiaan

PHP:stä on julkaistu useita versioita, joista uusin on vuonna 2023 julkaistu PHP 8.3. Tuotanto- ja kehityskäytössä PHP:n aiemmilla versioilla (PHP 7.x, PHP 5.x) on edelleen ollut merkitystä, vaikka niiden tuki on pääosin päättynyt. Lisätietoa PHP:n kehityksestä sekä uusimmat versiot löydät PHP:n kotisivuilta.

Rasmus Lerdorf kehitti PHP:n ensimmäisen version jo vuonna 1995. Aluksi kyse oli omien nettisivujen pyörittämiseen tarkoitetuista yksinkertaisista Perl-skripteistä, mutta pian ne saivat suosiota muuallakin. Kehityksen myötä yksinkertaisista skripteistä kehittyi varsinainen skriptiengine, PH/FI, ja myöhemmin API sekä kokonainen ohjelmointikieli. Erityisesti versioissa 3 ja 4 esitelty Zend Engine toi PHP:lle sen, mitä se kaipasi: tehoa ja rakennetta.

Kuten monen muunkin teknologian kohdalla, PHP:n alkuvaiheet ovat olleet kaikkea muuta kuin suunnitelmallisia. Kieltä muokattiin tarpeen mukaan, ja usein sitä käytettiin asioihin, joihin sitä ei varsinaisesti ollut alun perin tarkoitettu. Juuri tämä käytännönläheisyys – tai suunnittelemattomuus – teki PHP:stä osalle kehittäjistä tutun ja rakkaan, toisille taas kirosanan.

Kuinka PHP suoritetaan?

Kun HTTP-palvelin (kuten Apache tai IIS) vastaanottaa pyynnön, jonka tiedostopääte on .php, se ohjaa pyynnön PHP-tulkille. PHP-tulkki käy läpi tiedoston sisällön,ja ja suorittaa kaikki PHP-koodia sisältävät lohkot. Lopputuloksena syntyy HTML-muotoinen sivu, joka lähetetään käyttäjän selaimeen.

Miltä PHP-koodi näyttää?

Alapuolella on hyvin yksinkertainen esimerkki PHP-koodista:


...
<body>
<?php echo "Tämä teksti on tulostettu PHP:n avulla"; ?>

<?php
$alv = 1.22;
$tuntihinta = 75 * $alv;
print("KK Medioitten koulutuksen perushinta on vain $tuntihinta EUR<br/>\n"); 
?>
</body>
...

Edellä oleva esimerkki on HTML/XHTML-sivun sisään upotettua PHP-koodia. Ensimmäinen koodinpätkä tulostaa sivulle tekstin "Tämä teksti on tulostettu PHP:n avulla". Toinen koodinpätkä puolestaan tulostaa tekstin "KK Medioitten koulutuksen...", jossa hinta lasketaan PHP-koodin avulla.

PHP-koodi sijoitetaan HTML-sivulle <?...?>-merkintöjen sisään. Tätä kutsutaan usein 'papukaijamerkinnäksi', ja se on yleisin tapa erottaa PHP muusta sisällöstä." Myös ASP/ASP.NET sekä JSP-kielistä tuttua merkintää <%...%> ja <script type="php">...</script> näkee käytettävän satunnaisesti. Mikäli haluat käyttää jotain muuta kuiin oletusarvoista papukaijamerkintää, on sinun tehtävä tarvittavat muutokset PHP:n konfiguraatiotiedostoon (php.ini).

Tuetut alustat

Toisin kuin useimmat muut palvelinpuolen ohjelmointikielet, PHP on hyvin pitkälti alustariippumaton. PHP:n voi asentaa nykyisin niin Windows, Unix, Linux, Mac jne. alustoille ja se toimii kutakuinkin samalla tavoin kaikilla kokoonpanoilla ja webpalvelimilla. Alustavalinnassa painotus kannattaakin asettaa organisaation osaamiseen ja infrastruktuuriin – ei niinkään teknisiin rajoitteisiin. Esimerkiksi PHP Windows Serverin IIS:n päällä on nykyisin yhtä tehokas ja turvallinen vaihtoehto kuin vaikka PHP Linuxilla Apachen kanssa.

PHP:n todellinen vahvuus on sen poikkeuksellinen laajennettavuus. Kielessä on sisäänrakennettu tai laajennuksin saatavilla tuki lähes kaikille tietovarastoille (MySQL, SQL Server, PostgreSQL, XML, JSON jne) ja viestintäprotokollille (kuten IMAP, POP3, HTTP, FTP). Tämä tekee PHP:sta monipuolisen työkalun, joka mukautuu hyvin erilaisiin projekteihin ja käyttöympäristöihin.

Kehittäjän näkökulmasta tämä kaikki tarkoittaa vähemmän säätöä ja enemmän tekemistä.

PHP:n menestysresepti: nopeus, vakaus, ja yhteisö

PHP:n pitkä menestystarina voidaan tiivistää 4S+1C-malliin:

Muita olennaisia syitä PHP:n menestystarinaan ovat mm. :

PHP:n rajoitteet

Vaikka PHP:llä on paljon vahvuuksia, mikään teknologia ei ole täydellinen. On hyvä ymmärtää myös ne kohdat, joissa PHP voi aiheuttaa haasteita – etenkin, kun sitä verrataan muihin kieliin tai modernimpiin kehitysmalleihin.

Vaikka PHP:n ydin saattaa paikoitellen tuntua vanhentuneelta tai hajanaiselta, sen ympärille on vuosien saatossa rakentunut vahva kehitysekosysteemi. Frameworkit kuten Laravel, Symfony ja Laminas sekä modernit työkalut kuten Composer ja PSR-standardit tarjoavat kehittäjälle selkeän rakenteen, hyvän testattavuuden ja nykyaikaiset ohjelmointikäytännöt. Niiden ansiosta PHP:llä voi rakentaa moderneja sovelluksia parhaiden käytäntöjen mukaisesti.

Nykyisin raakaa PHP:ta käytetään harvoin sellaisenaan – valtaosa kehityksestä tapahtuu frameworkkien, kuten Laravelin tai Symfonyn, tai alustojen kuten WordPressin päällä. Raaka PHP on kuin keittiö täynnä raaka-aineita ja välineitä: mahdollisuuksia on paljon, mutta kaikki on tehtävä alusta asti. Frameworkit tarjoavat valmiita ratkaisuja, jotka nopeuttavat kehitystä, vähentävät virheitä ja tuovat mukanaan testauksen, tietoturvan ja rakenteen. Kun yhden MVC-kehyksen hallitsee, siirtyminen toiseen on usein suoraviivaista. Web-kehityksessä ei nykyään ole niinkään kyse kielivalinnasta (PHP vs. Python), vaan oikean frameworkin (Laravel vs. Django) tai alustan valinnasta projektin tarpeisiin.

Milloin PHP on oikea valinta?

PHP ei ole aina oikea valinta – mutta kun osutaan oikeaan käyttökohteeseen, se on lähes lyömätön. Sen vahvuudet korostuvat erityisesti ympäristöissä, joissa kaivataan nopeutta, kustannustehokkuutta ja laajaa tukea olemassa oleville alustoille. Tässä muutamia tilanteita, joissa PHP loistaa edukseen: