Predchozi Seznam Nasledujici

CaddisII: Zápis ze schùzek 24.3. a 31.3. 2003

Na techto dvou schuzkach se debatovalo prevazne o rozhrani jednotlivych modulu (je pripojeno). Dale se vedla celkem dlouha debata o vyuziti XML pro predavani dat mezi moduly. Dospelo se k zaveru, ze lepsi bude k tomuto ucelu pouzit PHP pole.
Testy by mohly byt ve forme souboru. Tester by si je na zacatku vsechny natahl z nejakeho direktorare, navic by pouzil databazovou tabulku, kde by byl zaznamenan vztah data-jmeno testovaci funkce.
Uvazovalo se o tom ze by testy pridaval primo evalem z databaze, ale bylo to oznaceno jako prasarna.
Zaporna navratova hodnota jednotlivych funkci znaci chybu. U kazdeho modulu bude funkce ModuleName_GetError(), ktera prelozi kod chyby na chybovy text. V teto souvislosti jsme ustalili kratke nazvy jednotlivych modulu: Form, Plan, Data, Start, Test, Export, Import.
Podminka dotazu bude predavana jako string. Pri vyhledavani vratime uzivateli co chtel (i kdyby to mel byt nesmysl). Vyhledavani tedy nebude prochazet Testerem. Pro kontrolu mu zopakujeme jake zadal vyhledavaci kriteria, aby se mohl presvedcit ze zadal nesmysl.
Dulezite je rozmyslet nejaky jednotny coding style, ktereho bychom se meli vsichni drzet. Predpoklada se ze to bude naplni nasledujici schuzky.
Maly detail: v databazi autoru bude datum platnosti od a do.

A ted k rozhrani:
Planovac: GetForm(FormID, SID, IP adresa)
SendForm(FormID, SID, IP adresa, data)
Funkce vraci formular a data (v pripade GetForm predvyplnena).
Planovac bude kontrolovat autentizaci.
Tester: Test(FormID, data) Vraci data.
Import: Import(typ dat, soubor)
Export: Export(data z formulare, dotaz) Vraci octed stream (primo exportovany soubor).
Databaz. modul: StoreData(co to je za data (kam), data, hodnota klic. zaznamu) Provadi inserty, pokud je vsak posledni param. nenula a prislusny zaznam existuje, tak se jedna o update.
Vraci pocet zmenenych zaznamu.
GetDataSQL(jaka (odkud), SQL podminka, limit (kolik (prvnich) zaznamu)) Vraci pole (pole poli hodnot) nebo int (chyba). -1 znamena nenasel. Pokud je limit nula, znamena to neomezene.
GetData(odkud, data, limit) Data predstavuji polovyplnena data. Vraci totez co GetDataSQL.
Query(dotaz ve stringu) Pro admina. Vraci totez co GetDataSQL.
InitDB() Inicializace db do "pouzitelneho" stavu. Smazani udaju ze stareho sberu.
Predpoklada se ze databazovy modul dostane jeste nejake funkce, ale pouze pokud to bude stat za to - tedy pokud objevime skupinu podobnych dotazu ktere bude vyhodnejsi zabalit do specialni funkce.