Joomla.it Forum
Non solo Joomla... => Sviluppo => : Cybassh 26 Sep 2011, 10:39:20
-
Buongiorno a tutti,
stavo riflettendo su come condividere del codice comune fra diversi componenti sulla stessa istanza di Joomla! in maniera coerente alla struttura generale. La prima soluuzione che mi viene in mente è creare una cartella a livello base dove mettere i file da richiamare, ma credo non sia la soluzione migliore.
Mi potreste cortesemente suggerire una soluzione migliore?
grazie
-
Cosa intendi più precisamente con "codice comune" ?
-
intendo, per esempio, una classe, un oggetto sull' istanza corrente, i quali metodi possono essere richiamati dai diversi componenti. questo sarebbe il top per l mia problematica.
per esempio: la gestione della connessione. i componenti devono fare la connessione al db. Piuttosto che per ogni componente (ed ogni model) creare la risorsa* al db, avere la possibilita di richiamare il metodo dell'oggetto che ti fornisce questa risorsa.
ovvero ogni volta che viene istanziato un model, chiamare dall'oggetto $oggettoGenerico->daiConnessione, che ti restituisce la risorsa.
chiedo scusa se non son stato chiaro.
* $db1 =& JDatabase::getInstance($options); Dove db1 intendo risorsa
-
Ciao,
per le stesse istanze puoi usare i singleton, poi per fare il require delle classi puoi scriverti un plugin system così lo carichi all'inizio di ogni pagina.
-
sai che nn capisco? Più semplice di un metodo non credo esista nulla...
M.
-
ciao,
se i componenti sono tra loro collegati puoi inserire la libreria in un componente e caricarla dalla cartella di questo. se i componenti non hanno tra loro relazioni salva le librerie in una cartella al di sotto di libraries ed importale con jimport (vedi doc).
ps: quando parli di oggetti (OOP) ti conviene parlare di installazioni e non di istanze di joomla, altrimenti non si capisce niente...
ciao,
marco
-
marco pls ..sono curioso... mi traduci anche qs?
---------------------
creare la risorsa* al db, avere la possibilita di richiamare il metodo dell'oggetto che ti fornisce questa risorsa.
ovvero ogni volta che viene istanziato un model,
------------------------------------
Cioè a che servirebbe? ..magari è qualcosa che nn so io..
M.
-
@mmleoni grazie mr. hai ragione di utilizzare i terminio giusti (anche per questo ho messo le mani avanti subito ). infatti gli "specialisti " di joomla qua le istallazioni le chiaman istanze, per me un'oggetto è l'istanza della relativa classe. Mi rendo conto che uno dei maggiori problemi è il glossario da utilizzare in una comunità e chiedo scusa se son stato un po' caotico.
@mau ciao, una parte di spiegazione l'ho data sopra. Risorsa è un refuso di altri linguaggi di programmazione che individuano nelle connessioni ai dbms... a differenza di puntatori, integer etc etc.
ti chiedo scusa se non so0n stato chiaro
-
Ok, tutto funziona. il componente restituisce a video quello che deve fare solo che credo ho bisogno di un'altra mano per migliorare.
Cioè la libreria si chiama ghetto e contiene una classe con diversi metodi.
Il fatto è che la istanzio su ogni model. esempio
class DocentiModelX{
...
public function __constructor(){
jimport('Ghetto.Ghetto');
$gestConn= new Ghetto();
$db1=& Ghetto::$dbConn;
...
}
}
class DocentiModelY{
...
public function __constructor(){
jimport('Ghetto.Ghetto');
$gestConn= new Ghetto();
$db1=& Ghetto::$dbConn;
...
}
}
come e dove posso richiamarla in maniera unica per tutti i model etc.?
Grazie