PHP

PHP valoda ir stingri iesakņojusies programmēšanas jomā kā pamats jebkuras sarežģītības vietņu izveidei - no landing page jeb “vizītkaršu” vienas lapas vietnēm līdz korporatīvajiem portāliem.

PHP nosaukums cēlies no vārdu salikuma "Personal Home Page", kas atspoguļo tā sākotnējo mērķi - personīgo lapu izveidi internetā. Tomēr vēlāk  nosaukums tika mainīts un tagad, saskaņā ar oficiālo informāciju PHP mājaslapā PHP.net, valoda oficiāls nosaukums ir Personal Home Page: Hypertext Preprocessor.

Pašlaik PHP valoda tiek uzskatīta par līderi starp dinamisko vietņu izveides rīkiem. PHP tiek nepārtraukti pilnveidots, un tas saglabā ilgstošu pārsvaru tīmekļa programmēšanas valodu jomā, darba tirgū dominējot pār tādu konkurentu un tā ietvariem kā Python un Django, Flask. Valodas sintakse (noteikumu kopums, kas nosaka simbolu kombinācijas programmēšanas valodā) nāk no C, Java un Perl. Neskatoties uz to, PHP ir pietiekami viegli iemācīties. Papildu tam, sintakses līdzības dēļ, pēc PHP ir vieglāk apgūt tādas valodas kā Java, C#, C++ un citas C tipa valodas. Savukārt, pārslēgties uz Python būs nedaudz grūtāk, taču tas ir laika un apņēmības jautājums.

Būtiska atšķirība starp PHP un jebkuras citas valodas kodu, kas darbojas klienta pusē, piemēram, JavaScript, ir tajā, ka PHP skripti darbojas servera pusē, gluži kā, piemēram, Python. Tādejādi klienti pat neuzzinās, vai viņi uz sava ekrāna redz parasta HTML faila produktu vai PHP skripta rezultātu. Tas ir tādēļ, ka PHP ļauj tīmekļa izstrādātājiem ātri izveidot dinamiski ģenerētas tīmekļa lapas, apvienojot sevi back-end un ļoti vienkāršus front-end rīkus. PHP ļauj izveidot augstas kvalitātes web-lietojumprogrammas ļoti īsā laikā, iegūstot produktus, kurus nākotnē ir viegli modificēt un uzturēt.

Vēsture.

PHP pirmā versija tika izlaista 1994. gadā. Tas bija programmēšanas valodas Perl CGI skripts, kas apkopoja statistiku par izstrādātāja Rasmusa Lerdorfa CV skatījumiem. Tieši tas noteica valodas nosaukumu jeb personal home page, jo bija izveidota Lerdorfa  personīgās lapas vajadzībām. Tajā laikā nebija vēl līdz galam definētas atvērtā pirmkoda koncepcijas un līgumu, tāpēc visa bezmaksas programmatūra tika izplatīta ar nosaukumu "freeware" jeb bezmaksas programmatūra, ieskaitot PHP.

Turpmāk PHP attīstījies sekojošās versijās:

1.   PHP 1 un PHP 2 — līdz 1995. gada vidum galvenais valodas modulis tika pārrakstīts C zemā līmeņa valodā. Parādījās pirmie tagi, kas ļāva koda fragmentus ievietot HTML, taču vēl nebija rīku tīmekļa lapu un datu bāžu savstarpējai komunikācijas nodrošināšanai. Šajā versijā Rasmus Lerdofs integrējis mSQL atbalstu, lai atvieglotu web-lapu datu saglabāšanu. Pateicoties izstrādātāja atklātībai par pirmkodu un tā pieejamību, Lerdorfam pastāvīgi tika rakstīti ieteikumi kļūdu labošanai un valodas uzlabošanai, kā rezultātā 1996. gadā tika izlaista otrā PHP versija, un, pateicoties uzlabojumiem, līdz 1997. gadam tīmeklī parādījās vairāk nekā 50 000 vietņu, kas izmantoja PHP 2 iespējas.

