Konfiguracja systemu znajduje się w skrypcie config.php, który umieszczony jest w głównym folderze aplikacji (razem z routingiem i front kontrolerem).

Opis pozycji konfiguracji (pola klasy Config)

Ustawienia podstawowe:

$conf->debug  (true/false) : tryb debugowania - ustal wartość i używaj w kodzie aby np. wyświetlać więcej informacji technicznych przy okazji błędów (domyślnie true)

$conf->server_name (string) : adres serwera i port (domyślnie localhost)

$conf->protocol (http/https) : protokół http lub https (domyślnie http)

$conf->app_root (string) : podfolder aplikacji względem domeny (np localhost) (domyślnie '/<main_folder>/public').

Na podstawie wartości app_root wyznaczane są lokalizacje skryptów oraz generowane są adresy URL (względne i bezwzględne), stąd jej prawidłowa konfiguracja jest wymagana.

Podfolder 'public' jest głównym punktem startowym aplikacji do którego bezpośrednio należy podłączyć domenę ze względów bezpieczeństwa. Wtedy nie jest możliwe bezpośrednie wywołanie innych skryptów w systemie. W takiej sytuacji $conf->app_root musi pozostać pustym ciągiem tekstowym ($conf->app_root = ""). 

Przykłady:

1. Jeśli domena (np localhost) wskazuje na pewien podfolder serwera nadrzędny względem naszej aplikacji to $conf->app_root musi zawierać odpowiednią względną lokalizację. Przykładowo, aplikacja na serwerze 'localhost' znajduje się w ramach głównego folderu www w podfolderze 'aplikacja'. Zatem $conf->server_name="localhost", a $conf->app_root = "/aplikacja/public";

2. Jeśli natomiast domena wskazuje na folder główny aplikacji to wartość ta ma być równa $conf->app_root = "/public";

3. Jeśli domena określona w $conf->server_name wskazuje bezpośrednio na podfolder 'public' aplikacji, to pozycja ta musi być pusta$conf->app_root = "";

 

Konfiguracja bazy danych:

# wartości wymagane
$conf->db_type = 'mysql'; // rodzaj BD
$conf->db_server = 'localhost'; // serwer BD
$conf->db_name = 'nazwa_bazy_danych';
$conf->db_user = 'nazwa_użytkownika';
$conf->db_pass = 'hasło_użytkownika';
$conf->db_charset = 'utf8'; // kodowanie znaków w BD

# wartości opcjonalne
$conf->db_port = '3306';
#$conf->db_prefix = ''; //prefiks automatycznie dodawany do każdej tabeli
$conf->db_option = [ PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ]; // opcje PDO

 

Elementy ustawiane automatycznie do wykorzystania w aplikacji

Środowisko ustawia kilka elementów automatycznie.

$conf->root_path: ścieżka na dysku serwera wskazująca folder główny aplikacji (zmienna używana np. do wywoływania innych skryptów)

$conf->server_url:  URL serwera (protokół + nazwa serwera) - np. http:\\localhost

$conf->app_root: podawany ręcznie - patrz początek opisu konfiguracji

$conf->app_url: URL aplikacji (URL serwera + app_root) - np. http:\\localhost\aplikacja\public 

$conf->action_root:  (dymyślnie nie ruszać) wskazuje skrypt/ścieżkę kierującą do kontrolera głównego (postać zależy czy stosujemy clean URLs czy nie)

$conf->action_url: (URL serwera + action_root)

 

Pozostałe elementy konfiguracji (możliwe do zmiany - domyślnie nie ruszać)

$conf->clean_urls: domyślnie true, gdy false to nazwę akcji podaje się za pomocą parametru (nazwa parametru definiowana poniżej)

$conf->action_param: nazwa parametru niosącego nazwę akcji (domyślnie action) - parametr ma sens jedynie dla clean_urls = false.

$conf->action_script: nazwa skryptu kontrolera głównego (domyślnie /ctrl.php)

 

Przykładowa zawartość pliku konfiguracji (np. do skopiowania, z prostymi komentarzami) 

<?php
$conf->debug = true; # set true during development and use in your code (for instance check if true to send additional message)

# ---- Webapp location
$conf->server_name = 'localhost'; # server address and port
$conf->protocol = 'http'; # http or https
$conf->app_root = '/amelia/public'; # project subfolder in domain (relative to main domain)

# ---- Database config - values required by Medoo
$conf->db_type = 'mysql';
$conf->db_server = 'localhost';
$conf->db_name = '_database_name';
$conf->db_user = '_user';
$conf->db_pass = '_password';
$conf->db_charset = 'utf8';

# ---- Database config - optional values
$conf->db_port = '3306';
#$conf->db_prefix = '';
$conf->db_option = [ PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ];