Framework PHP
  1. Prečo som vyvinul vlastný PHP framework

    Po rokoch práce na rôznych webových projektoch som sa rozhodol vytvoriť vlastný PHP framework, ktorý mi pomáha riešiť opakujúce sa problémy pri vývoji webových aplikácií a zároveň zjednodušuje spoluprácu medzi backendom a frontendom.

  2. Hlavná myšlienka

    Cieľom frameworku bolo vytvoriť most medzi programátorom a dizajnérom. Chcel som, aby frontendový vývojár mohol pracovať čisto s HTML bez potreby znalosti PHP, databáz či aplikačnej logiky a pritom mal k dispozícii všetky potrebné dáta na tvorbu plnohodnotných dynamických stránok.

    Základné princípy pre routovanie a bezpečnostné prvky som inšpiračne prevzal z etablovaných riešení ako Nette, Laravel či Symfony, no implementácia je vlastná a prispôsobená jednoduchosti použitia a plnej kontroly nad kódom.

    Celý systém využíva pre prístup k dátam REST API vrstvu, vďaka čomu je možné dáta pohodlne získavať buď priamo pri generovaní HTML stránok, alebo dynamicky pomocou AJAX volaní na strane klienta. Tento prístup zjednodušuje integráciu, umožňuje škálovanie a zároveň zjednocuje komunikáciu medzi frontendom a backendom.

    Databázová vrstva je flexibilná – najčastejšie používam MySQL, ale architektúra umožňuje pripojenie aj k iným systémom. Vytvoril som vlastný dátový model, ktorý zabezpečuje čisté oddelenie dát a logiky, pričom stále ostáva možnosť optimalizácie výkonu priamo na úrovni databázového servera.

  3. Čo framework umožňuje
    • Oddelenie logiky od šablón: PHP kód a HTML sú striktne oddelené. Dizajnér pracuje iba s HTML súbormi a jednoduchou šablónovou syntaxou (napr. { {meno} }, { {produkt.cena} }).
    • Zjednodušená práca s dátami: Backend sprístupní dáta, ktoré môže šablóna jednoducho použiť bez potreby spracovania alebo ďalšej logiky.
    • Rýchly vývoj a údržba: Projekt je modulárny, prehľadný a ľahko rozšíriteľný. Vďaka vlastnej štruktúre a komponentom viem flexibilne reagovať na potreby klientov.
  4. Na čo framework používam

    Využívam ho pri vývoji vlastných webových aplikácií a interných systémov (napr. CRM, CMS), kde potrebujem mať plnú kontrolu nad architektúrou, rýchlosť vývoja a zároveň jednoduché a jasné rozhranie pre frontend.

  5. Základ frameworku: ľahký, výkonný a čistý

    Základná verzia frameworku má veľkosť približne 100 kB , no aj napriek svojej malej veľkosti poskytuje všetky kľúčové funkcie potrebné pre moderný vývoj webových aplikácií.

    • Prístup k databázam (najčastejšie MySQL, ale nie je obmedzený len na ňu)
    • Prístup k REST API – možnosť pracovať s dátami z externých alebo interných služieb
    • Jednoduché a flexibilné routovanie
    • Generovanie HTML stránok na základe šablón

    Framework využíva XHTML ako šablónovací jazyk , čím zabezpečuje, že výstupný HTML kód je vždy validný, čitateľný a spoľahlivý – ideálny pre dlhodobú údržbu aj spoluprácu s dizajnérmi.

    Áno, ak si definuješ vlastné HTML značky , môžeš ich v PHP frameworku interpretovať ako špeciálne direktívy, ktoré určujú, ako sa má HTML šablóna spracovať. Tento prístup sa často používa v šablónovacích systémoch alebo vlastných preprocesoroch.

    Ak využijem akékoľvek REST API volanie, viem výsledné dáta načítať do HTML a podľa potreby ich obsahovo upraviť alebo dynamicky zobraziť. To otvára priestor pre rýchle, modulárne a reaktívne webové riešenia.

    Ako funguje spracovanie šablóny
    Pri spustení šablóny dochádza k dvom paralelným krokom:
    • Načítanie dátovej vrstvy – môžu to byť dáta z databázy, REST API alebo kombinácia oboch.
    • Spracovanie XHTML šablóny – vlastné značky a direktívy sa nahradia obsahom na základe dostupných dát.

    Spojením týchto dvoch častí vzniká výsledný HTML výstup, ktorý je pripravený na zobrazenie v prehliadači s validnou štruktúrou a dynamickým obsahom.

  6. Ukážka použitia frameworku

    <html_text>
            <style cmd="base64">
                .meno {
                    font-weight:  bold;
                    color: rgb(200,0,0);
                }  
            </style>
    
    
    
            <setting node="priklad">
                <row1>
                    <meno>Pavol</meno>
                    <priezvisko>Prazenka</priezvisko>
                </row1>
    
                <row2>
                    <meno>Karol</meno>
                    <priezvisko>Karolovic</priezvisko>
                </row2>
            </setting> 
        
        
          <for data="priklad">
              <div>
                  <span class="meno"> {{meno}} {{priezvisko}} </span>
                  <span><date format="d.m.Y H:i">{{data.datum}}</date></span>
              </div>
          </for>
    </html_text>
    Priklad vystupu

    vystup
    Pavol Prazenka 01.07.2025 14:00
    Karol Karolovic 02.06.2025 11:00

    Ak potrebujem zistit ake data mam k dispozicii
    <html_text><pre>{{priklad}}</pre></html_text>
    vystup
    {
        "row1": {
            "meno": "Pavol",
            "priezvisko": "Prazenka",
            "data": {
                "datum": "2025/07/01 14:00:00"
            }
        },
        "row2": {
            "meno": "Karol",
            "priezvisko": "Karolovic",
            "data": {
                "datum": "2025/06/02 11:00:00"
            }
        }
    }