2.   PHP 3 — par versijas “tēviem” tiek uzskatīti Endijs Gūtmans un Zivs Surazskis, kas praktiski no nulles izveidoja jaunus valodas pamatus, balstoties uz Lerdorfa kodu. Darba sākums pie apjomīgā PHP atjauninājuma saistīts ar kādas e-komercijas lietotnes izveidi, kas pieprasīja globālas valodas izmaiņas. Pēc šī atjauninājuma PHP 1. un 2. versija tika praktiski pamesta.
PHP trešajā laidienā API (Application Programming Intrface) tika ieviests kā galvenais funkcionalitātes paplašināšanas līdzeklis. Tāpat, versijas priekšrocība bija objektorientētas sintakses atbalsts (OOP).

3.   PHP 4 – trešās versijas panākumi noveda pie lēmuma pārrakstīt platformas kodolu vēlreiz. Tāpēc, kopš 1998. gada izstrādātāji ir ķērušies pie principiāli jaunas sistēmas izveides – bija ievērojami palielināta veiktspēja, ieviesta izvades buferizācija un pievienots HTTP sesiju atbalsts.
Jaunā versija oficiāli tika izlaista 2000. gadā. Tāpat kā iepriekš, izstrādātāji no visas pasaules tika iesaistīti valodas funkcionalitātes pilnveidošanā.

4.   PHP 5. versija izlaista 2004. gadā. Tika ieviests XML (Extensible Markup Language) atbalsts. Vairāku globālu izmaiņu dēļ šī versija zaudēja savietojamību ar iepriekšējām valodas versijām, taču jaunās funkcijas bija tā vērtas. Platforma ir kļuvusi par pilnvērtīgu programmēšanas valodu.

Sekojot PHP 5. sērijai, tika izlaista arī PHP 6, kas, tāpat, kā 5., ieviesa daudzus jaunu funkcionālo sīkumu un kļūdu labojumu.

Patreiz visizplatītākā ir 7. un 8. PHP versija, uz kurām darbojas gan legacy jeb vecie, gan jaunie PHP projekti. PHP 6. versija kopš 2010. gada tika uzskatīta par neperspektīvu, jo radās grūtības ar Unicode atbalstu. Kopš 2015. gada jauninājumi galvenokārt ir veikti PHP septītajā versijā, bet kopš 2020. gada novembra tiek aktīvi atbalstīts arī jaunais PHP 8. Šī raksta tapšanas laikā aktuāla ir PHP 8.1.1 versija.

PHP uzbūve.

Ir divu veidu programmēšanas valodas: tulkotās (sauksim tās par interpretētām) un kompilētās.

Programmu, kas pārtulko vienā programmēšanas valodā rakstīto kodu citā, sauc par tulkotāju jeb interpreteri. Tas pārvērš kodu, kas rakstīts augsta līmeņa valodā (piemēram, Python) mašīnkodā. Kompilācijas procesa rezultātā tiek izveidots binārs izpildāmais fails, kuru jau var palaist bez kompilatora.

Kompilētās programmas ir pavisam cita kategorija. Kompilētās programmas kodu nevis tulko, bet izpilda katru tā rindu. Balstoties uz šī skaidrojuma, PHP ir interpretēta valoda, gluži kā Python. Interpretētās valodas ir neatkarīgas no “dzelžu” tipa, pateicos interpretera starpslānim, taču izpildes ātruma ziņā tās ir zemākas par kompilētām valodām.

PHP izmanto C valodas tipa sintaksi, ar izņēmumiem un uzlabojumiem. Šie uzlabojumi ir paredzēti tās galvenajai izmantošanai tīmekļa izstrādē, kas intensīvi izmanto teksta virkņu (strings) manipulācijas. PHP mainīgajiem ir jāpievieno "$" zīme. Tas ļauj PHP veikt virkņu interpolāciju dubultpēdiņās, kur slīpsvītra tiek atbalstīta kā atkāpšanās (escape) rakstzīme no teksta virknēm.

