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 ];