Dokument Architektura » Historie » Verze 4
Miroslav Krýsl, 2021-06-03 16:25
1 | 1 | Tomáš Květoň | h1. Architektura projektu |
---|---|---|---|
2 | |||
3 | 2 | Miroslav Krýsl | h2. Use cases pluginu |
4 | |||
5 | !genealogy_usecase.png! |
||
6 | |||
7 | 3 | Miroslav Krýsl | h2. Komponenty pluginu |
8 | |||
9 | Cílem tohoto projektu je mimo jiné i refaktor stávajícího kódu a rozdělení aplikace do vrstev. |
||
10 | |||
11 | Obsluha volání je rozdělena do logicky souvisejících částí (prefix GT_Plugin), komplexní logika je implementována unitř více služeb (GT_Services ...) a datovou vrstvu realizují Data Access Objects (GT_DAOs ...). |
||
12 | |||
13 | 4 | Miroslav Krýsl | DAOs a Services jsou jednotlivým částem pluginu přístupné pomocí singleton třídy GT_Container, která slouží jako globální service lookup. |
14 | 3 | Miroslav Krýsl | |
15 | !genealogy_components.png! |
||
16 | |||
17 | 1 | Tomáš Květoň | h2. Souborová struktura |
18 | |||
19 | Souborová struktura dodržuje standard předepsaný pro plugin WordPress. |
||
20 | Projekt je rozdělený do několika hlavních sekcí: |
||
21 | * admin |
||
22 | ** _Front-End pro administrátorskou část pluginu._ |
||
23 | * common |
||
24 | ** _Sdílená logika projektu pro Front-End._ |
||
25 | * includes |
||
26 | ** _Sdílená logika projektu pro Back-End._ |
||
27 | * public |
||
28 | ** _Front-End pro uživatelskou část pluginu._ |
||
29 | |||
30 | !Untitled%20Diagram%20%281%29.png! |
||
31 | |||
32 | h2. Jmenná konvence |
||
33 | |||
34 | V celém projektu pluginu je dodržována jmenná konvence nastavená pro plugin WordPress. |
||
35 | |||
36 | h2. Proces zpracování uživatelských požadavků |
||
37 | |||
38 | Níže uvedený diagram zobrazuje průběh zpracování uživatelského požadavku. |
||
39 | |||
40 | !Untitled%20Diagram.png! |
||
41 | |||
42 | h2. Důležité výčetní typy |
||
43 | |||
44 | Je velmi důležité dodržovat používání těchto výčetních typů pro zachování přehlednosti kódu a snadnou udržitelnost. |
||
45 | Výčetní typy poskytují textovou reprezentaci, kterou lze snadno změnit bez nutnosti většího zásahu do kódu pluginu. |
||
46 | Každý tento výčetní typ má svoji podobu ve verzi pro skripty v JS a PhP. |
||
47 | |||
48 | h3. Name Types |
||
49 | @common/js/enums/name_types.js@, @includes/enums/GT_Name_Type.php@ |
||
50 | |||
51 | h3. Request Types |
||
52 | @common/js/enums/request_types.js@, @includes/enums/GT_Request_Type.php@ |
||
53 | |||
54 | Pro stranu „front-endu“ je zde definován výčet selektorů, které jsou nezbytné či klíčové pro nutnou funkčnost pluginu. |
||
55 | Obsahuje primárně ID selektory důležité pro hlavní funkcionalitu pluginu. |
||
56 | Z důvodu přehlednosti se na místo běžné textové reprezentace používají tyto selektory, aby byla jakákoli změna ze strany šablon (HTML) velmi snadno a nebylo nutné zasahovat přímo do logické části programu. |
||
57 | |||
58 | h3. Selektory |
||
59 | @common/js/enums/selectors.js@ |