Virknēm, kuras norobežotas ar atsevišķām pēdiņām, netiek veikta atkāpšanās vai interpolācija. Kodu var modularizēt funkcijās, kas definētas ar atslēgvārdu “function”. PHP atbalsta izvēles objektorientētu kodēšanas stilu, kur klases tiek apzīmētas ar klases atslēgvārdu.

Klasēs definētās funkcijas sauc par metodēm. Vadības struktūras ietver: if, while, do/while, for, foreach un switch. Paziņojumus vienmēr beidz ar semikolu.

Viena unikāla PHP iezīme ir koda norobežotājs katrā failā un rindā, kur nepieciešams parsēt (apstrādāt) PHP kodu. PHP procesors parsēj kodu tikai tā robežās. Viss, kas atrodas ārpus norobežotājiem, tiek nosūtīts tieši uz izvadi, un PHP to neņem vērā.
Vienīgie atļautie atvēršanas un aizvēršanas norobežotāji ir "<?php" un "?>" vai ”<?=” un “?>”, jeb tagi. Atdalošo tagu mērķis ir atdalīt PHP kodu no ne-PHP datiem (galvenokārt HTML, sk. bildē zemāk).

PHP ir viena no dinamiski tipizētām valodām. Tas nozīmē, ka datu tips netiek noteikts, kad tiek deklarēts mainīgais, bet gan tad, kad tiek piešķirta vērtība.

PHP pielietojums.

PHP tā pirmsākumā bija veidota kā servera puses valoda. Tāpēc tā kļuva par pamatu tīmekļa lietojumprogrammu izveidei - lietotāji saņem koda apstrādes rezultātu, bet serveris uzņēmās visu skaitļošanas slodzi. Tas aizsāka tādu CMS (Content Management System) jeb satura pārvaldības sistēmu rašanos kā WordPress, Joomla un Drupal.
Tāpat, pateicoties PHP lietotāju iniciatīvai, tika radīti tādi populāri PHP ietvari kā Laravel, Symfony un CakePHP vēl ērtākai web-vietņu izstrādei.

PHP satur tādus iebūvētus rīkus, kuriem ir:

●    Iespēja automātiski izvilkt servera vides mainīgos, GET un POST parametrus iepriekš definētos masīvos.

●    Spēja mijiedarboties ar daudzām datu bāzes pārvaldības sistēmām, tostarp SQLite, MySQL, DBX, Microsoft SQL Serve u.c.

●    Automātisks HTTP galveņu nosūtīšanas režīms, atvieglojot vietnes meklētājprogrammu optimizāciju.

●    Iespēja apstrādāt failus, kas tiek augšupielādēti serverī.

●    Iespēja strādāt gan ar attāliem, gan lokāliem failiem, sesijām, ligzdām, HTTP autorizāciju, sīkfailiem un XForms.

Ir trīs galvenās jomas, kurās PHP ir pieprasīta:

-      Skriptu rakstīšana, kas darbojas servera pusē. Galvenais PHP lietojums ir vietņu izveide, kas tiek izmitinātas uz šim nolūkam iepriekš konfigurētiem serveriem.

-      Skriptu rakstīšana, kas darbojas komandrindā neatkarīgi no tīmekļa servera un pārlūkprogrammas. Lietojumprogrammu paraugi ir Task Scheduler operētājsistēmā Windows, Cron operētājsistēmā Linux.

-      GUI (graphical user interface) lietojumprogrammu izstrāde, kas darbojas klienta pusē. Galvenā pielietojuma joma ir starpplatformu lietojumprogrammu izveide.

PHP atbalsta gandrīz visas iespējamās operētājsistēmas, sākot no Microsoft Windows un MacOS, līdz GNU Linux, Unix, RISC OS, OS/2 un citām. PHP ir saderīgs arī ar izplatītākajiem tīmekļa serveriem - Apache, Personal Web Server, Microsoft Internet Information Server, Netscape, u.c.

