11<?php
22
3- /*
4- Se la variabile d'ambiente STORAGE_FOLDER è definita, tutti i files vengono
5- conservati nella cartella (contenuta in storage/) con quel nome.
6- Utile per isolare i files in configurazioni multi-GAS
7- */
3+ use Illuminate \Support \Env ;
4+
5+ /**
6+ * Se la variabile d'ambiente STORAGE_FOLDER è definita, tutti i files vengono
7+ * conservati nella cartella (contenuta in storage/) con quel nome.
8+ * Utile per isolare i files in configurazioni multi-GAS
9+ */
810function gas_storage_path ($ path = null , $ folder = false )
911{
1012 $ ret = storage_path ();
@@ -25,22 +27,22 @@ function gas_storage_path($path = null, $folder = false)
2527 return $ ret ;
2628}
2729
28- /*
29- Questa funzione restituisce il file .env relativo all'istanza.-
30- In caso di una installazione standalone non ci sono particolari problemi: il
31- file .env è .env
32- In caso di una installazione in multi-tenancy, il file dipende dal dominio
33- HTTP che viene richiesto. Questo comportamento viene sfruttato in
34- bootstrap/app.php per inizializzare l'istanza ad ogni richiesta HTTP.
35- Se invece sto eseguendo uno script CLI (ad esempio: i comandi eseguiti in
36- cron), e non posso accedere alla variabile $_SERVER (non esistendo alcuna
37- richiesta HTTP da leggere), i possibili comportamenti sono due: o appunto ho
38- appena eseguito il comando, dunque non è ancora stato inizializzato niente,
39- dunque prendo per buono sempre e solo .env, altrimenti desumo l'istanza
40- locale dal valore di APP_URL (che nel frattempo è stato letto dal file .env
41- giusto)
42- */
43- function env_file ()
30+ /**
31+ * Questa funzione restituisce il file .env relativo all'istanza.-
32+ * In caso di una installazione standalone non ci sono particolari problemi: il
33+ * file .env è .env
34+ * In caso di una installazione in multi-tenancy, il file dipende dal dominio
35+ * HTTP che viene richiesto. Questo comportamento viene sfruttato in
36+ * bootstrap/app.php per inizializzare l'istanza ad ogni richiesta HTTP.
37+ * Se invece sto eseguendo uno script CLI (ad esempio: i comandi eseguiti in
38+ * cron), e non posso accedere alla variabile $_SERVER (non esistendo alcuna
39+ * richiesta HTTP da leggere), i possibili comportamenti sono due: o appunto ho
40+ * appena eseguito il comando, dunque non è ancora stato inizializzato niente,
41+ * dunque prendo per buono sempre e solo .env, altrimenti desumo l'istanza
42+ * locale dal valore di APP_URL (che nel frattempo è stato letto dal file .env
43+ * giusto)
44+ */
45+ function envFile ()
4446{
4547 if (global_multi_installation ()) {
4648 $ instance = null ;
@@ -49,7 +51,13 @@ function env_file()
4951 $ instance = substr ($ _SERVER ['HTTP_HOST ' ], 0 , strpos ($ _SERVER ['HTTP_HOST ' ], '. ' ));
5052 }
5153 elseif (app ()->runningInConsole ()) {
52- $ domain = parse_url (config ('app.url ' ), PHP_URL_HOST );
54+ /*
55+ Reminder: quando questa funzione viene invocata, il service
56+ provider che gestisce le configurazioni (normalmente acceduto
57+ con l'helper config()) non è ancora stato inizializzato.
58+ Non cadere nella tentazione di usare qui config('app.url')
59+ */
60+ $ domain = parse_url (Env::get ('APP_URL ' ), PHP_URL_HOST );
5361 $ instance = preg_replace ('/^([^\.]*)\.gasdotto\.net.*$/ ' , '\1 ' , $ domain );
5462 }
5563
0 commit comments