| version 1.1, 2003/06/30 18:57:39 |
version 1.2, 2003/06/30 21:57:29 |
|
|
| % 03-06-30 - created |
% 03-06-30 - created |
| % |
% |
| |
|
| % $Platon: Platon.SK/office/_templates/template.tex,v 1.6 2003/06/29 10:28:04 nepto Exp $ |
% $Platon: Platon.SK/office/open-projekt/2003-phpMyEdit-prihlaska.tex,v 1.1 2003/06/30 18:57:39 nepto Exp $ |
| |
|
| \documentclass[a4paper,12pt,oneside]{article} |
\documentclass[a4paper,12pt,oneside]{article} |
| \usepackage [slovak]{babel} |
\usepackage [slovak]{babel} |
|
|
| oso-bi-tým |
oso-bi-tým |
| ve-rej-nost-ti |
ve-rej-nost-ti |
| exi-stu-je |
exi-stu-je |
| |
do-te-raj-ší |
| |
umies-tne-ný |
| |
dy-na-mi-cky |
| |
me-cha-ni-zmom |
| }% */ |
}% */ |
| |
|
| \def\URL#1{\texttt{#1}} |
\def\URL#1{\texttt{#1}} |
| Line 68 e-mail: nepto@platon.sk |
|
| Line 72 e-mail: nepto@platon.sk |
|
| |
|
| \subsection*{Zámery a ciele} |
\subsection*{Zámery a ciele} |
| |
|
| |
Cieľom je vybudovať programový rámec pre~rýchle a efektívne vytváranie |
| |
internetových aplikácií zaoberajúcich sa manipulovaním s datami |
| |
uloženými v~entitno-relačných SQL databázach. Tento rámec by mal byť |
| |
dostatočne jednoduchý a zrozumiteľný, aby jeho použitie podnecovalo |
| |
začiatočníkov do~tvorivej činnosti, no zároveň by mal byť dosť silný a |
| |
výkonný nato, aby vyhovoval aj kritériam náročnejších používateľov. |
| |
|
| \subsection*{Internetové odkazy} |
\subsection*{Internetové odkazy} |
| |
|
| Domovská stránka projektu \phpMyEdit{} je |
Domovská stránka projektu \phpMyEdit{} je |
| Line 85 dokumentácií a správcu distribučných bal |
|
| Line 96 dokumentácií a správcu distribučných bal |
|
| \URL{http://platon.sk/projects/main\_page.php?project\_id=5} |
\URL{http://platon.sk/projects/main\_page.php?project\_id=5} |
| \end{itemize} |
\end{itemize} |
| |
|
| CVS archívu projektu \phpMyEdit{} |
CVS archív projektu \phpMyEdit{} |
| |
|
| \begin{itemize} |
\begin{itemize} |
| \item[] \URL{http://platon.sk/cvs/cvs.php/phpMyEdit/} |
\item[] \URL{http://platon.sk/cvs/cvs.php/phpMyEdit/} |
| Line 130 implementovala aj nové vymoženosti. Použ |
|
| Line 141 implementovala aj nové vymoženosti. Použ |
|
| niekoľkonásobne zväčšila. Vďaka niektorým novým príležitostným |
niekoľkonásobne zväčšila. Vďaka niektorým novým príležitostným |
| prispievateľom sa vdýchol projektu nový život. |
prispievateľom sa vdýchol projektu nový život. |
| |
|
| V aktuálnej verzii 5.3 prichádza \phpMyEdit{} konečne aj s kompletnou |
V~aktuálnej verzii 5.3 prichádza \phpMyEdit{} konečne aj s~kompletnou |
| dokumentáciou v~HTML i PDF, ktorú pomohol vytvoriť Doug Hockinson. V |
dokumentáciou v~HTML i PDF, ktorú pomohol vytvoriť Doug Hockinson. |
| rozsiahlej dokumentácii sú popísané nielen všetky aspekty a črty |
V~rozsiahlej dokumentácii sú popísané nielen všetky aspekty a črty |
| používania tohto projektu, ale tiež užitočné rady pri tvorbe vlastných |
používania tohto projektu, ale tiež užitočné rady pri~tvorbe vlastných |
| rozšírení funkcionality či rady pri integrácií vytvorených skriptov do |
rozšírení funkcionality či rady pri integrácii vytvorených skriptov |
| existujúcich webstránok. |
do~existujúcich webstránok. |
| |
|
| \subsection*{Detailný popis} |
\subsection*{Detailný popis} |
| |
|
| |
Projekt \phpMyEdit{} sa skladá z~dvoch častí, \textit{generovacieho |
| |
skriptu} a \textit{PHP triedy}, pričom druhá nadväzuje na~prvú. Obe |
| |
časti si osobitne popíšeme. |
| |
|
| |
\begin{itemize} |
| |
\item \underline{Generačný skript} |
| |
|
| |
Použitie generačného skriptu je voliteľné. Existuje len |
| |
za~účelom zjednodušenia celého procesu stavby aplikácie |
| |
obsluhujúcej databázovú tabuľku. Extrahované obrazovky |
| |
generačného skriptu sa nachádzajú v~dokumentácii. Tá vo~svojej |
| |
druhej kapitole podrobne popisuje celý proces jeho použitia. |
| |
|
| |
Na~začiatku používateľ prostredníctvom internetového prehliadača |
| |
dosiahne súbor \texttt{phpMyEditSetup.php}. Privíta ho obrazovka |
| |
slúžiaca na~prihlásenie sa do~databázy. Po~korektnom vyplnení |
| |
hodnôt dostane používateľ na~výber zo~zoznamu databáz. Obdobne |
| |
nasleduje výber zoznamu tabuliek z~príslušnej databázy. Nakoniec |
| |
používateľ definuje, ktorý stĺpec tabuľky chce používať ako |
| |
primárny kľúč a všetko je pripravené na~zostavenie |
| |
\textit{volacieho skriptu}. |
| |
|
| |
Volací skript je generačným skriptom vygenerovaný PHP kód. Tento |
| |
kód je umiestnený v~jednom súbore. Generačný skript môže kód |
| |
zapísať buď priamo na~disk alebo ho zobraziť vo~výslednej |
| |
obrazovke procesu generovania. V~tomto prípade je jeho vloženie |
| |
do~súboru ponechané na~samotného používateľa, čo zvyšuje |
| |
bezpečnosť celej akcie. |
| |
\newpage |
| |
\item \underline{PHP trieda} |
| |
|
| |
Uvažujme, že máme vytvorený \textit{volací skript}. Nezáleží |
| |
na~tom, či bol vytvorený manuálne s~pomocou dokumentácie alebo |
| |
prostredníctvom generačného skriptu, ktorý bol spomenutý |
| |
v~predchádzajúcom bode. Volací skript v~sebe musí najskôr |
| |
obsahovať nastavenie konfiguračných hodnôt, ďalej načítanie PHP |
| |
triedy a nakoniec vytvorenie a spustenie inštancie tejto triedy. |
| |
Nadefinované konfiguračné hodnoty sa predávajú ako parametre |
| |
konštruktoru. V~tejto chvíli sa z~našeho volacieho skriptu stáva |
| |
PHP aplikácia kompletne obsluhujúca jednu databázovú tabuľku. |
| |
Pokiaľ sú nutné nejaké modifikácie dosiahnutej funkcionality, |
| |
stačí zmeniť príslušné konfiguračné hodnoty vo~volacom skripte |
| |
za~pomoci dokumentácie. |
| |
|
| |
O~tom ako dosiahnuť konkrétnu funkcionalitu pojednáva podrobná |
| |
dostupná dokumentácia. My si predstavíme jednotlivé vymoženosti |
| |
aplikácie bez ukázania konkrétnej konfigurácie. Je teda možné: |
| |
|
| |
\begin{itemize} |
| |
|
| |
\item pridávanie, menenie, prezeranie, kopírovanie a mazanie |
| |
záznamov |
| |
|
| |
\item stránkovanie, triedenie a vyhľadávanie v~manipulovanej |
| |
tabuľke |
| |
|
| |
\item náhľady do~iných tabuliek za účelom zobrazenia hodnôt |
| |
vo~vyskakovacom menu; týmto spôsobom sú implementované |
| |
databázové 1:M väzby, ktoré sú často využívané |
| |
|
| |
\item nastavenie prístupových práv pre jednotlivé |
| |
manipulačné akcie; vo~viacužívateľskom prostredí je |
| |
možné a aj vhodné tento parameter nastavovať dynamicky |
| |
v~závislosti od~typu užívateľa využívajúceho databázovú |
| |
aplikáciu |
| |
|
| |
\item výber z~viacerých spôsobov navigácie od~klasických |
| |
HTML tlačidiel, cez textové odkazy, až po~grafické linky |
| |
|
| |
\item kontrolovať výstupný dizajn kompletne pomocou |
| |
technológie CSS; každý element má definovanú svoju |
| |
triedu, pričom je možné elementy vzájomne spájať, ale i |
| |
oddeľovať v~rôznych triedach |
| |
|
| |
\item logovať a zaznamenávať vykonané akcie nad~tabuľkou |
| |
do~špeciálnej tabuľky so~zmenami (tzv.~\texttt{changelog} |
| |
tabuľka) |
| |
|
| |
\item používať lokalizované nápisy, nakoľko podpora pre~viac |
| |
jazykov je implementovaná; \phpMyEdit{} vo~svojej |
| |
poslednej verzii obsahoval 14~jazykových mutácií a ich |
| |
počet odvtedy narástol |
| |
|
| |
\item rozširovať základnú PHP triedu pomocou dedenia, ktoré |
| |
je štandardným mechanizmom objektovo-orientovaného |
| |
programovania; pokiaľ má používateľ záujem na~osobitnej |
| |
funckionalite, je vhodné ju implementovať v~zdedenej |
| |
triede, pretože to môže priniesť osoh v~budúcnosti |
| |
v~podobe ľahšieho aktualizovania a prechodu na~novú |
| |
verziu produktu |
| |
|
| |
\end{itemize} |
| |
|
| |
\end{itemize} |
| |
|
| \subsection*{Sponzori} |
\subsection*{Sponzori} |
| |
|
| Jediným sponzorom projektu je Doug Hockinson zo~štátu Colorado |
Jediným sponzorom projektu je Doug Hockinson zo~štátu Colorado |
| Line 171 je aktívne používaný aj na~nasledujúcich |
|
| Line 277 je aktívne používaný aj na~nasledujúcich |
|
| |
|
| \subsection*{Vývojový plán} |
\subsection*{Vývojový plán} |
| |
|
| |
Nové vymoženosti a vlastnosti sú napísané na zozname vecí, ktoré sa |
| |
plánujú urobiť (tzv. TODO list). Zoznam je súčasťou distribučného |
| |
balíka. V~CVS archíve projektu \phpMyEdit{} sa už dokonca nachádzajú aj |
| |
základné špecifikácie týchto úloh. Preferovaná je cesta detailného |
| |
oboznámenia sa s problémom, hĺbkovej a dôslednej analýzy a až nakoniec |
| |
samotnej implementácie. Aj v~minulosti boli nové vymožnenosti |
| |
realizované týmto spôsobom. |
| |
|
| |
|
| |
\begin{itemize} |
| |
\item \underline{Rozšírená podpora pre dátumy a časy} |
| |
|
| |
Projekt \phpMyEdit{} už v~sebe obsahuje podporu pre~dátumy a |
| |
časy. V~pláne je však rozšírenie implementácie tejto podpory |
| |
o~správne narábanie s časmi pred rokom 1970, ďalej o~zadávanie |
| |
mesiacov alebo dní v~týždni pomocou vyskakovacích menu, ktoré |
| |
budú obsahovať správne lokalizované textové vyjadrenia týchto |
| |
elementov a podobne zamerané vlastnosti. |
| |
|
| |
\item \underline{Sofistikované generovacie skripty} |
| |
|
| |
Počet konfiguračných volieb projektu \phpMyEdit{} je úctihodný. |
| |
Napriek tomu, že sú všetky detailne popísané v~dokumentácii, je |
| |
vôla najmä zo~strany užívateľov o~vytvorenie sofistikovaných |
| |
generovacích skriptov. Tie by mali nahradiť doterajší jednoduchý |
| |
generovací skript a pomocou nich by malo byť možné |
| |
prostredníctvom editačných prvkov HTML kompletne nastavovať |
| |
všetky konfiguračné parametre bez~použitia dokumentácie. |
| |
Samozrejme, manuálne vytváranie vygenerovaného volacieho skriptu |
| |
bude aj naďalej možné. |
| |
|
| |
\item \underline{Databázová abstrakcia} |
| |
|
| |
Čoraz častejšie si uvedomujeme výrazné obmedzenie na~jeden |
| |
databázový server. Hoci v oblasti webu patrí medzi |
| |
najpoužívanejšie, existuje niekoľko situácií, kedy je jeho |
| |
použitie nevhodné. Preto je plánovaná databázová abstrakcia |
| |
pomocou známych modulov \texttt{PEAR:DB} alebo |
| |
\texttt{PEAR:MDB}. |
| |
|
| |
\end{itemize} |
| |
|
| \subsection*{Zhodnotenie} |
\subsection*{Zhodnotenie} |
| |
|
| |
Zmysel projektu \phpMyEdit{} spočíva vo~sprístupnení možnosti |
| |
elegantného tvorenia databázovo orientovaných aplikácii na~webe |
| |
pre~používateľov disponujúcich len základnými alebo až minimálnymi |
| |
vedomosťami programovania v~skriptovacom jazyku PHP. Odozvy, ktoré |
| |
pravidelne dostávame jasne poukazujú na fakt, že aj človek ovládajúci |
| |
len niekoľko nevyhnutných syntaktických čŕt tohto jazyka, je schopný |
| |
vytvoriť jednoduchú databázovú aplikáciu typu telefónny zoznam |
| |
bez~cudzej pomoci. O~to viac nás samozrejme teší, keď sa |
| |
dozvedáme o~skúsených programátoroch, ktorý použili náš projekt |
| |
na~obsluhu niekoľkých desiatok databázových tabuliek alebo na vytvorenie |
| |
komplexného databázového systému pre~stredne veľkú spoločnosť. |
| |
|
| |
Za osobitnú zmienku stojí komunita, ktorá sa okolo produktu \phpMyEdit{} |
| |
vytvorila. Do~projektových diskusných fór pravidelne pribúdajú každý deň |
| |
nové príspevky a odpovede. Neustále sa dozvedáme nové a netradičné |
| |
použitia našej aplikácie. Sme radi, že ľudia si uvedomujú podstatu |
| |
filozofie otvoreného softvéru a prispievajú so~svojími, hoci len malými, |
| |
poznatkami späť do projektu alebo jeho používateľskej základni. |
| |
|
| \vfill |
\vfill |
| |
|
| \scriptsize{Dokument bol vysádzaný systémom~\LaTeX{} pomocou |
\scriptsize{Dokument bol vysádzaný systémom~\LaTeX{} pomocou |