Prejsť na obsah

Inštalácia

Aplikácia DotApp sa neinštaluje štandardným spôsobom cez composer install, pretože to nie je knižnica, ale kompletná aplikácia s vlastnou architektúrou. Namiesto toho postupujte podľa týchto krokov:

1. Nainštalujte aplikáciu pomocou Git:

git clone https://github.com/dotsystems-sk/dotapp.git ./

Tento príkaz naklonuje repozitár do aktuálneho adresára.

Prípadne si môžete stiahnuť súbor ZIP:

Stiahnuť DotApp

Rozbaľte ho do adresára, kam potrebujete aplikáciu umiestniť.

2. Nastavenie a použitie:

Po naklonovaní alebo rozbalení aplikáciu nakonfigurujte podľa svojich potrieb (napr. konfigurácia databázy, nastavenia prostredia a pod.).

3. Použitie Composeru:

Hoci samotnú aplikáciu nie je možné nainštalovať cez Composer, po inštalácii môžete v adresári aplikácie použiť Composer na pridanie ďalších závislostí, ktoré váš projekt potrebuje. Stačí spustiť:

composer require

Štruktúra adresárov. Aplikačná logika žije v app/modules/{ModuleName}/. app/parts/ je jadro frameworku.

project-root/
├── index.php                 # front controller
├── dotapper.php
├── app/
│   ├── config.php            # secrets, databases, drivers
│   ├── modules/              # your modules
│   │   └── HelloWorld/
│   │       ├── module.init.php
│   │       ├── module.listeners.php
│   │       ├── Controllers/
│   │       ├── Middleware/
│   │       ├── Models/
│   │       ├── views/
│   │       └── assets/
│   ├── parts/                # framework core — do not edit
│   ├── runtime/
│   └── vendor/
└── assets/
    └── modules/              # public files served from each module's assets/

Nastavenie po inštalácii

Táto časť popisuje minimálne nastavenie potrebné po inštalácii frameworku DotApp. Ak nepotrebujete pracovať s databázami alebo uprednostňujete vlastné riešenie pred vstavanou knižnicou, stačí postupovať podľa týchto krokov:

1. (Voliteľné) Prepíšte __ROOTDIR__ v index.php

Predvolene index.php nastaví __ROOTDIR__ na vlastný adresár. Definujte ho iba vtedy, keď je koreň aplikácie niekde inde (bez koncového lomítka):

define('__ROOTDIR__', "/var/www/html");

Uistite sa, že __ROOTDIR__ zodpovedá skutočnému umiestneniu na serveri, inak framework nemusí fungovať správne.


2. Nastavte jedinečný šifrovací kľúč v ./app/config.php

Config::set("app", "name", "MyApp");
Config::set("app", "c_enc_key", "ReplaceThisWithALongRandomSecret");
$dotApp = new \Dotsystems\App\DotApp();

Použite jedinečné, dlhé tajomstvo (aspoň 32 znakov). Do konštruktora DotApp neposielajte md5(...).


3. (Voliteľné) Databáza — odkomentujte a vyplňte vzor v ./app/config.php

use Dotsystems\App\Parts\Config;

if (!__MAINTENANCE__) {
    Config::addDatabase(
        "main",
        "127.0.0.1",
        "username",
        "password",
        "dbname",
        "UTF8",
        "MYSQL",
        "pdo"
    );
}

$dotApp = new \Dotsystems\App\DotApp();
$dotApp->load_modules();
            

Spustenie frameworku

Po tom, ako app/config.php načíta moduly, index.php spustí aplikáciu. Trasy sa deklarujú v module.init.php každého modulu. Volanie na spustenie je:


// Everything ready? Start the framework! - As seen in the index.php file
$dotApp->davajhet();
// or in English:
$dotApp->run();

/*
    Note: $dotApp->davajhet() is an alias for $dotApp->run().
    I come from eastern Slovakia, so I added a bit of our "davaj het!" (let's go!)
*/
            

Pridanie prvej trasy

Prázdna stránka a ERROR 404? Ak ste postupovali podľa pokynov a po spustení vidíte prázdnu stránku so stavovým kódom 404, nemajte obavy. Je to logické. Router je prázdny, takže nenašiel trasu pre adresu / vo vašom prehliadači a správne zobrazil 404. Váš framework zatiaľ nemá moduly ani trasy, takže robí to, čo má. Prvú trasu pridajte v metóde initialize() modulu.


<?php
// app/modules/HelloWorld/module.init.php
namespace Dotsystems\App\Modules\HelloWorld;

use Dotsystems\App\Parts\Router;

class Module extends \Dotsystems\App\Parts\Module
{
    public function initialize($dotApp)
    {
        Router::get("/", function ($request) {
            return "Hello World!";
        }, Router::STATIC_ROUTE);
    }

    public function initializeRoutes()
    {
        return ['/', '/*'];
    }
}

new Module($dotApp);
        

Po spustení sa zobrazí stránka s obsahom:

Hello World!