WebToDate/Příručka vývojáře/Popis prostředí: Porovnání verzí

Z WebToDate
Skočit na navigaciSkočit na vyhledávání
Bajkvl (diskuse | příspěvky)
Založena nová stránka: Category:WebToDate 4.1 Příručka vývojáře Category:Příručka vývojáře == Adresářová struktura instalace WebToDate == === Úvod === Instalace produktu …
(Žádný rozdíl)

Verze z 22. 8. 2009, 07:08

Adresářová struktura instalace WebToDate

Úvod

Instalace produktu WebToDate se skládá z určené adresářové struktury s příslušnými soubory a z SQL databáze. Všechny soubory dané instalace WebToDate jsou umístěny v jednom hlavním adresáři a dále se dělí do pevně dané struktury podadresářů, které se liší použitím (některé adresáře tvoří redakční část, jiné veřejnou část webu apod.), významem (odlišují se adresáře pro skripty od adresářů pro jiné typy souborů) i požadovanými přístupovými právy (do některých adresářů aplikace zapisuje, z jiných čte, k ostatním přistupuje pouze daný www server).

Některé adresáře se mapují na virtuální adresáře daného web serveru.

Znalost a dodržování této adresářové struktury je důležitá např. z následujících důvodů:

  • Nastavení a zabezpečení přístupových práv k adresářům na úrovni OS – některé adresáře vyžadují právo na zápis, některé pouze na čtení apod.
  • Ošetření na úrovni aplikace – knihovní funkce pro práci se soubory v sobě obsahují bezpečnostní mechanismy bránící zápisu do jiných než povolených adresářů.
  • Možnost upgrade na další verze WebToDate – dodržování ukládání nových souborů do dané struktury brání tomu, aby při budoucích upgrade aplikace došlo k nežádoucím přepisům souborů, které nemají být nahrazeny.

Základní adresářovou strukturu zobrazuje následující diagram. Červeně jsou vyznačeny adresáře, do kterých skripty aplikace WebToDate zapisují, zeleně adresáře, ze kterých tyto skripty čtou (důležité pro nastavení přístupových práv z hlediska OS).

Mapování fyzických adresářů do virtuálních adresářů www serveru

Při instalaci se adresářová struktura na disku mapuje na virtuální adresáře www serveru (v konfiguraci serveru Apache nebo IIS) podle následující tabulky.

Fyzický adresář Virtuální adresář Význam
wwwroot /, tedy domovský adresář celého virtuálního www serveru Statické veřejně přístupné soubory, tedy generované stránky, obrázky, šablony apod.
scripts /scripts/ PHP skripty veřejné části serveru
application /admin/ při výchozí instalaci, lze zvolit jakékoliv jiné jméno PHP skripty pro redakční rozhraní

Adresáře z hlediska čtení a zápisů

Z hlediska čtení a zápisů realizovaných přes skripty aplikace WebToDate je dělení následující:

Adresáře pro čtení i zápis:

  • wwwroot (statické soubory, které jsou veřejně přístupné přes http; aplikace do tohoto adresáře např. zapisuje ve chvíli generování statických stránek)
  • texts (volitelně texty zpráv a některých dalších modulů; do tohoto adresáře se může zapisovat např. při ukládání zpráv)
  • offlinedata (datové soubory vytvářené aplikací jako logy apod.; do tohoto adresáře se zapisuje např. ve chvíli, kdy se protokoluje nová událost)

Adresáře pro čtení

  • rdata – z tohoto adresáře mohou skripty pouze číst, jsou zde uloženy soubory typu "zdroj", tedy např. některé XML soubory, kontextové nápovědy apod.

Všechny ostatní adresáře jsou určeny pouze pro odsud spustitelné programové soubory. V tomto přehledu se jedná o adresáře na nejvyšší úrovni, požadavek na čtení či zápis platí pak stejně i pro všechny do nich vnořené podadresáře.

Adresáře z hlediska určení

Z hlediska určení je adresářová struktura popsána podle následující tabulky. Tabulka zachycuje pouze adresáře důležité z hlediska vývoje a konfigurace, nikoliv celou stromovou strukturu adresářů.

