PHP Thinking OOP: Odosielanie a prijímanie správ: Chápem to správne? Je PHP podobné iným jazykom

  • 03.11.2019
3,3 tis

Zobrazovanie správ používateľovi je pomerne bežná akcia, ktorú by mala webová aplikácia vykonávať. Môže sa to vyskytnúť počas spracovania formulára, môžu to byť chybové hlásenia, správy, ktoré vám oznamujú, že sa máte zaregistrovať, keď sa používateľ pokúsi o prístup k zakázanej časti lokality a v mnohých ďalších prípadoch.

Vytváranie a výstup správ sú veľmi často rozdelené do rôznych HTTP požiadaviek. Spravidla je vhodné použiť presmerovanie po spracovaní formulárov (aby sa predišlo problémom s tlačidlami Späť a Obnoviť), ale zároveň je prirodzeným momentom pre vytvorenie správy práve moment spracovania formulárov a vykonania sprievodných akcií. to. prečo? Predstavte si, že text správy by mal vyzerať asi takto: „Počet objednaných jednotiek pre položku ‚Podložka pod myš‘ sa úspešne zmenil zo 7 na 12.“ Po presmerovaní, možno na úplne inú stránku, pokiaľ ide o funkčnosť, bude ťažké zistiť, čo sa urobilo predtým.

Najčastejšie sa správy zobrazujú v žiadosti POST, ktorá spracováva formulár - to nie je dobré, nápisy „táto stránka je neaktuálna“ ničia život (keď sa používateľ rozhodne vyskúšať tlačidlo Späť).

Niekto používa presmerovanie a vzdáva sa priateľských správ.

Zároveň existuje jednoduchý a zrejmý spôsob, ako zlepšiť život. Napriek očividnosti som z nejakého dôvodu nikdy nevidel nikoho, kto by to používal - aspoň keď som sa pozrel na zdroje iných ľudí.

Máme teda problém – správa musí „žiť“ v rôznych požiadavkách. Potrebujeme mechanizmus na prenos textu správy na stránku, ktorá by ho mala zobraziť. Pravdepodobne ste si už spomenuli na relácie.

Áno, vo všeobecnosti máte pravdu. Iné metódy, napríklad prostredníctvom globálnej premennej, neumožňujú ukladanie údajov v prípade, že je použité presmerovanie (pozn. Maxim Naumenko). Navyše sa zvyčajne uistím, že každá obrazovka v aplikácii má možnosť spolu s ďalšími informáciami zobrazovať správy, ktoré boli vygenerované na predchádzajúcich obrazovkách. Je to pohodlné, pretože nie je potrebné pripravovať samostatné obrazovky na zobrazovanie správ a používateľ nemusí znova klikať myšou. Ale v skutočnosti tu musí dizajnér premýšľať - zdôrazniť oblasť, v ktorej by sa objavili správy.

Myšlienka je veľmi jednoduchá a dá sa implementovať pomocou niekoľkých tried.

Prvá vec, ktorá vás napadne, je vytvoriť triedu Message, ktorá by v skutočnosti predstavovala správu v našom jednoduchom diagrame tried. Správa sa musí dať v relácii sama uložiť, ako aj zobraziť na obrazovke.

