PHPPamokos.lt


3. Pradžia ir pirmieji PHP skriptai

Šiame skyrelyje parodysime, kaip išvesti paprastą tekstą į ekraną, t.y. į interneto naršyklę. Be to, pamatysite, kaip atrodo paprasčiausia PHP kalbos programa.

Pirmasis PHP skriptas

Kaip jau buvo minėta, PHP skriptas yra tiesiog paprastas tekstinis failas, tik jo plėtinys yra *.php ir kodas atskiriamas specialiais bloko pradžios ir pabaigos simboliais. Paprasčiausias PHP skriptas gali atrodyti taip:

<?php
echo "Labas rytas";
?>

Šiuo atveju pirma eilutė reiškia PHP bloko atidarymą, antroje eilutėje iškviečiama komanda, kuri išveda į ekraną tekstą "Labas rytas", o trečioje eilutėje uždaromas PHP blokas. Ir viskas, nereikia rašyti nieko daugiau.

Tiesa, dėl bloko atidarymo ir uždarymo simbolių - reikia žinoti kelis dalykus:

  • Bloko pradžią galima rašyti ne tik kaip <?php, bet ir sutrumpintai - tiesiog <?. Bet ar toks short_tags užrašymas leidžiamas - priklauso nuo PHP nustatymų konkrečiame serveryje. Dažniausiai ši funkcija yra įjungta, bet jei jums teks projektą perkelti į kitą serverį - negalite būti 100% tikri dėl to, kokie nustatymai bus ten. Tad patariu visgi visada rašyti pilną komandą <?php
  • Failo pabaigoje PHP bloko užrarymo simbolis nėra būtinas, nebent po PHP kodo bus įrašytas dar HTML kodas ar bet koks kitas tekstas (apie PHP ir HTML kodų suskirstymą kalbėsime kiek vėliau)

Taigi, turime pirmą savo mini-skriptą. Jeigu dirbame savo lokaliame web-serveryje, tai specialiame XAMPP kataloge htdocs sukuriame atskirą katalogą php ir ten išsaugojame šį tekstinį failą kaip pirmas.php. O tada naršyklėje įrašome http://localhost/php/pirmas.php. Pamatysime maždaug tokį vaizdą:

Kaip matote, jeigu norite išvesti tekstą į ekraną, tam reikia parašyti echo ir kabutėse jūsų norimą tekstą. Atkreipkite dėmesį, kad kiekvienas sakinys PHP kalboje baigiasi kabliataškiu. Tokiu būdu PHP sistema žino, kada baigiasi vienas sakinys ir kada prasideda kitas, tad realiai jie gali būti netgi vienoje eilutėje ir vienas kitam netrukdys.

Dar reikia paminėti, kad su echo išvedant tekstą, jis gali būti atskiriamas ir viengubomis kabutėmis (apostrofomis), ir dvigubomis kabutėmis - abu variantai veiks. Jie turi skirtingą veikimą, bet apie jį papasakosiu kai kalbėsime apie kintamuosius, kitoje pamokoje.

 

Index.php failas

Kuriant web-projektą, reikia pradėti nuo titulinio puslapio. Ar jums niekada nekilo toks klausimas: jeigu aš naršyklėje įrašau adresą www.kazkas.lt - iš kur naršyklė žino, kokį skriptą paleisti? Tai tam yra bendra taisyklė - jeigu nenurodomas joks vidinis puslapio adresas, tai vykdomas index.php failas.

Pabandykite patys - pervadinkite mūsų skriptą pirmas.php į index.php, ir naršyklėje paleiskite tiesiog http://localhost/php. Turėtumėte matyti tą patį rezultatą.

Tiesa, reikia atkreipti dėmesį, kad serveris gali turėti kelis index failus. Sakykime, pagrindiniame kataloge yra ir index.php ir index.html failai - tada dažniausiai serveris vykdys būtent HTML ir į PHP net nepažiūrės. Tai, iš tikro, priklauso nuo serverio nustatymų. Realus pavyzdys - jei užsakėte kažkur vietą savo projektui, ir jums automatiškai sukūrė pirmą index.html puslapį iš serijos "Sveiki atvykę", tai jei įkelsite savo index.php skriptą ir galvosite, kodėl jis neveikia, tai nepamirškite ištrinti arba pervadinti to senojo index.html.

 

