PEAR
PEAR je skratka výrazu PHP Extension and Application Repository. Ide o systém balíčkov rozširujúcich funkcie štandardného jazyka PHP. Vďaka mnohým pripraveným riešeniam je tvorba aplikácií výrazne zjednodušená, pretože sa nemusíme zaoberať elementárnymi vecami a riešime priamo problém aplikácie. Domovskou stránkou projektu je http://pear.php.net.
Inštalácia PEAR-u
Repositár PEAR využíva systém balíčkov, ktoré sa inštalujú podobne ako linuxové aplikácie. Na domovských stránkách projektu nájdeme podrobné informácie k inštalácii v prostredí rôzných operačných systémov. Predpokladáme, že väčšina používateľov nemá vlastný server a bude knižnice PEAR využívať na nejakej webhostingovej službe. Z toho dôvodu sa zameriame na inštaláciu pomocou skriptu na serveri. Z adresy http://pear.php.net/go-pear si skopírujeme zobrazený skript a uložíme do súboru go-pear.php, ktorý následne umiestnime na server, napr. pomocou FTP klienta. Načítame stránku zo serveru do prehliadača, napr. http://www.example.com/go-pear.php. Mal by sa zobraziť grafický inštalátor na webovej stránke. Klepneme na odkaz Next, následne potvrdíme inštaláciu a počkáme na jej dokončenie. Potom klepneme na odkaz s informáciami o inštalácii a počkáme na zobrazenie konfigurácie.
Nastavenie
Aby sme mohli jednoduchým spôsobom do PEAR-u inštalovať potrebné balíčky, musíme nastaviť tzv. inštalačné kanály. Prejdeme do sekcie Channel Management, kde klepneme na tlačidlo Update Channels List. Týmto spôsobom aktualizujeme kanály.
Inštalácia balíčkov
Pre používanie PEAR-u musíme nainštalovať potrebné súčasti. Prejdeme teda do sekcie Package Management a pozrieme sa na jednotlivé dostupné balíčky. Inštaláciu môžeme okamžite začať klepnutím na odkaz Install package.
Pripojenie PEAR-u do web aplikácie
<?php
$env=getenv('PHP_PEAR_INSTALL_DIR');
set_include_path($env);
require_once('PEAR.php');
require_once('HTML/QuickForm.php');
?>
PHP_PEAR_INSTALL_DIR – obsahuje cestu, kde je PEAR na serveri nainštalovaný.
set_include_path() – pridanie cesty k automaticky prehľadávaným miestam.
Balíčky pripájame pomocou funkcie require_once().
Tvorba formuláru s HTML_QuickForm
<?php
$form = new HTML_QuickForm('login', 'POST');$form->addElement('text','pouzivatel','Používateľské meno','size="10"');
$form->addRule('pouzivatel', 'Zadajte svoje používateľské meno', 'required', null, 'client');
$form->addElement('password', 'heslo', 'Heslo:');
$form->addElement('submit','odoslat','Prihlásiť');
$form->display();
?>
K jednotlivým častiam formuláru používame objektový prístup.
$form – nový objekt, parametre sú názov formuláru a metóda odosielania dát, môžu nasledovať akcie, cieľový rámec atď. (viď dokumentáciu k balíčku).
addElement() – pridávanie jednotlivých elementov.
addRule() – pravidlo pre overovanie zadaného obsahu, pridá JavaScript.
display() – zobrazenie formuláru.
Výsledok:
Ukážka zdrojového kódu vygenerovaného formuláru - tu.
Autentifikácia
Použijeme balíček Auth. Spolupracuje so súbormi s heslami, databázami, protokolmi (POP3, LDAP, SOAP, Samba), využíva sessions.
V príklade použijeme overovanie pomocou MySQL databázy.
Tabuľka bude mať tvar:
CREATE TABLE auth (
username VARCHAR(50) default ‚‘ NOT NULL,
password VARCHAR(32) default ‚‘ NOT NULL,
PRIMARY KEY (username),
KEY (password)
);
<?php
$env=getenv('PHP_PEAR_INSTALL_DIR'); set_include_path($env);
require_once('Auth/Auth.php');
function loginFunction()
{
//výpis prihlasovacieho formuláru, napríklad pomocou predchádzajúceho príkladu
}
if (isset($_GET['login']) && $_GET['login'] == 1)
{
$optional = true;
} else
{
$optional = false;
}
?>
<?php
params = array(
"dsn" => "mysql://root:aaa@localhost/smatlik",
"table" => "auth",
"usernamecol" => "username",
"passwordcol" => "password"
);
$a = new Auth("DB", $params, "loginFunction",$optional);
$a->start();
?>
$params – parametre pripojenia ([typ_databazy]://[pouzivatel]:[heslo]@[server]/[nazov_db])
$a – objekt triedy Auth, parametre sú typ (v tomto prípade db), vlastnosti, funkcia na prihlasovanie a ďalšie.
start() – metóda spúšťa overovanie.
<?php
echo "Tento text sa zobrazí aj neprihláseným používateľom.<br />";
if (!isset($_GET['login']))
{
echo "<a href=\"$_SERVER[PHP_SELF]?login=1\">Prihlásenie</a>\n";
} if ($a->getAuth())
{
echo "Tento text vidí LEN prihlásený používateľ.";
}
?>
Šablóny – HTML_TEMPLATE_IT
<html>
<head>
<title>{titulok}</title>
</head>
<body>
<h3>{titulok}</h3>
<ul>
<!-- BEGIN tovar -->
<li><a href="{produkt}.html">{produkt}</a></li>
<!-- END tovar -->
</ul>
</body>
</html>
Vytvoríme si súbor so šablónou, napr. obchod.tpl.
{identifikátor} – bude sa nahrádzať zodpovedajúcim obsahom.
Na pomenovaní bloku záleží (tovar), jeho meno budeme volať v php skripte.
Vnorenie šablóny do nadradenej šablóny sa dá urobiť pomocou <!--INCLUDE dalsia_sablona.tpl -->
<?php
$env = getenv('PHP_PEAR_INSTALL_DIR');
set_include_path($env);
require_once('HTML/Template/IT.php');
$tovar = array('Mačeta', 'Nôž', 'Reťaz');
$sablona = new HTML_TEMPLATE_IT('./');
$sablona->loadTemplateFile('obchod.tpl');
$sablona->setVariable('titulok','Obchod s užitočným tovarom');
foreach ($tovar as $produkt)
{
$sablona->setCurrentBlock("tovar");
$sablona->setVariable('produkt', $produkt);
$sablona->parseCurrentBlock();
}
$sablona->show();
?>
setVariable() – nahradenie kľúčových slov v šablóne obsahom.
setCurrentBlock() – začiatok práce s blokom.
parseCurrentBlock() – ukončenie práce s blokom.
show() – zobrazenie šablóny.

