[Risolto] Visibilità Ed Include_Once

Salve a tutti,

più che un problema mi servirebbe un consiglio:

attualmente ho una cartella di script php dove racchiudo delle funzioni che mi ritornano utili in diversi punti della mia webapp (una specie di libreria).

Attualmente richiamo tali script tramite degli “include_once” in ogni controller ma devo replicare l’inclusione IN OGNI controller (funziona ma non è bellissimo ;)

Il mio dubbio è dove poter porre tutti gli include_once senza doverli replicare in ogni controller. Oppure se Yii espone un metodo più efficace o efficiente.

Spero di essere stato chiaro, in pratica vorrei definire la mia funzione "f" in un file.php, includere questo UNA SOLA VOLTA ed utilizzare f dove voglio senza dovermi preoccupare di includere il file.

Grazie a tutti!!!

Il mio suggerimento è quello di convertirli tutti in classi, e di cacciarli tutti nella cartella protected/components. In questo modo, verranno caricati automaticamente da Yii se e quando serve.

concordo con sensorario.

trasforma in degli helper (classi con metodi statici) e raggruppa il tutto in base allo scopo.

io personalmente preferisco non tenere quella roba in components, di solito mi creo una directory helpers in protected in cui schiaffare queste cose.

e poi verrebbero caricati comunque automaticamente al bisogno da Yii?? valrebbe lo stesso discorso fatto da Sensorario per i components? dovrei aggiungere alla sezione import del main.php la voce ‘application.helpers.*’?

esatto, aggiunti quella voce all’import ed è fatta. le classi verranno caricate in automatico fintanto che il nome della classe e del file fanno match

ok funziona alla grande… nel caso dovesse essere utile, ricapitolando ho:

  1. creato una cartella protected/helpers

  2. creato una classe per ogni gruppo di funzioni semanticamente correlate

  3. importato le classi nel main.php aggiungendo "application.helpers.*

  4. in ogni classe ho definito le mie funzioni statiche

  5. eliminato tutti gli include_once non più opportuni

  6. richiamato le mie funzioni tramite "Classe->funzione"

Grazie a tutti, alla prossima!