PHP ir HTML

Iš esmės, PHP skripto įvykdymo rezultatas yra HTML kalbos tekstas, kuris perduodamas atvaizdavimui į naršyklę. Būtent dėl to į PHP skriptą gali būti rašomas HTML kodas ir šiaip bet koks paprastas tekstas.

Pavyzdys:

<html>
<body>
Antroji programa <br />
<?php
echo "Labas rytas";
echo "<h2>Labas vakaras</h2>";
?>
</body>
</html>

Šis pavyzdys yra mišrus - išvedamas HTML kodas, jo viduje yra paprastas tekstas, o tada dar žemiau vykdomas PHP blokas, kuris irgi išveda tekstą į ekraną. Ir išvedamo teksto viduje irgi yra HTML komanda, kurios rezultatus naršyklė sėkmingai atvaizduoja.

Jeigu tarp skaitančių yra tokių, kurie nežino kas yra HTML ar nemoka šios kalbos, tai rekomenduoju pasidomėti ir pasiskaityti internete, nes HTML yra pagrindas, be kurio praktiškai neįmanoma sukurti rimtesnės interneto svetainės.

Žvelgiant į web-projekto kūrimą aukštesniame lygyje, tikslas yra ne tik sukurti tinklalapį, bet ir pagal galimybę atskirti du kodų "tipus", apie kuriuos jau kalbėjome - back-end ir front-end. Šiuo atveju tai PHP ir HTML. Priežastis paprasta - su PHP ir su HTML dalimis dažniausiai dirbs du atskiri žmonės. Bent jau pasaulinė praktika tokia, kad rimtesni projektai turi bent du programuotojus - vieną back-end ir vieną front-end. Yra ir tokių programuotojų, kurie sugeba dirbti prie abiejų šių sričių, bet dažniausiai tada nukenčia kažkurios iš jų kokybė. Visgi čia yra skirtingo mąstymo darbas - vienas labiau apie logiką, kitas apie apipavidalinimą.

Ateityje kalbėsime apie tai, kaip būtent tai tvarkingai padaryti, o kol kas tiesiog įsisavinkite taisyklę - jeigu įmanoma, PHP faile turi būti tik PHP kodas, o HTML kodas iškeltas į atskirus failus.

 

Funkcija include() ir projekto suskirstymas

Kalbant apie projekto suskirstymą į failus, tam pagelbsti funkcija include(), kurios pagalba galime įkelti kitą PHP skriptą į mūsų esamą skriptą. Tiesa, dar paaiškinsiu dėl funkcijų: jos yra kviečiamos taip - funkcija(parametras, parametras, ...). Kas tokie parametrai ir kaip juos aprašyti - kalbėsime vėliau, o dabar paprasčiausias mums reikalingos funkcijos pavyzdys.

include('header.php');
include('template/footer.php');

Pirmame pavyzdyje kviečiame tame pačiame kataloge esantį failą header.php, o antrame pavyzdyje - kiek giliau kataloge /template esantį failą footer.php. Rezultatas - įvykdomos visos tame faile esančios PHP komandos, ir jeigu ten yra išvedamas koks nors tekstas - jis taip pat įkeliamas į mūsų pagrindinį PHP failą, būtent toje vietoje, kur mes jį iškvietėme.

Bendrai, programavime yra naudojamas toks nerašytas principas - kuo trumpesnis failas ar funkcija, tuo lengviau kodą suprasti, net jei jį atidaro kitas žmogus ar pats po kelerių metų. Dėl to dažniausiai visas tinklalapis skirstomas į atskiras dalis bei atskirus failus - header, footer, sidebar, menu ir pan. Taip pat pagalbinės funkcijos irgi atskiriamos į atskirus failus, kad "nesimaišytų". Visiškai konkretus gyvenimiškas pavyzdys:

include('includes/config.php');
include('includes/database.php');
include('template/header.php');
include('template/main.php');
include('template/footer.php');

