Jak pracujeme

bzcompany podpora
Podpora

Volejte po-pá 8:00 - 17:00

774 700 765

podpora@bzcompany.cz

Architektura řešení BZ Company

Jedná se o třívrstvou MVC architekturu. Kód je minimalistický a celý systém obsahuje několik tříd.
MVC architektura je součástí populárních webových frameworků, jakými jsou např. Zend nebo Nette pro PHP, Ruby On Rail pro Ruby nebo MVC pro ASP .NET.

Princip

Základní myšlenkou naší architektury je oddělení logiky od výstupu. Řešíme tímto problém tzv. "špagetového kódu", kdy máme v jednom souboru (třídě) logické operace a zároveň renderování výstupu. Soubor obsahuje databázové dotazy, logiku (např. PHP operace) a HTML tagy. Náš zdrojový kód s logikou vypadá jako zdrojový kód (např. PHP) a výstup vypadá jako HTML stránka s co nejmenší příměsí dalšího kódu. Kód se tedy rozděluje do 2 souborů (HTML šablony a PHP skriptu), s použitím dalších tříd.

Komponenty

Celá aplikace je rozdělena na komponenty 3 typů:
o    Modely,
o    View (pohledy) a
o    Controller (kontrolery).
Komponenty jsou třídy, které jsou odděděné z abstraktních předků, jen view je jen jako HTML šablona.

Model

Model obsahuje logiku a vše, co do ní spadá. Jsou to výpočty, databázové dotazy, validace a podobně. Model jsou data používaná programem. To může být databáze, soubor nebo jednoduchý objekt, například ikona. Jeho funkce spočívá v přijetí parametrů zvenku a vydání dat ven.
Programujeme bez tzv. ORM (objektově relačního mapování), jelikož PHP defaultně nic takového nemá a hotová řešení jsou zbytečně těžkopádná. Navíc PHP obsahuje skvělé datové struktury, které s dynamickým typováním nahradí vše potřebné. Využíváme principu manažerů, logika aplikace je rozdělena např. mezi manažery ManazerUzivatelu, ManazerClanku a další. Ty obsahují metody k výběru potřebných údajů z databáze nebo k jejich modifikaci. V manažeru najdete pomocné metody k práci s uživateli, např. ověření správné délky a znaků hesla.

Pohled

Pohled (View) je zobrazovač výstupu. Obsahuje minimální množství logiky, která je pro výpis nutná (např. kontrola, zda si uživatel vyplnil přezdívku před jejím vypsáním nebo cyklus s komentáři, které se vypisují).  Jde o pHTML šablonu, obsahující HTML stránku a tagy, které umožňují do šablony vkládat proměnné, případně provádět iterace (cykly) a podmínky. Pohledů používáme mnoho, např. pro funkcionalitu s entitou uživatele. Například pohled uzivatel_profil je společný všem uživatelům a jsou do něj posílána různá data, vždy podle toho, koho zrovna zobrazujeme. Tato data jsou poté dosazena do HTML elementů šablony. Pohledy samozřejmě vkládáme do sebe (tvoříme šablony pro jednotlivé typy obsahů).

Kontroler

Kontroler je prvek, který osvětluje funkčnost celého systému. Je to prostředník, se kterým komunikuje uživatel, model i pohled. Drží tedy celý systém pohromadě a komponenty propojuje. Nejčastěji má každá entita jeden kontroler, máme tedy UzivatelKontroler, ClanekKontroler a další.