Adresář Určení
application Soubory redakčního rozhraní, konkrétně PHP skripty a soubory, na které se interface redakčního rozhraní přímo odkazuje (pomocné obrázky apod.).
application/modules Adresář pro vkládání administračních skriptů jednotlivých modulů; každý modul zde má svůj vlastní podadresář.
classes PHP třídy používané ve veřejných i redakčních skriptech (např. třídy pro přístup k databázím či souborům apod.).
config Konfigurační soubory, do kterých administrátor systému může zasahovat (a které se inkludují do jiných skriptů), např. tedy global.php.
includes Knihovny PHP funkcí a konstant, které se nepoužívají přímo, ale inkludují se do jiných skriptů.
offlinedata Adresář, do kterého ukládají data různé části WebToDate. Data slouží typicky k dalšímu zpracování na úrovni aplikace. Do obsahu adresáře nemá vlastník instalace nijak ručně zasahovat, to znamená, že se zde nenacházejí žádné ručně měnitelné konfigurační soubory. Nenacházejí se zde ani žádné pevně dané soubory vytvořené při vývoji, které se za běhu nemění.
offlinedata/logs Adresář pro ukládání protokolů WebToDate a modulů (textových souborů).
rdata Datové soubory určené ke čtení. V tuto chvíli se jedná o některé konfigurační soubory a soubory typu "zdroj".
rdata/config Konfigurační soubory, do kterých administrátor systému může zasahovat (a které se čtou), např. tedy secureTags.txt.
rdata/resources Všechny soubory typu "zdroj", tedy XML struktury menu, lokalizační řetězce, nápovědy apod.
scripts PHP skripty veřejné části www serveru.
scripts/modules Adresář pro vkládání veřejných skriptů jednotlivých modulů; každý modul zde má svůj vlastní podadresář.
scheduler PHP kódy pro Plánovač úloh.
texts Adresář pro ukládání textových souborů obsahujících některá data vložená do redakčního systému. Důvodem existence tohoto adresáře je možnost fulltextové indexace dat s využitím produktů indexujících souborový systém; v konfiguracích využívajících fulltext pracující s databází se tento adresář nepoužívá.
wwwroot Veřejně přístupný adresář pro statické soubory (HTML stránky, obrázky, binární přílohy apod.).

Adresáře používané při vývoji vlastních doplňků

Při vývoji vlastních doplňků (modulů, extenzí či plánovaných úloh) se pracuje zejména s adresáři uvedenými v následující tabulce.

Adresář Určení
application/modules Adresář pro vkládání administračních skriptů jednotlivých modulů; každý modul zde má svůj vlastní podadresář.
scripts/modules Adresář pro vkládání veřejných skriptů jednotlivých modulů; každý modul zde má svůj vlastní podadresář.
rdata/resources/modules Adresář pro soubory typu zdroj pro moduly; každý modul zde má svůj vlastní podadresář.
config Adresář obsahuje soubory, ve kterých se registrují extenze používané na serveru.
scheduler/tasks/custom Do adresáře se ukládají zákaznické úlohy (tj. výkonné PHP skripty těchto úloh apod.) pro Plánovač úloh.
offlinedata/scheduler V adresáři se nacházejí XML soubory pro Plánovač úloh, zde se např. registrují nové úlohy.

Další informace

Knihovny a třídy

Při programování vlastních programových rozšíření WebToDate se v PHP skriptech vyžívají připravené knihovny funkcí a tříd, které se do těchto skriptů inkludují. Tyto knihovny jsou popsány v dalších kapitolách, ve stručnosti se jedná o následující položky:

  • Třídy pro přístup k databázím – využívají se proto, aby bylo možné provozovat aplikaci a její moduly s různými typy databází; viz [ 6.1.3 - Databázová knihovna]
  • Třídy pro přístup k souborům a adresářům – využívají se pro jednotnou a bezpečnou manipulaci se soubory a adresáři; viz [ 6.1.2 - Souborová knihovna]
  • Společné funkce modulů – jedná se o knihovny funkcí používané všemi moduly. Používají se např. pro práci se styly či šablonami, pro nastavení přístupových práv v redakční části apod. Existují knihovny pro vytváření redakční části a pro vytváření veřejné části modulů.
  • Třídy HTML komponent – slouží pro vytváření GUI v redakční části
  • Třídy a funkce pro vytváření plánovaných úloh – pomocí těchto komponent se zjednodušuje psaní úloh pro Plánovač úloh

Lokalizace

Aplikace WebToDate i všechny standardně dodávané moduly jsou vytvářeny tak, aby byly lokalizovatelné. Je zajištěno, aby zejména redakční část aplikace i modulů byla přeložitelná do jiného jazyka, ale týká se to i veřejné dynamické části systému (zpravidla fatálních chybových hlášení).

Lokalizace jsou uloženy v souborech s názvem _localization_inc.php, které se nacházejí v odpovídajících adresářích – z hlediska celé aplikace se tyto soubory chápou jako zdroje a proto jsou ukládány v podadresářích adresáře rdata. Jedná se o soubory PHP konstant obsahujících lokalizační řetězce. Tyto řetězce se pak vkládají do skriptů které je používají pomocí knihovní PHP funkce loc (definovaná v includes/utility.php).