Configurazioni generali

Dopo aver installato il framework RGL non siamo ancora pronti per partire, ci manca un ultimo piccolo "sforzo",
la configurazione generale del progetto.

Per poter configurare il nostro progetto dovremmo gestire con il nostro editor preferito il file config.php situato nella omonima directory Config

├── Config/
│   ├── config.php

Dovremmo settare i seguenti parametri:

define('ADDRESS_SITE', 'http://localhost/nome_progetto/');

Inserire la url del progetto.


Gesione sessioni e protezioni dati:

// gestione sessioni 
"_ELW_" => "exists_login_{{ELW}}", 
"_KYE_" => "key_{{KYE}_exists", 
"ENCRYPTION_METHOD" => "AES-256-CBC",
"ENCRYPTION_KEY" => "{{KEY}}",
#your secret key 
"ENCRYPTION_IV" => "{{IV}}", 
"_SESSION_NAME_" => 'Rglab_0133'.str_replace('.', '', $_SERVER['REMOTE_ADDR']),

La modifica di questi elementi sarà fonte si sicurezza per la gestione delle sessioni e della classe di crittografia dei dati.
Queste impostazioni saranno gestite in modo automatico e random durante l'inizializzazione del framework.


Definire la lingua di default del progetto e timezone

"_DEFAULT_LANG_" => "it",
"_TIME_ZONE_" => 'Europe/Rome', 

È possibile trovare la lista completa delle timezone disponibili nel manuale ufficiale di PHP.


Nome generale del progetto.

"_PRODUCT_" => 'REGOLO mf',

Versione del progetto

"_VERSION_" => 'beta 0.4.3',

Nome del sito internet o del progetto web.

"_NOME_SITO_" => 'NOME SITO',

Posizione del Progetto

'_HOME_' => '/rgl-mf/',

Questa voce è molto importante nel configurare il progetto. 
Mettiamo il caso il progetto sia posto direttamente nella root (ad esempio /var/www/html/) dovremmo inserire semplicemente:

'_HOME_' => '/',

Nel caso in cui il progetto è posto in una directory di primo livello (ad esmpio /var/www/html/mio_progetto/) dovremmo inserire semplicemente:
 
'_HOME_' => '/mio_progetto/',
 
Nel caso in cui la directory è di secondo livello (./mio_progetto/altro_progetto/) dovremmo scrivere:
 
'_HOME_' => '/mio_progetto/altro_progetto/',
 
così via, in base alla profondità ed alla posizione della directory del progetto.
 
La sezione _DB_ verrà configurata in base al tipo di database da utilizzare ed al numero di db utilizzati.
 
Configurazioni PDO per SqLite:
'_TIPO_DB_' => 'SQLITE', 
'_HOST_DB_' => str_replace("//", "/", ROOT_PATH.'/').'db/', 
'_USER_DB_' => '', 
'_PASS_DB_' => '', 
'_NAME_DB_' => 'mio_db.sqlite', 
'_PORT_DB_' => '',

 

Il database sqlite generalmente è posto all'interno della directory ./db/

Configurazione PDO per MySql:

'_TIPO_DB_' => 'MYSQL',
'_HOST_DB_' => 'localhost',
'_USER_DB_' => 'root',
'_PASS_DB_' => 'xxxx',
'_NAME_DB_' => 'mio_db',
'_PORT_DB_' => '3306',

Compilare i campi in base alle proprie esigenze di connessione.

Configurazione PDO per PostgreSQL:

'_TIPO_DB_' => 'PGSQL',
'_HOST_DB_' => 'localhost',
'_USER_DB_' => 'root',
'_PASS_DB_' => 'xxxx',
'_NAME_DB_' => 'mio_db',
'_PORT_DB_' => '5432',

Generalmente le connessioni a Postgresql tramite PDO, per esperienza personale, le sconsiglio, perchè sono notevolmente più lente rispetto alle connessioni tramite la funzione pg_connect().


Configurazioni SQLite3() per SqLite:

'_TIPO_LTE_' => 'SQLITE',
'_HOST_LTE_' => str_replace("//", "/", ROOT_PATH.'/').'db/',
'_NAME_LTE_' => 'mio_db.sqlite',

Configurazioni mysqli_connect() per MySql o MariaDB:

'_TIPO_MY_' => 'MYSQL',
'_HOST_MY_' => 'localhost',
'_USER_MY_' => 'root',
'_PASS_MY_' => 'xxxx',
'_NAME_MY_' => 'mio_db',

Configurazioni pg_connect() per PostgreSQL:

'_TIPO_PG_' => 'PGSQL',
'_HOST_PG_' => 'localhost',
'_USER_PG_' => 'root',
'_PASS_PG_' => 'xxxx',
'_NAME_PG_' => 'mio_db',
'_PORT_PG_' => '5432',

Se si utilizza un DB PostgreSQL consiglio vivamente di utilizzare questa configurazione


Sarà possibile utilizzare in contemporanea sia la configurazione PDO che la configurazione standard del singolo database. Ad esempio se dovessimo utilizzare due diversi database MariaDB potremmo utilizzare sia la configurazione PDO che la configurazione mysqli_connect().
In linea di massima però viene utilizzata la sola configurazione per PDO, lasciando le altre configurazioni vuote o inutilizzate. Più avanti tratteremo l'argomento più nello specifico effettuando esempi concreti.


Configurazione sezione generazione pagine:

// Private page Generate.php
    '_USERN_' => 'admin',
    '_PASSW_' => 'admin',

 

Queste credenziali verranno richieste all'interno della sezione per la generazione delle pagine.


Configurazione delle email per eventuali contatti o informazioni:

// email address
     '_ADMIN_MAIL_' => '',
     '_CONTACT_MAIL_' => '',