PHP turpina attīstīties, iekļaujot labāko no citām valodām un veidojot ietvarus, kas pašas par sevi ir gandrīz kā jaunas valodas, un no tā PHP gūst labumu savas uzticamības un daudzpusības dēļ.

PHP priekšrocības un trūkumi.

PHP galvenās priekšrocības, salīdzinājumā ar līdzīgām valodām, ir mācīšanās vieglums un diezgan augsta veiktspēja.

  • Spēcīgs un elastīgs. PHP spēj apkalpot nelielu personīgu blogu, bet tajā pašā laikā tas jūtas komfortabli lielos resursos: interneta veikalos, sociālajos tīklos, portālos utt.
  • Bezmaksas. PHP ir bez maksas un tiek izplatīta ar bezmaksas licenci, tāpēc to var droši lietot gan privātpersonas, gan komerciālas organizācijas.
  • Vienkāršs. Lai uztvertu tā darba loģiku un saprastu pamata sintaksi, pietiks ar 2-3 nedēļu apmācību. Protams, lai to saprastu padziļinātāk, būs nepieciešams vairāk laika.
  • Atsaucīga kopiena. PHP ir ļoti izplatīts, un tam ir liela kopiena, kas palīdzēs valodas apgūšanā.
  • Papildinātība. PHP ir liels skaits papildu paplašinājumu un bibliotēku, kas palielina tā funkcionalitāti. PHP papildinājumu menedžeris ir Composer.
  • Nav prasīgs. Šo valodu var izmantot uz dažādiem serveru veidiem, kas neprasa augstas skaitļošanas jaudas no “dzelžiem”, uz kuriem tas darbojas.
  • Rediģēšanas vienkāršība. Šo kodu var rakstīt un rediģēt jebkurā teksta redaktorā.

Tomēr PHP valoda nav ideāla, un tai ir arī savi trūkumi:

-  Šauras IT jomas valoda. Ja esi apguvis PHP un back-end tehnoloģijas, tas Tevi ierāmēs back-end jomā uz ilgāku laiku, un mainīt to prasīs lielāku piepūli.
Un, lai gan PHP iespējas var paplašināt ar dažādām pakotnēm un to realizāciju, tas tomēr ir “uzasināts” programmēšanai internetam. Tajā nav iespējams izveidot personālo datoru darbvirsmas lietojumprogrammu (piemēram, Windows lietotnes) vai jebkuru citu sistēmas komponentu.

-  Drošība. PHP ir sistēmas līmeņa un tīmekļa lietojumprogrammu līmeņa drošība. Taču plašā izmantošana ir izspēlējusi nežēlīgu joku: PHP caurumi tiek atrasti ātrāk, nekā izstrādātājiem ir laiks tos aizvērt. PHP 7 un 8 ir atrisinātas daudzas problēmas, bet uzbrucējs vienmēr ir priekšā.

-  PHP izstrādātāju kopiena ir liela un sadrumstalota, jo PHP ir viena no pirmajām un vecākajām Web projektu izstrādes tehnoloģijām. PHP izstrādē vienlaikus bija iesaistīti milzīgs skaits programmētāju visā pasaulē. Tas viss ir radījis lielu skaitu ļoti atšķirīgu pieeju, ietvaru un ekosistēmu, kas nav savienojamas viena ar otru. Turklāt, pateicoties spēcīgu un ietekmīgu sociālo tīklu (galvenokārt Facebook) pūlēm, ir radušās alternatīvas PHP implementācijas.
Tas negatīvi ietekmē valodu, jo daudzas PHP ekosistēmas nav saderīgas. Kopiena ir sadrumstalota, tērējot spēkus, veidojot vienas un tās pašas bibliotēkas dažādās grupās.

Situācija tiek labota ar PSR (PHP Standards Recommendations) standartu palīdzību. Izstrādātāji vienojas par vienotiem koda noformēšanas un rakstības stila noteikumiem un saskarēm, kas nodrošina ietvara savietojamību, taču šis process vēl ir ceļa sākumā, savukārt konkurējošām tehnoloģijām (.NET, Ruby) jau ir vienota platforma visiem ietvariem.