class Správa ( /** * Obsah správy. */ var $content; /** * Konštruktor na inicializáciu textu správy. * * @param content content message */ function Message($content) ( $this->content = $ content ) /** * Napíšte správu do relácie */ funkcia send() ( $_SESSION["session_messages"] = $this->content; ) /** * Výstup správy na stránku */ funkcia na stránku. () ( echo. " - " . $this->content .
"; } }

Premenná $_SESSION sa používa na prístup k relácii.

Všimnite si, že $_SESSION je pole, používame iba jeden prvok tohto poľa s indexom „session_message“.

V tomto prípade máme čo do činenia s „polom polí“ – to, čo ukladáme do elementu „session_message“ je pole, toto je zoznam prenášaných správ (samozrejme, môže ich byť viacero).

Ak ste vlákno nenašli, je čas oprášiť časti manuálu venované reláciám a poliam.

Možno máte otázku. Prečo sú tu potrebné triedy? Dalo by sa vystačiť s dvomi funkciami. Ale pozrime sa ďalej. Možno budeme musieť vytvoriť správy s rôznymi typmi (informácie, chyby, upozornenia) a určiť príjemcov správy.

Upozorňujeme, že v súčasnosti nie je do relácie vložený samotný objekt, ale iba text správy. OOP nám umožňuje neskôr zmeniť správanie metódy send() bez zmeny kódu klienta, ktorý k tejto metóde pristupuje (napríklad v budúcnosti môžeme do relácie zapísať celý objekt Message, ak má veľa polí).

Predstavme si, že by sme to urobili pomocou funkcií. Pravdepodobne by sme mali funkciu message_send($txt) a tiež by sme mali funkciu message_to_page($txt). Teraz musíme pridať možnosť rôzneho správania pre rôzne typy správ. Zmena volania funkcie: message_send($txt, $druh), message_to_page($txt, $druh). Pri hľadaní takýchto funkcií budete musieť prečesať celý kód aplikácie a vykonať opravy.

Tomu sa dá vyhnúť predvídaním situácie vopred reprezentovaním správy ako asociatívneho poľa: $msg[‘txt’], $msg[‘kind’], potom bude vo volaniach funkcií len jeden parameter. Cítite, ako sa toto snaží stať sa triedou?

OOP vám teda dáva možnosť dopriať si luxus nepremýšľať o všetkom vopred.

Ďalšia trieda – Inbox – je určená práve na to.

class Inbox ( /** * Pole prijatých správ. */ var $messages = array(); /** * V konštruktore dostaneme všetky prijaté správy * a vymažeme ich z relácie. */ funkcia Inbox() ( if (is_array($ _SESSION["session_messages"])) ( $messages = $_SESSION["session_messages"]; $co = sizeof($messages); for ($i = 0; $i< $co; $i++) { $this->správy = nová správa($messages[$i]);
) ) /* vymaže pole správ */ $_SESSION["session_messages"] = array();< $co; $i++) { $this->) /** * Zobrazenie obsahu priečinka Doručená pošta na stránke.

*/ function toPage() ( $co = sizeof($this->messages); if ($co > 0) ( echo "Správa zo systému:

"; ) pre ($i = 0; $i

správy[$i]->ToPage();

)))

Vyskúšajme si náš systém zasielania správ.

Vytvorme si veľmi jednoduchý príklad, ktorý bude reagovať na odoslanie formulára nahlásením počtu sekúnd v aktuálnej minúte.

Všetku prácu s poľami a reláciami sme skryli do tried a konečný kód vyzerá jednoducho a krásne.
Vytvorte adresár na svojom webovom serveri, potom v ňom vytvorte tieto tri súbory a vyskúšajte skript. Upozorňujeme, že s tlačidlami Späť a Obnoviť nie sú žiadne problémy.
Teraz si predstavte, že vytvárate komplexný portál, kde je na stránkach spravidla niekoľko blokov a každý môže obsahovať samostatnú aplikáciu.
Tu narážame na dve ťažkosti:

* Chcel by som, aby sa zoznam správ zobrazoval v konkrétnej časti stránky a už ste na to našli vhodné miesto.

Možno budeme mať stále niekoľko podobných vecí (ako Inbox) a musíme vytvoriť systém vyrovnávacej pamäte. Aby sme si neplietli, koho výstup je koho, prídeme asi na pomenovanie bufferov. Niekde uložíme poradie, v súlade s ktorým sa majú buffery vypisovať – najlepšie do externého súboru, aby sme uľahčili zmeny.

Tento pokus o riešenie nám už dáva myšlienku použiť XML ako prostriedok na ukladanie prechodných údajov. A použitie štýlov XSLT pomôže vyriešiť druhý problém.

Nebudem sa venovať tomu, čo je XML a čo je XSLT. Ak nie ste oboznámení s týmito vecami, zvon.org je dobré miesto, kde začať hľadať.

Cieľom je generovať nie HTML kód, ale XML štruktúru v metódach toPage(). Stránkový dokument bude vytvorený ako reťazec s XML kódom (bude slúžiť ako „buffer“) a v poslednej fáze skriptu použijeme XSL transformáciu.

Najprv si predstavme, čo by malo byť výsledkom hlavnej časti kódu.

minúta 57 sekúnd: 45

Čo to je, sa dá celkom ľahko uhádnuť – dve správy a formulár. Upozorňujeme, že PHP skript potrebuje iba pripraviť takýto reťazec – je to veľmi jednoduché. Okrem toho nie je dôležité poradie hlavných značiek - môžete ich umiestniť na prvé miesto, napríklad, ako to bude vhodné pre programátora. Ako to implementovať. Bez toho, aby ste čokoľvek menili, môžete použiť ukladanie do vyrovnávacej pamäte, výstup XML namiesto HTML kódu a na konci jednoducho zachytiť výstup do reťazca. Potom však stratíme flexibilitu – napríklad niekedy chcete vypísať ladiace informácie priamo na stránku (pomocou ozveny). Vývojári PHP zároveň pracujú na module DOM, ktorý ponúka pokročilejší spôsob vytvárania a odovzdávania stromových dokumentov. Ak chceme implementovať DOM, budeme musieť prerobiť celú aplikáciu so zmenou výstupu reťazcov na vytváranie prvkov DOM. Preto uprednostňujem ukladanie XML reprezentácie objektov v rámci samotných objektov, pričom postupne zostavujem spoločný XML dokument. Nie je to také ťažké, chce to len malú úpravu. Uvidíte, že táto technika nie je striktne viazaná na konkrétny spôsob ukladania údajov XML, čo vám umožní prejsť na používanie DOM s minimálnym úsilím. V prvom rade si všimnite, že každý z našich objektov má metódu toPage(). Táto podobnosť by nás mala prinútiť zamyslieť sa nad zavedením novej spoločnej rodičovskej triedy. Nechajte každú triedu, ktorá môže vytvárať časti dokumentu XML pre stránku, dediť od triedy, ktorá sa postará o XML reprezentáciu objektu. Nazvime to Outputable.

class Outputable ( /** * XML kontajner (reťazec). */ var $output = ""; /** * Zadajte obsah kontajnera a vymažte kontajner. * * @return reťazec s údajmi XML */ funkcia getOutput () ( $ out = $this->output; $this->output = ""; return $out; ->output .= $string . "n" ) /** * Metóda "Abstract" */ funkcia toPage( ) ( ) )

Metóda toPage() je prázdna - v tomto prípade je potrebná ako indikátor toho, ako by mali externé triedy „matriošky“ komunikovať s vnútornou triedou. Tu by sme však mohli ponúknuť predvolenú implementáciu, ak by sme si všimli, že existuje veľa objektov, ktoré sa na stránke zobrazujú rovnakým spôsobom.

Triedy Message a Inbox sa mierne zmenia – teraz by mali obe dediť z Outputable a zmenia sa aj metódy toPage()
Správa.php

class Message extends Outputable ( /** * Obsah správy. */ var $content; /** * Konštruktor na inicializáciu textu správy. * * @param content content message */ function Message($content) ( $this->content = $obsah; ) /** * Napíšte správu do relácie */ funkcia send() ( $_SESSION["session_messages"] = $this->content; ) /** * Výstup správy na stránku ( $ this->appendOutput("".$this->content.""" ) ) )

class Inbox extends Outputable ( /** * Pole prijatých správ. */ var $messages = array(); /** * V konštruktore prijímame všetky prijaté správy * a odstraňujeme ich z relácie. */ funkcia Inbox( ) ( if (is_array ($_SESSION["session_messages"])) ( $messages = $_SESSION["session_messages"]; $co = sizeof($messages); for ($i = 0; $i< $co; $i++) { $this->správy = nová správa($messages[$i]);< $co; $i++) { $this->) ) /* vymaže pole správ */ $_SESSION["session_messages"] = array();

) /** * Zobrazenie obsahu priečinka Doručená pošta na stránke.

*/ funkcia toPage() ( $co = sizeof($this->messages); $this->appendOutput(""); for ($i = 0; $i
správy[$i]->toPage();

$this->appendOutput($this->správy[$i]->getOutput());

Hlavná inovácia je v objekte $global_content, ktorého názov hovorí sám za seba. V tomto prípade patrí do triedy Outputable v reálnych úlohách by ste pravdepodobne vytvorili samostatnú triedu pre obsah stránky.

Ak sa pozriete pozorne, obsah skriptu sa prakticky nezmenil - rovnaká schránka, rovnaká toPage(). Pridaná inštrukcia, ktorá zobrazuje obsah zoznamu správ v obsahu stránky. Pre spestrenie sú teraz vygenerované dve správy.

Aby ste sa mohli pozrieť na výsledok, ostáva už len pripraviť XSL šablónu.
style.xsl

Príklad XSLT

správu

čo sme dosiahli?

Predovšetkým môžete s väčšou istotou prevziať komplexné projekty - je zabezpečená skutočná nezávislosť modulov. Poradie, v ktorom sú výsledky umiestnené na stránke, sa teraz riadi pomocou externej šablóny XSL a nezávisí od poradia, v ktorom sú moduly spustené.

Akýkoľvek modul, ktorý generuje XML dáta ako výsledok svojej práce, môže byť použitý v projekte. To je mimochodom jedna z výhod oproti šablónovým enginom, v ktorých tvorba dát pozostáva zo sekvencie volania metód (priradenie a pod.) konkrétneho enginu, pre ktoré neexistuje spoločný štandard.

Ďalšou výhodou je ľahké ladenie. Ak spustíte skript, všimnete si, že každá stránka obsahuje výstup ladenia – prototyp XML, ktorý výrazne zjednodušuje ladenie aplikácií.

Ešte niečo, na čo musíte myslieť, je, ako vytvoriť objekty správ. Nie vždy je vhodné použiť nový priamo v klientskom kóde. Ale možno je to téma na samostatný článok.

Nakoniec cval o vyhliadkach:

* pop-up okná so zoznamom dôležitých správ
* „stránky odosielateľa“ a „cieľové stránky“ v správach
* protokolovanie správ do databázy
* tlačidlo "zobraziť históriu mojich akcií"
* štatistická analýza akcií používateľov v rámci relácií
* „inteligentní asistenti“ vo webových aplikáciách

Všeobecné pojmy

Jazyk PHP je špeciálne navrhnutý pre webové programovanie. PHP spája výhody C a Perlu a je veľmi jednoduché sa naučiť a má značné výhody oproti tradičným programovacím jazykom.

Syntax PHP je veľmi podobná syntaxi jazyka C a je do značnej miery prevzatá z jazykov ako Java a Perl.

C programátor si veľmi rýchlo osvojí jazyk PHP a dokáže ho používať s maximálnou efektivitou.
PHP má v zásade takmer všetky operátory a funkcie dostupné v štandardnom GNU C (alebo ich analógoch), napríklad sú tu slučky (while, for), príkazy na výber (if, switch), funkcie pre prácu so súborovým systémom a procesy (fopen, *dir, stat, unlink, popen, exec), I/O funkcie (fgets, fputs, printf) a mnohé ďalšie...

Účelom tejto časti je stručne predstaviť základnú syntax jazyka PHP. Podrobnejšie informácie o konkrétnych komponentoch syntaxe PHP nájdete v príslušných častiach.

PHP a HTML

Syntax akéhokoľvek programovacieho jazyka je oveľa jednoduchšie „ohmatať“ pomocou príkladov ako pomocou nejakých schém a diagramov. Preto tu je príklad jednoduchého skriptu v PHP:



Príklad




Pravdepodobne ste si už všimli, že ide o klasický skript, pomocou ktorého sa začnete učiť programovací jazyk.

Upozorňujeme, že HTML kód je správne analyzovaný prekladačom PHP.

Začiatok scenára vás môže zmiasť: je to scenár? Kde sa nachádzajú značky HTML a ? V tom spočíva hlavná črta (mimochodom mimoriadne pohodlná) jazyka PHP: PHP skript sa vôbec nemusí líšiť od bežného HTML dokumentu.

Poďme ďalej. Pravdepodobne ste uhádli, že samotný kód skriptu začína po úvodnej značke. Takže medzi týmito dvoma značkami je text interpretovaný ako program a neskončí v dokumente HTML. Ak program potrebuje niečo vypísať, musí použiť operátor echo.

PHP je teda navrhnuté tak, že akýkoľvek text, ktorý sa nachádza mimo programových blokov oddelených, je výstup priamo do prehliadača. Toto je hlavná vlastnosť PHP, na rozdiel od Perlu a C, kde sa výstup vykonáva pomocou štandardných operátorov.

Oddelenie pokynov

Pokyny sú oddelené rovnakým spôsobom ako v C alebo Perle - každý výraz končí bodkočiarkou.

Záverečná značka (?>) tiež naznačuje koniec príkazu, takže nasledujúce dva útržky kódu sú ekvivalentné:



Komentáre v PHP skriptoch

Písanie takmer akéhokoľvek scenára sa nezaobíde bez komentárov.

PHP podporuje komentáre shellu C, C++ a Unix. Napríklad:

Jednoriadkové komentáre idú len na koniec riadku alebo aktuálneho bloku PHP kódu, podľa toho, čo je pred nimi.

Toto je príklad.

V nadpise hore bude napísané „Toto je príklad“.

Dávajte pozor, aby ste sa vyhli vnoreným komentárom „C“, môžu sa objaviť pri komentovaní veľkých blokov:

Jednoriadkové komentáre idú len na koniec riadku alebo aktuálneho bloku PHP kódu, podľa toho, čo je pred nimi. To znamená, že HTML kód po // ?> BUDE vytlačený: ?> ukončí režim PHP a vráti sa do režimu HTML, ale // to nedovolí.

Premenné v PHP

Názvy premenných sú označené znakom $. Rovnaké „Ahoj, som PHP skript“ je možné získať takto:

Dátové typy v PHP

PHP podporuje osem jednoduchých dátových typov:

Štyri skalárne typy:

Boolean (binárne údaje)
- celé číslo (celé čísla)
- float (čísla s pohyblivou rádovou čiarkou alebo "dvojité")
- struna (struny)

Dva zmiešané typy:

Pole
- objekt (predmety)

A dva špeciálne typy:

zdroj
NULL ("prázdne")

Existuje tiež niekoľko pseudotypov:

Zmiešané
- číslo (čísla)
- spätné volanie

Získajte viac informácií o typoch údajov v PHP

Výrazy v PHP

Hlavnými formami výrazov sú konštanty a premenné. Ak napríklad napíšete „$a = 100“, premennej $a priradíte „100“:

Vo vyššie uvedenom príklade je $a premenná, = je operátor priradenia a 100 je výraz. Jeho hodnota je 100.

Výraz môže byť aj premennou, ak má k nemu priradenú špecifickú hodnotu:

$x = 7;
$y = $x;

V prvom riadku uvažovaného príkladu je výraz konštanta 7 a v druhom riadku - premenná $x, pretože predtým bola nastavená na 7. $y = $x je tiež výraz.

Môžete sa dozvedieť viac o výrazoch v PHP

Operátori PHP

Operátor je niečo, čo sa skladá z jednej alebo viacerých hodnôt (výrazov v programovacom žargóne), ktoré možno vyhodnotiť ako novú hodnotu (teda celý konštrukt možno považovať za výraz).

Príklady PHP príkazov:

Operátori priradenia:

Kombinované operátory:

Operátory reťazcov:

Existujú aj logické a porovnávacie operátory, ale zvyčajne sa berú do úvahy v kontexte konštruktov ovládania jazyka.

Môžete nájsť podrobné informácie o operátoroch PHP.

Riadiace konštrukcie jazyka PHP

Hlavné konštrukcie jazyka PHP sú:

  • Podmienečné vyhlásenia (ak, inak);
  • Slučky (zatiaľ čo, do-kým, pre, foreach, break, continue);
  • Výberové konštrukty (prepínač);
  • Deklaračné konštrukty (deklarovať);
  • Návratové konštrukcie;
  • Inklúzne konštrukty (vyžadovať, zahŕňať).
  • Príklady konštrukcií jazyka PHP:

    Vyššie uvedený príklad jasne ukazuje použitie konštrukcie if v spojení s operátorom porovnávania ($a > $b).

    V nasledujúcom príklade, ak premenná $a sa nerovná nule, vytlačí sa riadok „hodnota a je pravdivá“, to znamená interakcia podmieneného operátora (konštrukcia), ak sa zobrazí s logickým operátorom:

    Tu je príklad cyklu while:

    Môžete získať informácie o všetkých konštrukciách riadenia PHP

    Vlastné funkcie v PHP

    Každý programovací jazyk má podprogramy. V jazyku C sa nazývajú funkcie, v jazyku symbolických inštancií sa nazývajú podprogramy a v jazyku Pascal existujú dva typy podprogramov: procedúry a funkcie.

    V PHP sú takéto podprogramy.

    Podprogram je špeciálne navrhnutý fragment programu, ku ktorému je možné pristupovať odkiaľkoľvek v rámci programu. Podprogramy výrazne uľahčujú život programátorom tým, že zlepšujú čitateľnosť zdrojového kódu a tiež ho skracujú, keďže jednotlivé fragmenty kódu nie je potrebné písať viackrát.

    Tu je príklad vlastnej funkcie v PHP:

    Výstup skriptu 100:

    Používateľom definované funkcie v PHP môžu odovzdávať argumenty a prijímať návratové hodnoty z funkcií.

    Môžete nájsť podrobné informácie o vlastných funkciách PHP

    Vstavané (štandardné) funkcie PHP

    PHP obsahuje obrovské množstvo vstavaných funkcií, ktoré dokážu vykonávať úlohy rôznej úrovne zložitosti.

    OOP a PHP

    PHP má pomerne dobrú podporu pre objektovo orientované programovanie (OOP).

    V PHP môžete vytvárať triedy rôznych úrovní, objekty a pomerne flexibilne s nimi pracovať.

    Tu je príklad triedy PHP a jej použitia:

    Počas prevádzky interpreta PHP sú sekcie nahradené značkami generovanými v dôsledku činnosti programového kódu, ktorý je v nich umiestnený. Na zobrazenie výsledku preprocesora sa používa operátor ozvena, ktorých argumentmi môžu byť konštanty, premenné, funkcie alebo rôzne druhy výrazov a výsledkom je text. Najjednoduchšia možnosť môže vyzerať takto:

    Ak otvoríte zdrojový kód výslednej stránky v prehliadači, potom tam už nebude žiadne PHP (pokiaľ samozrejme nie je na serveri nainštalovaný interpret PHP). Nemá zmysel používať operátor echo týmto spôsobom. Krása PHP je v tom, že vygenerovaný HTML môže závisieť od parametrov požiadavky, obsahu databázy, bezpečnostných zásad a mnohých ďalších. Analýza a spracovanie tohto všetkého sa vykonáva pomocou známych takmer všetkým, ako sú slučky, podmienky, funkcie atď. Pri pohľade do budúcnosti uvediem malý príklad programu PHP, ktorý používa slučku a podmienený príkaz, aby bolo počiatočné pochopenie hypertextového preprocesora úplnejšie. Nasledujúci program vypíše faktoriálne hodnoty čísel od 1 do 9.

    Príklad programu v PHP

    Výsledok jeho činnosti bude v prehliadači vyzerať asi takto:

    1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

    Organizácia aplikácie z viacerých súborov PHP Krátky podmienený alebo ternárny operátor

    Nižšie je uvedený všeobecný pohľad na operátor podmieneného priradenia pomocou ternárneho operátora:
    $vysledok = podmienka? výraz, ak je pravda: výraz, ak je nepravda;

    Príklad:
    $vysledok = ($a>5) ? $a+$b: $a-$b;

    Ak je a väčšie ako 5, potom sa výslednej premennej priradí hodnota a+b, v opačnom prípade a-b.

    Alternatíva k príkazu if s viacerými konštruktmi elseif. Vykonanie príkazov sa začína sekciou case, ktorej hodnota sa zhoduje s hodnotou výrazu a pokračuje cez všetky nasledujúce prípady, až kým nenarazíte na príkaz break - úplné vykonanie. Predvolená sekcia je alternatívou k sekcii else v podmienenom príkaze.

    Prepnúť ( výraz) (prípad hodnota 1: operátor 1; prípad: hodnota 2; operátor 2: hodnota 3 operátor 3 ; predvolene: predvolený operátor; ) urobiť);

    telo slučky

    ; zatiaľ čo (
    stave

    Rovnaký príklad:

    $i=2; $f=1; do ( $f=$f*$i; $i++; echo $i,"!=",$f," ";) zatiaľ čo ($i Upozorňujeme, že v tomto príklade sme všetko napísali do jedného riadku. Medzery a zalomenia riadkov tu nehrajú rolu a neovplyvnia konečný výsledok.

    PHP je prísnejšie na striktné dodržiavanie syntaxe a neodpustí vám absenciu bodkočiarky, zátvoriek, úvodzoviek atď., ako by to mohlo byť v prípade HTML. PHP v tomto prípade zobrazí správu o syntaktickej chybe, ktorú je potrebné opraviť, a označí riadok, kde bola táto chyba urobená.

    Mimochodom, v tomto prípade sme možno nepoužili bodkočiarku na konci príkazu, keďže je to jediný, ktorý v tomto prípade máme (príkaz). Pri práci s kódom je však najlepšie vždy dodržiavať osvedčené postupy.

    Deklarovanie premenných

    Premenná v PHP je druh kontajnera, ktorý môže obsahovať určité informácie. Aby sme vytvorili takýto „kontajner“, musíme ho pomenovať a uviesť, čo by v ňom malo „ležať“. To sa deje pomocou znamenia "$" , čo znamená, že máme do činenia s premennou. Dajme to do premennej s názvom test fráza ";) zatiaľ čo ($i.

    Výsledok spracovania tohto kódu bude úplne rovnaký ako v predchádzajúcom príklade. Fráza sa jednoducho zobrazí na obrazovke ";) zatiaľ čo ($i. Predtým sme však túto frázu dostali priamo na výstup, ale teraz sme túto frázu pridali do premennej test, po ktorom dali príkaz na zobrazenie hodnoty premennej na obrazovke test.

    Ako môžeme pridať ďalší text alebo iné informácie, ktoré sa zobrazia na obrazovke?

    Pozrime sa na to s nasledujúcim príkladom:

    Ako vidíte, po výstupe premennej test je tu medzera, potom bodka a potom znova medzera. Potom sa otvoria úvodzovky, najskôr jedna medzera a potom veta Volám sa Dmitrij Naumenko., po ktorom nasledujú záverečné úvodzovky.

    Poďme si prejsť jednotlivé kroky a uvidíme, čo je tu potrebné a prečo.

    Po výstupe premennej test Zdá sa, že k existujúcemu výstupu „pridávame“ ďalší text. To sa vykonáva pomocou symbolu bodky (.) .

    Symbol bodky v PHP znamená sčítanie, ale nie sčítanie čísel, ale pridanie textovej informácie, ako je tá, s ktorou pracujeme. Za bodkou v úvodzovkách uvedieme, čo presne chceme dodať na záver, a napíšeme novú vetu.

    Všimnite si, že za úvodnými úvodzovkami je medzera. Keď sa zobrazí na obrazovke, uloží sa, takže sa naše frázy nezlúčia. Tie. poskytneme vám výstup:
    Toto je PHP v akcii. Volám sa Dmitrij Naumenko.

    Ak tento priestor odstránite, získate:
    Toto je PHP v akcii Moje meno je Dmitrij Naumenko.

    Chcel by som tiež upozorniť na medzery na oboch stranách bodu pridania. Tieto priestory nehrajú žiadnu rolu a slúžia len pre prehľadnosť a jednoduchosť vnímania. Nasledujúci kód nám poskytne presne rovnaký výsledok:

    Preto píšte tak, ako je to pre vás v tomto prípade najpohodlnejšie.

    Vkladanie komentárov do kódu

    Prvá otázka - "Na čo sú vôbec?"

    Komentáre sú potrebné, aby ste si mohli robiť poznámky, komentáre, vysvetlenia atď. vo svojom kóde alebo kóde niekoho iného. pri práci s kódom. Teraz sa vám zdá, že všetko je jasné a zrejmé. Pokiaľ si dobre pamätáte, prečo je táto premenná potrebná a čo táto funkcia robí.

    Neprejde veľa času a bez komentárov ťažko pochopíte aj vlastný kód, nehovoriac o cudzích skriptoch. Preto je naliehavá potreba správneho používania komentárov.

    Vo všeobecnosti sa v PHP používajú dva typy komentárov:

    Samozrejme, komentáre fungujú iba v rámci blokov kódu PHP .

    Výstup HTML pomocou PHP

    Ako som už spomenul, PHP a HTML spolupracujú skvele. To, že sa nachádzame v bloku kódu PHP, neznamená, že nemôžeme zobraziť text v odseku alebo tučným písmom.

    Ako ste možno uhádli, výsledkom tohto kódu bude výstup tohto riadku tučným písmom do prehliadača.

    Vytvorte prvú funkciu

    Najprv pár slov o tom, čo je funkcia.

    Funkcia je druh mini-programu, ktorý robí nejakú užitočnú prácu a dáva nám výsledok.

    Má zmysel používať funkcie v prípadoch, keď potrebujete vykonať podobné akcie šablóny. V tomto prípade napíšeme taký miniprogram, ktorý výrazne zníži množstvo kódu a tým aj naše úsilie.

    Syntax pri vytváraní funkcie je nasledovná:

    Povedzme, že ak chceme napísať funkciu, ktorá vypočíta súčet čísel 10 a 5, môžeme urobiť toto:

    Vytvoríme funkciu tzv súčet a v jeho tele označíme, že má zobraziť súčet čísel 10 a 5. Potom zavoláme funkciu súčet. Volanie funkcie v podstate znamená jej vykonanie.

    V tomto príklade nepoužívame žiadne argumenty (pozri syntax funkcie vyššie). Čo sú argumenty a na čo sú potrebné, sa pozrieme priamo na príklad. Upravme kód, ktorý máme, aby bol flexibilnejší a funkčnejší:

    Teraz pri vytváraní funkcie súčet uvádzame dva argumenty v zátvorkách oddelené čiarkami - $slagaemoe1 A $slagaemoe2. V tele funkcie pridávame a zobrazujeme nie konkrétne čísla, ale hodnoty premenných $slagaemoe1 A $slagaemoe2(t. j. tie isté argumenty).

    Teraz stačí zavolať funkciu a odovzdať jej dva argumenty v zátvorkách, ktoré „očakáva“. Zadáme čísla 10 a 5, výsledkom je 15. Odovzdaním funkcie súčet iné čísla, samozrejme, dostaneme inú odpoveď.

    Dúfam, že vám tento prehľad pomohol pochopiť, čo je PHP a na čo je potrebné, aké má výhody oproti statickému HTML a ako môžete využiť niektoré z jeho najjednoduchších funkcií.

    Dmitrij Naumenko.

    P.S.

    Chcete sa posunúť ďalej v ovládaní PHP? Venujte pozornosť prémiovým lekciám o rôznych aspektoch tvorby webových stránok, vrátane programovania v PHP, ako aj bezplatnému kurzu vytvárania vlastného CMS systému v PHP od nuly. To všetko vám pomôže zvládnuť tento výkonný jazyk na vývoj webových aplikácií rýchlejšie a jednoduchšie:
    Páčil sa vám materiál a chcete sa mi poďakovať?


    Stačí zdieľať so svojimi priateľmi a kolegami!

    Za posledných päť rokov sme zaznamenali fantastický vývoj v oblasti internetu a nových spôsobov komunikácie medzi ľuďmi. V popredí tohto fenoménu je World Wide Web (WWW). Každý deň sa v tomto novom komunikačnom prostredí otvárajú tisíce nových stránok a spotrebiteľom sa ponúkajú nové typy služieb. Spolu s rýchlym rozvojom trhu sa objavil obrovský dopyt po nových technológiách a vývojároch, ktorí ich vlastnia. Ak čítate tento odsek, pravdepodobne už ste alebo sa čoskoro stanete webovým vývojárom. Bez ohľadu na vaše povolanie ste si vybrali túto knihu, pretože ste počuli o úžasnej novej technológii – PHP.

    V tejto kapitole sa zoznámite s jazykom PHP, pochopíte jeho históriu a možnosti a získate základné informácie potrebné na vývoj webových stránok s podporou PHP. Dúfam, že tieto príklady podnietia vaše nadšenie a ukážu, čo môže PHP urobiť pre vás a vašu organizáciu. Dozviete sa, ako nainštalovať a nakonfigurovať softvér PHP na počítačoch Linux/UNIX alebo Windows a ako vložiť PHP do HTML. Na konci kapitoly budete pripravení ponoriť sa hlbšie do ďalších dôležitých aspektov jazyka PHP. Takže, zapnite svetlá, zapnite svoju obľúbenú hudbu a pohodlne. Je čas zoznámiť sa s tým, čo sa stane jedným z najdôležitejších bodov vášho životopisu – programovaním v PHP.

    História PHP siaha až do roku 1995, keď nezávislý zmluvný programátor menom Rasmus Lerdorf napísal skript Perl/CGI na počítanie počtu návštevníkov webových stránok, ktorí si prečítali jeho online životopis. Jeho skript vyriešil dva problémy: registráciu údajov o návštevníkoch a zobrazenie počtu návštevníkov na webovej stránke. Vývoj WWW bol len na začiatku, neexistovali žiadne špeciálne nástroje na riešenie týchto problémov a na autora sa valil prúd správ s otázkami. Lerdorf začal rozdávať svoje nástroje zadarmo, tzv Osobná domovská stránka(PHP) alebo Hypertextový procesor(hypertextový procesor).

    Výrazný úspech sady nástrojov PHP viedol Lerdorffa k tomu, aby začal vyvíjať rozšírenia PHP. Jedno rozšírenie konvertovalo údaje zadané do formulára HTML na symbolické premenné, čo umožnilo ich export do iných systémov. Na dosiahnutie tohto cieľa sa Lerdorf rozhodol prejsť v ďalšom vývoji z jazyka Perl na jazyk C. Rozšírenie existujúcich nástrojov PHP viedlo k vzniku PHP 2.0 alebo PHP-FI (Personal Home Page -- Form Interpretator). Na vylepšovaní verzie 2.0 sa podieľali programátori z celého sveta.

    Nová verzia PHP bola mimoriadne populárna a čoskoro sa vytvoril hlavný vývojový tím. Ponechali pôvodný koncept vkladania kódu priamo do HTML a prepísali mechanizmus lexikálnej analýzy, čo viedlo k vzniku PHP 3.0. V čase, keď bola v roku 1997 vydaná verzia 3.0, viac ako 50 000 používateľov používalo PHP na zlepšenie svojich webových stránok.

    V roku 1997 sa rozhodlo, že skratka PHP by nemala znamenať „Personal Home page“, ale „PHP Hypertext Processor“

    Počas nasledujúcich dvoch rokov rýchly vývoj PHP pokračoval. Do jazyka pribudli stovky nových funkcií a počet používateľov rýchlo rástol. Začiatkom roku 1999 Netcraft (http://www.netcraft.com) oznámil, že PHP podľa odhadov prekonalo 1 000 000 používateľov, čím sa PHP stal jedným z najpopulárnejších skriptovacích jazykov na svete.

    Začiatkom roku 1999 bolo oznámené pripravované vydanie PHP 4.0. Hoci jednou z najväčších predností PHP bola efektívnosť skriptovania, PHP pôvodne nebolo navrhnuté na podporu rozsiahlych aplikácií. Z tohto dôvodu sa začali práce na robustnejšom motore lexikálnej analýzy, známejšom ako Zend (http://www.zend.com). Práca pokračovala rýchlo a skončila 22. mája 2000 vydaním PHP verzie 4.0.

    Okrem lexikálneho analyzátora Zend distribuuje Zend Technologies (Izrael) optimalizátor Zend, ktorý zvyšuje výkonnostné výhody používania lexikálneho analyzátora Zend. Testy ukazujú, že zrýchlenie programu v dôsledku použitia optimalizátora sa pohybuje od 40 do 100%. Pre viac informácií navštívte webovú stránku Zend.

    V čase písania tohto článku je podľa Netcraft (http://www.netcraft.com) softvér PHP nainštalovaný na viac ako 3,6 miliónoch domén. Budúcnosť PHP vyzerá jasne, pretože tento produkt naďalej intenzívne využívajú veľké webové stránky aj jednotliví používatelia.

    PHP je najlepšie opísať ako vložený webový skriptovací jazyk na strane servera, ktorý umožňuje vývojárom rýchlo a efektívne vytvárať dynamické webové aplikácie. Z hľadiska gramatiky a syntaxe sa PHP podobá na programovací jazyk C, aj keď vývojári neváhali zahrnúť nástroje z iných jazykov vrátane Perlu, Javy a C++. Medzi cenné funkcie patrí podpora regulárnych výrazov, výkonná manipulácia s poľami, objektovo orientovaná metodológia a rozsiahla podpora databáz.

    Pri písaní aplikácií, ktoré presahujú tradičnú, statickú metodiku vývoja webových stránok (t.j. HTML), môže PHP slúžiť aj ako cenný nástroj na vytváranie a správu dynamického obsahu, ktorý sa používa spolu s JavaScriptom, štýlmi, WML (Wireless Markup Language) a ďalšie užitočné jazyky. Vďaka prítomnosti stoviek štandardných funkcií je PHP schopné vyriešiť takmer akýkoľvek problém, ktorý vývojára napadne. Má rozsiahlu podporu pre tvorbu a manipuláciu s grafikou, matematiku, elektronický obchod a populárne technológie ako XML (Extensible Markup Language), ODBC (Open Database Connectivity) a Macromedia Shockwave. Široká škála možností eliminuje potrebu rutinnej a náročnej práce s pripájaním modulov tretích strán, a preto si veľa vývojárov z celého sveta vyberá PHP.

    Jednou z hlavných výhod PHP je fakt, že je vložené priamo do HTML kódu, takže programátor nemusí písať program s množstvom príkazov, aby jednoducho vytvoril HTML. HTML a PHP kód je možné podľa potreby prekladať. PHP vám umožňuje napísať fragment takto:

    Správa "Ahoj svet!" sa zobrazí v hlavičke webovej stránky. Čo je zaujímavé, je, že príkaz print vo vnútri konštrukcie bežne nazývanej PHP escape sekvencie () predstavuje kompletný program. Žiadny dlhý inicializačný kód, žiadne vkladanie knižníc - program pozostáva len z kódu, ktorý priamo rieši problém!

    Samozrejme, ak chcete spustiť PHP skripty, musíte najprv nainštalovať a nakonfigurovať PHP softvér na serveri. Tento proces je popísaný v časti „Stiahnutie a inštalácia PHP/Apache“ tejto kapitoly. Tejto časti predchádzajú úryvky z niekoľkých pro-PHP používateľských recenzií, ktoré poskytujú stručný prehľad o jazyku a jeho histórii. Predtým, ako sa pustíme do procesu inštalácie, spoznáme niektoré vlastnosti PHP. Tejto téme je venovaná ďalšia časť.

    Vlastnosti PHP

    Ako ste si už určite uvedomili, hlavným faktorom pri navrhovaní jazyka PHP je praktickosť. PHP by malo poskytnúť programátorovi nástroje na rýchle a efektívne riešenie problémov. Praktický charakter PHP je spôsobený piatimi dôležitými vlastnosťami:

    • tradícia;
    • jednoduchosť;
    • efektívnosť;
    • bezpečnosť;
    • flexibilita.

    Je tu ešte jedna funkcia, ktorá robí PHP obzvlášť atraktívnym: je zadarmo!

    Tradičnosť

    Jazyk PHP sa zdá byť známy programátorom pracujúcim v rôznych oblastiach. Mnoho jazykových konštrukcií je vypožičaných z jazyka C Perl a kód PHP je často prakticky nerozoznateľný od toho, čo nájdeme v typických programoch v jazyku C alebo Pascal. To výrazne znižuje počiatočné úsilie pri učení PHP.

    Jednoduchosť

    PHP skript môže mať dĺžku 10 000 riadkov alebo len jeden riadok, v závislosti od špecifík vašej úlohy. Nemusíte načítať knižnice, špecifikovať špeciálne možnosti kompilácie ani nič podobné. PHP engine jednoducho začne vykonávať kód po prvej escape sekvencii (). Ak má kód správnu syntax, vykoná sa presne tak, ako určil programátor.

    Efektívnosť

    Efektivita je mimoriadne dôležitým faktorom pri programovaní pre prostredia s viacerými používateľmi, ako je napríklad WWW. PHP 4.0 zaviedlo mechanizmus alokácie zdrojov a poskytlo vylepšenú podporu pre objektovo orientované programovanie, ako aj zariadenia na správu relácií. Najnovšia verzia tiež zavádza mechanizmus počítania referencií, ktorý zabraňuje prideľovaniu nepotrebnej pamäte.

    Bezpečnosť

    PHP poskytuje vývojárom a správcom flexibilné a výkonné bezpečnostné funkcie, ktoré spadajú do dvoch kategórií: nástroje na úrovni systému a nástroje na úrovni aplikácií.

    Kontroly zabezpečenia na úrovni systému

    PHP implementuje bezpečnostné mechanizmy, ktoré sú kontrolované administrátormi; Pri správnej konfigurácii poskytuje PHP maximálnu flexibilitu a bezpečnosť. PHP môže bežať v tzv bezpečné režim(bezpečný režim), ktorý obmedzuje možnosti používateľov používať PHP podľa množstva dôležitých ukazovateľov. Môžete napríklad obmedziť maximálny čas vykonávania a využitie pamäte (nekontrolovaná spotreba pamäte negatívne ovplyvňuje výkon servera). Podobne ako v prípade cgi-bin môže administrátor nastaviť obmedzenia pre adresáre, v ktorých môže používateľ prezerať a spúšťať skripty PHP, ako aj používať skripty PHP na prezeranie citlivých informácií na serveri (ako je súbor passwd).

    Zabezpečenie na úrovni aplikácie

    Štandardná sada funkcií PHP obsahuje množstvo silných šifrovacích mechanizmov. PHP je tiež kompatibilné s mnohými aplikáciami tretích strán, čo uľahčuje integráciu s bezpečnými technológiami elektronického obchodu. Ďalšou výhodou je, že zdrojový kód PHP skriptov nie je možné zobraziť v prehliadači, pretože skript sa pred odoslaním na žiadosť používateľa skompiluje. Implementácia PHP na strane servera zabraňuje krádeži netriviálnych skriptov užívateľmi, ktorých znalosti postačujú aspoň na vykonanie príkazu View Source.

    Téma bezpečnosti je taká dôležitá, že je jej venovaná celá kapitola. Viac informácií o bezpečnostných funkciách PHP nájdete v kapitole 16.

    Flexibilita

    Pretože PHP je vložený jazyk, je mimoriadne flexibilný, aby vyhovoval potrebám vývojárov. Aj keď sa PHP vo všeobecnosti odporúča používať v spojení s HTML, rovnako dobre sa integruje s jazykmi JavaScript, WML, XML a inými jazykmi. Dobre štruktúrované PHP aplikácie je navyše možné jednoducho rozširovať podľa potreby (ako je to u všetkých hlavných programovacích jazykov).

    Neexistujú žiadne problémy ani so závislosťami prehliadača, pretože PHP skripty sú pred odoslaním klientovi úplne kompilované na strane servera. PHP skripty možno v podstate doručiť do akéhokoľvek zariadenia s prehliadačom, vrátane mobilných telefónov, elektronických poznámkových blokov, pagerov a notebookov, nehovoriac o tradičných počítačoch. Programátori pomocných programov môžu spúšťať PHP v režime príkazového riadka.

    Pretože PHP neobsahuje kód špecifický pre webový server, používatelia nie sú obmedzení na konkrétne servery (možno im neznáme). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold a Zeus -- PHP beží na všetkých týchto serveroch. Keďže tieto servery bežia na rôznych platformách, PHP je vo všeobecnosti platformovo nezávislý jazyk a existuje na platformách ako UNIX, Solaris, FreeBSD a Windows 95/98/NT.

    Napokon, nástroje PHP umožňujú programátorovi pracovať s externými komponentmi, ako sú Enterprise Java Beans alebo objekty Win32 COM. Vďaka

    S týmito novými funkciami zaberá PHP svoje právoplatné miesto medzi modernými technológiami a zabezpečuje škálovanie projektov na požadované limity.

    Bezplatná distribúcia

    Stratégia Open Source robí vlny v softvérovom priemysle. Distribúcia zdrojového kódu širokým masám mala nepochybne priaznivý vplyv na mnohé projekty, predovšetkým Linux, hoci úspech projektu Apache výrazne posilnil pozíciu podporovateľov Open Source. To isté platí pre históriu PHP, keďže podpora používateľov z celého sveta sa ukázala ako veľmi dôležitý faktor pri vývoji projektu PHP.

    Prijatie stratégie Open Source a bezplatná distribúcia zdrojového kódu PHP poskytuje používateľom neoceniteľnú službu. Okrem toho je responzívna komunita používateľov PHP akýmsi „tímovým help deskom“ a obľúbené online fóra poskytujú odpovede aj na tie najzložitejšie otázky.

    “S niekoľkými vývojármi PHP sme už dlhší čas v osobnom kontakte a mali sme s nimi rozsiahlu korešpondenciu. Keď mali vývojári PHP nejaké problémy súvisiace s MySQL, boli sme vždy pripravení pomôcť im nájsť riešenie. Do MySQL sme zahrnuli aj niekoľko nových funkcií, aby sme zlepšili jeho integráciu s PHP. Výsledkom nášho úsilia je, že MySQL funguje skvele s PHP – a my sa postaráme o to, aby tomu tak bolo aj v budúcnosti!“

    Michael "Monty" Widenius

    “Výber PHP na implementáciu mp3.lycos.com bol spôsobený niekoľkými dôvodmi. Hlavným dôvodom boli krátke termíny práce na projekte – veď PHP zrýchľuje proces vývoja. Ďalším dôvodom bola efektivita – dostali sme sa z 0 na 1,4 milióna návštev za deň a PHP to zvládlo skvele. Tretím dôvodom bolo, že som s istotou vedel, že ak sa v PHP objavia nejaké chyby počas testovania s vysokou záťažou, dokážem ich opraviť sám, keďže PHP je distribuované spolu so zdrojovým kódom.“

    Stig Bakken,

    “PHP používam od prvých dní, od PHP/FI 1.x. Páčilo sa mi, že môžem spracovávať formuláre a upravovať stránky za behu pomocou takého jednoduchého jazyka. PHP sa vyvíjalo spolu s potrebami mojej spoločnosti.

    PHP je v dnešnej dobe mimoriadne výkonné. Používame ho takmer na každej webovej stránke, ktorú vytvoríme, vrátane 32bit.com a DevShed.com. Dokonca sme ho použili v Info West na implementáciu help desk, správy účtov a sledovania portov.

    Evolúcia PHP a jeho uznanie svetovou komunitou je klasickým príkladom úspešného open source projektu. Otvorenosť tvorcov, podpora komunity a dobre udržiavaná kódová základňa doviedli PHP k úspechu, o akom mnohé komerčné projekty môžu len snívať. Som optimista, pokiaľ ide o budúcnosť PHP a odporúčam každému vývojárovi webu, aby to vyskúšal. Možno, rovnako ako ja, sa s ním nikdy nerozlúčite."

    Randy Cosby

    Úvodný príklad

    Príklad vo výpise 1.1 ukazuje, ako ľahko sa PHP integruje s HTML kódom.

    Výpis 1.1.

    Vytvorenie dynamickej stránky PHP

    // Priraďte hodnoty viacerým premenným";!}

    $site_title = "PHP recepty

    $bg_color = "biela";