Projekt

Obecné

Profil

Akce

Architektura projektu

Use cases pluginu

Komponenty pluginu

Cílem tohoto projektu je mimo jiné i refaktor stávajícího kódu a rozdělení aplikace do vrstev.

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 ...).

DAOs a Services jsou jednotlivým částem pluginu přístupné pomocí singleton třídy GT_Container, která slouží jako globální service lookup.

Souborová struktura

Souborová struktura dodržuje standard předepsaný pro plugin WordPress.
Projekt je rozdělený do několika hlavních sekcí:
  • admin
    • Front-End pro administrátorskou část pluginu.
  • common
    • Sdílená logika projektu pro Front-End.
  • includes
    • Sdílená logika projektu pro Back-End.
  • public
    • Front-End pro uživatelskou část pluginu.

Jmenná konvence

V celém projektu pluginu je dodržována jmenná konvence nastavená pro plugin WordPress.

Proces zpracování uživatelských požadavků

Níže uvedený diagram zobrazuje průběh zpracování uživatelského požadavku.

Důležité výčetní typy

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.
Výčetní typy poskytují textovou reprezentaci, kterou lze snadno změnit bez nutnosti většího zásahu do kódu pluginu.
Každý tento výčetní typ má svoji podobu ve verzi pro skripty v JS a PhP.

Name Types
common/js/enums/name_types.js, includes/enums/GT_Name_Type.php

Request Types
common/js/enums/request_types.js, includes/enums/GT_Request_Type.php

Pro stranu „front-endu“ je zde definován výčet selektorů, které jsou nezbytné či klíčové pro nutnou funkčnost pluginu.
Obsahuje primárně ID selektory důležité pro hlavní funkcionalitu pluginu.
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.

Selektory
common/js/enums/selectors.js

Aktualizováno uživatelem Miroslav Krýsl před více než 3 roky(ů) · 4 revizí