Rozložení projektu

Stejně jako v šabloně, tak i v projektu je třeba mít pořádek a myšlenka rozložení adresářů i souborů je obdobná: stejné typy souborů vždy zařadit do vlastního adresáře a udržovat je tak na jednom snadno dostupném místě

Oproti šabloně je ale v projektu, resp. frameworku (= adresář kt v šabloně) třeba zdůraznit menší rozdíly. V adresáři kt se nachází povinný rodičovský inicializační soubor kt_init.inc.php. Tento soubor je pak ještě použit vždy i v každém podadrešáři  (= modulu) na jeho hlavní úrovni, ale v pozměněné podobě pouze pro daný modul. Takže máme hlavní kt/kt_init.inc.php, který obsahuje obecnou logiku pro celý framework a pak ještě vždy kt/můj_modul/kt_init.inc.php, který obsahuje pouze inicializaci daného modulu…

V jednotlivých modulech frameworku by tedy struktura mohla vypadat nějak následovně:

Obecná struktura modulů

  • classes (soubory s třídami php)
  • configs (soubory configů pro presentery a modely)
  • css (soubory stylů pro admin část nebo pro modul, klidně i šablonu v případě vlastního modulu projektu)
  • fonts (soubory s fonty pro admin část nebo pro modul, klidně i šablonu v případě vlastního modulu projektu)
  • enums* (soboury s pevnými výčtovými typy)
  • exceptions* (soboury s výjimkami)
  • images (soubory s obrázky pro admin část)
  • interfaces (soboury s interfacy)
  • js (soubory s JS pro admin část nebo pro modul, klidně i šablonu v případě vlastního modulu projektu)
  • models* (soubory modelů)
  • presenters* (soubory s presentery)
  • requires (složky k načtení při inicializaci WordPressu)
    • definitions (soubory pro definici post_typu)
    • metaboxes (soubory pro založení metaboxu)
    • common (obecné věci pro šablonu – nastavení šablony)
    • functions (soubory s funkcemi pro daný projekt)
    • template_options (soubory pro nastavení šablony – vzhled)
  • widgets* (soubory s widgety)
  • shortcodes* (soubory s shortcody)
  • kt_init.inc.php – inicializace jádra, resp. modulu

Pozn.: jediný povinný adresář je „requires„, ostatní stačí přidat pouze v případě potřeby…

*) Adresáře označené hvězdičkou jsou tzv. „speciální třídní adresáře„, v tuto chvíli je jich zatím definováno právě 6: configs, enums, exceptions, presenters, models, widgets, shortcodes a soubory v nich mají jasně definovaný systém názvů, pomocí kterého lze urychlit proces autoloadu, viz níže…

KT FW Rozložení projektu

KT FW Rozložení projektu

Pozn.: nepřehlédněte nastavené standardy kódování, především obecné tipy k pojmenovávání adresářů i souborů…

Nazývání souborů

Zde obecně platí podobná pravidla jako ve struktuře šablony, ale s těmi rozdíly, že jednotlivé soubory šablony začínají prefixem kt_, po něm následuje určující název souboru a ten je doplněn příponou, která určuje o jaký typ souboru jde, takže např. pro jednotlivé různé widgety budou končit jejich soubory vždy „_widget“ + „.inc.php“ atd., viz:

  • kt_{post_type}_definition.inc.php
  • kt_{metabox_name}_metabox.inc.php
  • kt_{functions_type}_function.inc.php
  • kt_{widget_name}_widget.inc.php

Autoload

Ještě je třeba dodat, jak funguje autoload tříd, interfaců a dalších speciálních tříd. V případě projektu je rozdíl mezi názvy souborů, které podléhají autoloadu, resp. např. v případě třídy, řekněme Car Widget, by název souboru byl: kt_car_widget.inc.php, ale třída jako taková by se jmenovala KT_Car_Widget… Předpona KT, resp. kt_ obecně platí pro jádro frameworku. Ve vlastních projektech doporučujeme používat prefix KT_XXX, resp. kt_xxx_, kde ixka znamenají váš vlastní libovolný prefix… Tím je zajištěno unikátní pojmenovávání…

Speciální třídní adresáře

Všechny třídy obecně můžete vkládat pouze do adresáře classes, ale pro ještě lepší orientaci v projektu a také proto, že rozlišujeme některé typy tříd zvlášť, tak tyto je vhodné vkládat do vlastních adresářů. Konkrétně se jedná zatím právě 6 speciálních třídních typů – adresářů: configs, enums, exceptions, presenters, models, widgets, shortcodes. Pokud se tyto typy tříd rozhodnete vkládat do vlastních adresářů, tak pro jejich soubory platí přesná pravidla pojmenování pro autoload na základě přípony souboru, kvůli zrychlení celého procesoru načítání. Celý trik spočívá v tom, že přípona musí být nazvána jako adresář samotný, ale v jednotném čísle (anglicky). Tj. pro adresář widgets musí jednotlivé třídní soubory uvnitř adresáře končit na „_widget.inc.php„. A to samé platí i pro ostatní tyto adresáře. Na základě přípony totiž dochází ke spárování s adresářem a načtení souboru – třídy aniž by se musela prohledávat jakákoliv další cesta. Nicméně je třeba na správné pojmenovávání dávat velký pozor a důraz, jinak by mohlo dojít k chybám, resp. nenačtení souborů – tříd.



Odebírejte novinky z FW

Sledujte nás!

Tyto stránky využívají Cookies. Používáním těchto stránek vyjadřujete souhlas s používáním Cookies.Zjistit víceOK, rozumím