Šie ir visievērojamākie PHP trūkumi un priekšrocības. Tomēr, strādājot ar šo valodu, programmētāji parasti atklāj savus personīgos valodas plusus un mīnusus.

Der atzīmēt vēl vienu vērā ņemamu PHP mīnusu: patiesi labs PHP programmētājs ir retums. Šajā valodā ir daudz speciālistu, bet maz ekspertu. Šāda situācija attīstās tādēļ, ka šajā valodā “ienākšanas slieksnis” ir diez gan zems. Tikai dažas paviršas apmācību nedēļas (un dažos gadījumos pat dienas), un programmēšanas iesācējs var uzskatīt sevi par PHP speciālistu. No vienas puses - iesācējs jau spēj atrisināt komplicētākas problēmas pavisam ātri, īpaši tās, kas saistītas ar mazām vietnēm vai vienkāršu skriptu rakstīšanu. No otras puses - pāris nedēļu laikā nav iespējams apgūt visus šīs valodas smalkumus, lai pilnvērtīgi apzinātos valodas patieso funkcionalitāti.

Darbs.

Šī raksta tapšanas laikā, 2022. gada janvārī, vakanču meklēšanas portāls CV.lv uzskaita 174 vakances, kas ir par 100 vairāknekā, piemēram, Phyton un citas populāras back-end izstrādes valodas.

Vidējā PHP izstrādātāja alga pēc Algas.lv portāla 2022. gada janvārī sastāda no 811 līdz 2594 EUR pirms nodokļu nomaksas, tomēr, gluži kā Python izstrādātāju vakanču gadījumā, piedāvājamās algas augšējais slieksnis vakancēs portālā CV.lv ir daudz augstāks un sasniedz pat 6000 EUR pirms nodokļu nomaksas.

Latvijā PHP uztur stabilu popularitāti kā web-vietņu izstrādes valoda un pagaidām piedāvājums pārspēj pieprasījumu, tomēr tai aizvien ātrāk steidz pakaļ Python, kas jau pavisam drīzā nākotnē varētu izlīdzināt abu valodu vakanču piedāvājumu skaita atšķirības.

Secinājumi.

Diemžēl neviens nevar droši pateikt, kāda būs PHP nākotnē. Visi secinājumi ir balstīti uz pieņēmumiem un minējumiem. Bet mēs varam pieņemt, ka PHP nezaudēs savu pieprasījumu, jo uz PHP pamata vēl joprojām tiek veidots ievērojams skaits jaunu vietņu un uzturētas esošās.

Vietne “W3Tech” ziņo, ka 2021. gada vasaras sākumā gandrīz 65% vietņu darbojās uz PHP “WordPress” platformas, salīdzinot ar 63,5% gadu iepriekš, un 2019. gada vasarā tas joprojām bija salīdzinoši augsts - 61%. Tāpat, tādi uz PHP rakstīti CMS  kā Joomla un Drupal sastādīja attiecīgi 3,9% un 2,6%. Visi trīs dzinēji veido 70% no visu web-lapu procenta. Tas ietver arī mazāk populārus vietņu veidotājus un ietvara vietnes kā, piemēram, Laravel un Yii2.

Attīstoties satura pārvaldības sistēmām, ir ļoti grūti pieņemt, ka vietnes, kas ar tām strādā, tiks aizvērtas. Tāpēc, visticamāk, interese par PHP tuvākajā laikā paliks stabili nemainīga.

Pat, ja šis raksts bija Tava pirmā saskaršanās ar PHP, šīs valodas apguve, visticamāk, Tev nesagādātu grūtības. Mums nav šaubu, ka pēc dažām stundām, apgūstot PHP pamatus, Tu jau varēsi izveidot PHP skriptus un vienkāršas lapas. Nebūtu lieki pieminēt, ka CODELEX piedāvā kursus, kuru laikā apgūsi programmēšanu tieši ar PHP!