% % 2003-phpMyEdit-prihlaska.tex % % Copyright (c) 2003 Platon SDG, http://platon.sk/ % Licensed under terms of GNU General Public License. % All rights reserved. % % Changelog: % 03-06-30 - created % % $Platon: Platon.SK/office/open-projekt/2003-phpMyEdit-prihlaska.tex,v 1.10 2005/03/30 16:23:41 nepto Exp $ \documentclass[a4paper,12pt,oneside]{article} \usepackage [slovak]{babel} \usepackage {platonsdg-core} \setPlatonPDFtitle{Prihláška do súťaže Open Projekt 2003} \setPlatonPDFauthor{Platon SDG} \usepackage {platonsdg} % delenie slov /* \hyphenation{ oso-bi-tým ve-rej-nost-ti exi-stu-je do-te-raj-ší umies-tne-ný dy-na-mi-cky me-cha-ni-zmom umiest-ne-ný }% */ \def\phpMyEdit{\textsf{phpMyEdit}} \def\PlatonSK{\textsf{\PlatonSKText}} \def\PlatonSDG{\textsf{\PlatonSDGText}} \def\PlatonSDGLong{\textsf{\PlatonSDGLongText}} \pagestyle{Platon} \thispagestyle{PlatonFirstPage} \begin{document} \PlatonHeader{} \subsection*{Meno} \phpMyEdit{} -- editor MySQL tabuliek a generátor PHP kódu \subsection*{Popis} \phpMyEdit{} generuje PHP kód pre~zobrazovanie alebo editovanie MySQL tabuliek v~HTML. Všetko, čo je nutné urobiť, je napísať jednoduchý \textit{volací skript}. V~rámci projektu však existuje aj nástroj, ktorý kód pre~tento volací skript vygeneruje. \phpMyEdit{} obsahuje širokú množinu vymožeností na prácu s~tabuľkou -- pridávanie, menenie, prezeranie, kopírovanie a mazanie záznamov. Ďalej je to triedenie a vyhľadávanie v~tabuľke, náhľady do~ďalších tabuliek pre~väzby 1:N a mnoho ďalších vymožeností. \subsection*{Vývojový tím} \begin{description} \item[Ondrej Jombík] -- implementácia a dokumentácia \item[Ľubomír Host] -- zostavovací rámec pre dokumentáciu a distribučné balíky \item[Doug Hockinson] -- dokumentácia a korektúry \end{description} \subsection*{Kontaktná osoba} Ondrej~Jombík\\ Holíčska~26\\ 851~01~~Bratislava\\ telefón: 0907 / 472 076\\ e-mail: nepto@platon.sk \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} Domovská stránka projektu \phpMyEdit{} je \begin{itemize} \item[] \URL{http://phpMyEdit.org/} \end{itemize} Stránka správy projektu obsahujúca novinky, manažér projektových tímov, systém na~správu záznamov o~chybách, projektové fóra, prehliadač dokumentácií a správcu distribučných balíkov je na~nasledujúcej adrese \begin{itemize} \item[] \URL{http://platon.sk/projects/main\_page.php?project\_id=5} \end{itemize} CVS archív projektu \phpMyEdit{} \begin{itemize} \item[] \URL{http://platon.sk/cvs/cvs.php/phpMyEdit/} \end{itemize} \subsection*{História} Projekt \phpMyEdit{} bol založený v~roku 1999 pánom menom John McCreesh. V~priebehu niekoľkých nasledujúcich rokov sa mu podarilo vytvoriť verzie 0.x, 1.x, 2.x až 3.x. Vo~verzii 3.0 sa udiala v~projekte podstatná zmena. Dovtedy neobjektovú knižnicu \phpMyEdit{} transformoval Pau Aliagas na~triedu v~jazyku PHP. Používanie sa tak značne zjednodušilo a stalo sa viac transparentným. Na~sklonku roka 2001 sa John McCreesh rozhodol prejsť k~iným zaujímavejším projektom a tak vypísal súťaž o~pokračovateľa vo~vývoji \phpMyEdit. Tú vyhral Jim Kraai, pretože jeho vízie a plánované vymoženosti sa zdali ako najperspektívnejšie. Začali sa teda práce na verzii~4.0. V~rýchlom slede vzniklo niekoľko beta verzií, no vo~februári 2002 vývoj projektu z nejasných príčin zo~dňa na~deň zastal a nejavil viac známky života. Používanie \phpMyEdit{} sa však neskončilo. Bol stále nasadzovaný do~viacerých produkčných prostredí. Používatelia si predávali vzájomné poznatky prostredníctvom diskusných fór či systémov na správu záznamov o~chybách, v~ktorých sa objavovali opravy chýb či dokonca aj niektoré malé nové vymoženosti. Mnoho zručnejších používateľov malo pripravených hneď niekoľko aktualizácií zdrojového kódu projektu. Tie však nemal kto zaintegrovať. A tak sa počas letných mesiacov 2002 rozhodol Ondrej Jombík, jeden z~dovtedajších používateľov projektu, že definitívne prevezme zodpovednosť nad ďalším vývojom. Dohodol sa so zakladateľom projektu, že sa najskôr zameria na~opravu existujúcich chýb. Vznikli verzie 5.0 a neskôr aj 5.1, ktorých úlohou bolo najmä oživiť používateľskú základňu a~deklarovať vôlu o~zachovaní istej kontinuity vývoja. Z~dôvodu pretrvávajúcich problémov so~stránkou \URL{SourceForge.Net} sa na začiatku roka 2003 projekt definitívne presunul na slovenský portál vývoja otvoreného softvéru \URL{Platon.SK}. Vznikla verzia 5.2, ktorá už implementovala aj nové vymoženosti. Používateľská základňa projektu sa niekoľkonásobne zväčšila. Vďaka niektorým novým príležitostným prispievateľom sa vdýchol projektu nový život. 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~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 rozšírení funkcionality či rady pri integrácii vytvorených skriptov do~existujúcich webstránok. \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 funkcionalite, 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} Jediným sponzorom projektu je Doug Hockinson zo~štátu Colorado v~Spojených štátoch amerických. Pre \phpMyEdit{} zabezpečil prestížnu doménu \URL{phpMyEdit.org}, na~ktorej sa nachádza webstránka projektu. Stránka správy projektu sa nachádza na~slovenskom portáli \URL{Platon.SK}, ktorý sa zaoberá vývojom otvoreného softvéru. Na~nej je možné nájsť všetky potrebné informácie od~noviniek, cez~chybové záznamy až po~distribučné balíky. \subsection*{Referencie} Vzhľadom na širokú používateľskú základňu, je projekt \phpMyEdit{} často nasadzovaný v~rôznych produkčných prostrediach. Možno spomenúť napríklad \URL{MetroDenver.org}, \URL{Novosolutions.com} alebo \URL{Compverse.com.au}. Zaujímavosťou je, že zdrojové súbory projektu sú často zahrňované do~iných projektov otvoreného softvéru. \phpMyEdit{} sa napríklad používa v~administračnej časti systému na~správu obsahu phpMyEzin. Takže je aktívne používaný aj na~nasledujúcich stránkach. \begin{itemize} \item \URL{http://Platon.SK/} \item \URL{http://Konzervativizmus.SK/} \item \URL{http://Prave-Spektrum.SK/} \item \URL{http://ODMBA.Platon.SK/} \end{itemize} \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} 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. \PlatonFooter{} \end{document} % vim: ts=4 % vim600: fdl=0 fdm=marker fdc=3 fmr=/*,*/