Taip visiškai drąsiai gali atrodysi realaus web-projekto pagrindinis PHP skriptas - failas index.php. Kitais žodžiais - visa logika yra perkeliama į atskirus gabaliukus failuose, o pagrindinis failas tik juos kontroliuoja ir iškviečia kur reikia.

Dar vienas tokio suskirstymo privalumas - kodo nekopijavimas. Vėlgi programavime yra toks principas kaip DRY ("Don't Repeat Yourself"). Sakykime, kad projekte yra trys puslapiai - index.php, about.php ir contacts.php. Ir pagrindinis meniu visuose puslapiuose gi yra toks pat. Tai apsimoka jį įkelti į atskirą menu.php ir po to kviesti su include('menu.php'). Tada, jeigu ateityje norėsite pakeisti kokį meniu punktą ar pridėti naują, reikės keisti tik vieną menu.php failą, o ne visus tuos tris atskirai.

 

Komentarai programose

Pakankamai dažnai reikia pačiame programos kode parašyti tekstinius komentarus, paaiškinimus, kad būtų suprantama, ką daro vienas ar kitas kodo gabaliukas. Tam tikslui reikalingi komentarai, kuriuos, vykdydamas PHP skriptą, interpretatorius tiesiog "praleis pro akis", tad ten galite rašyti tekstą laisva forma. Komentarus dažnai naudosime visoje knygoje, tad įsidėmėkite, kaip jie gali būti rašomi, tam yra trys būdai.

1. Trumpas komentaras: rašomas eilutės pabaigoje - po dviejų pasvirųjų brūkšnių arba simbolio #

$suma = $kaina * $kiekis; // skaičiuojame sumą
echo "Labas rytas"; # išvedame tekstą į ekraną

2. Ilgesnis komentaras: gali būti per kelias eilutes, rašomas tarp simbolių /* ir */

echo $a * $b;
/*
Skaičiuojame A ir B sandaugą.
O po to išvedame ją į ekraną.
*/
 

Kodas: anglų ar lietuvių kalba?

Nedidelė pastaba. Turbūt pastebėjote, kad failus ir funkcijas vadinu angliškai - t.y. ne virsus.php, o header.php ir pan. Tai čia tiesiog patarimas jums - rašykite visą kodą angliškai. Išskyrus, aišku, lietuvišką tekstą tarp echo kabučių. Privalumas toks, kad tada jūsų kodą galės perskaityti ir suprasti bet koks programuotojas iš kito pasaulio krašto. Juk niekada negali žinoti, su kuo ir iš kokios šalies teks dirbti, o galbūt savo kodą publikuosite kur nors į kokį open-source projektą ar kursite savo TVS. Tad geriau tokį įprotį išugdyti nuo pat pradžių. Jei gerai mokate anglų, tai netgi komentarus galite rašyti angliškai - niekada negali žinoti, kada ir kam prireiks.

 

Namų darbai

Ką gi, pirmieji namų darbai šiame kurse? Nepanikuokite - jei nenorite jų daryti, jie nėra privalomi. Visgi, jei norite kad iš šio kurso liktų apčiuopiama nauda, vien skaityti pamokas jokiu būdu neužteks. Bandykite patys, darykite klaidas, klausinėkite ir tobulėkite.

Taigi, pirmai pradžiai siūlau jums pažaisti su būsimo projekto struktūra. Kaip sakiau, kuriame krepšinio aikštelių duomenų bazę. Jos puslapis gali būti sudaryta iš tokių atskirų dalių:

  • header (logotipas)
  • menu (pagrindinis meniu)
  • content (pats vidinis turinys, kuriame po to bus atskiri include)
  • footer (teisės saugomos ir t.t.)

Taigi, pabandykite sukurti tuos atskirus failus ir pagrindinį index.php, panaudodami funkciją include(). Jei mokate HTML, galite sukurti ir puslapio vaizdą, bet prie to dar grįšime kurso eigoje - tai kol kas nėra svarbu.

Pradžiai rezultatas turėtų atrodyti labai banaliai, maždaug taip:

Jei norėsite pasitikrinti, paruošiau jums "teisingą atsakymą" - parsisiųskite archyvą iš čia.



(c) 2015-2018. Visais klausimais kreipkitės povilas@laraveldaily.com