Il Gpci framework è dotato di un file launcher.php che agisce da endpoint unico per azionare/risolvere processi paralleli e fa da router per le procedure cron e ajax sia interne che pubbliche. Il file può essere chiamato da cli, da browser e da richieste remote, ogni tipo di chiamata ha chiaramente i propri requisiti di accesso e sicurezza. Le funzioni del framework fanno automaticamente riferimento a questo file e tutte le configurazioni possono essere definite nel file di configurazione. L'idea di questo sistema è consentire e semplificare processi automatizzati e funzioni condivise non solo nell'installazione corrente ma anche tra installazioni multiple e chiamate remote.
Panoramica dei metodi di accesso
Il file si trova all'interno della cartella del tema padre e può essere chiamato direttamente nei seguenti modi:
Ajax tramite azioni ajax
Questo metodo è utilizzato dalle azioni ajax, l'accesso viene eseguito con le seguenti caratteristiche:
- sono consentite soltanto chiamate http
- sono richiesti dati cifrati (se chiamata remota devono avere gli stessi parametri di cifratura anche sul server bersaglio)
- è controllata la validità dei parametri decifrati
è controllata l'esistenza e la configurazione dell'azione bersaglio- è quindi caricato wordpress e, se non chiamata remota, verificato il nonce
- la superglobale $_GET o $_POST viene sovrascritta con i dati decifrati
- sono verificate le condizioni
- è impostata la globale
$GLOBALS['gpci']['ajax']['current_args']con gli argomenti filtrati - viene controllata un'eventuale falsificazione dell'azione chiamata
Ajax tramite gpci/form
E' il metodo più comune ed è utilizzato automaticamente dal blocco gutenberg gpci/form. Richiede l'utilizzo di un browser con javascript attivo, del resto è tutto impostato automaticamente dal framework, quindi non importa configurare nulla. La procedura per controllare se una chiamata è valida è come la precedente ma l'aggiunta di:
- controllo effettiva esistenza del form nelle coordinate pagina
- controllo validità e valori possibili dei campi inviati
Gli altri controlli sono a discrezione degli amministratori in base all'utilizzo del form. La cifratura per ora è sempre quella predefinita (id:default)
Ajax tramite azioni interne
Questo metodo è utilizzato dagli amministratori del framework sempre tramite browser, ha gli stessi requisiti del form ma viene controllato anche che l'utente corrente sia un amministratore. Inoltre i tempi limite sono molto corti e le azioni sono completamente controllate dalle funzioni interne. In questo caso non importa nessuna configurazione in quanto è controllato tutto dal framework.
Cron
.....
