Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313

    Codeigniter Richiamare funzioni dal controller

    Salve a tutti, da dicembre sto studiando a pieno ritmo codeigniter in maniera amatoriale e sento sempre di più l'esigenza di nuove funzioni da integrare al mio sito.

    Sto creando un piccolo CMS che gestisce caricamento di nuove gallerie fotografiche, news e altro ancora, nello scrivere tutte queste cose mi sto rendendo conto che spesso utlizzo gli stessi pezzi di codice in diverse parti del mio controller, idem per le view.

    Mi spiego meglio con un piccolo esempio, per conteggiare quante volte apro una pagina, ho creato un piccolo script in php che mi incrementa di 1 nel database i dati relativi alla pagina, ora volevo sapere, siccome ho vari controller e ho bisogno dello stesso script anche negli altri, è possibile salvare questo script altrove e richiamarlo quando serve???

    Googleando ho trovato una piccola soluzione, ma la trovo un po sporca, nel senso che un ragazzo ha fatto questa cosa utilizzando il model e ogni volta per raggiungere lo scopo, doveva prima caricare il model e poi eseguiva le operazioni, qundi la scarterei per una questione di velocità....

    Pensavo di utilizzare un mio helper personalizzato con le mie funzioni e dalle prove non capisco perchè non va :-(

    Questa stessa esigenza la tengo nelle view, per esempio nella parte back_and del sito utilizzo molte datatable e volevo sapere come posso richiamare gli stessi oggetti che ipoteticamente dovrei caricare nel mio helper personale.

    Qualcuno di voi potrebbe darmi qualche dritta su come fare ????

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: Codeigniter Richiamare funzioni dal controller

    Originariamente inviato da sjpagan
    ...
    Googleando ho trovato una piccola soluzione, ma la trovo un po sporca, nel senso che un ragazzo ha fatto questa cosa utilizzando il model e ogni volta per raggiungere lo scopo, doveva prima caricare il model e poi eseguiva le operazioni, qundi la scarterei per una questione di velocità....
    Codeigniter lo stai studiando male, perché quella che tu chiami "soluzione sporca" è il modo corretto di fare ciò che ti serve.

    Se non vuoi chiamare in continuazione il model manualmente basta che lo metti nell'autoload e verrà caricato automaticamente da CI.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Eheheh sono quasi riuscito nel mio intento ho creato il mio Helper personale, ho fatto la prova con il classico messaggio hello world.... e risci a richiamarlo sia dalla view che dal controller BELLISSIMO....

    Solo una cosa, per poterlo usare devo anteporre alla mia funzione richiamata

    $oggetto = new add_on();
    e poi posso richiamarlo in questo modo

    $oggetto->my_function();

    esiste un modo per eliminare il primo passaggio ?

    in realta io includo già il mio helper nella sezione autoload, quindi non dovrebbe già essere integrsto nel sistema ?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ti faccio notare che "la porcata" la stai facendo con la tua soluzione.
    Se CI è stato pensato in un modo ci sarà un motivo, tu lo stai usando in modo improprio.
    Senza contare che le view non sono fatte per chiamare funzioni, i dati da usare nelle view li devi generare nei controller.

    Stai maltrattando il pattern MVC con uno schiacciasassi

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Alhazred scusami, sicuramente sto facendo un sacco di errori nei mie test però da quello che ho notato quasi tutti utlizzano il Model solo per comunicare con il db, per questo sostenevo che fosse una soluzione sporca ma non per altro :-D

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    I model sono fatti per elaborare dati, qualsiasi dato, che venga dal db oppure no.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Ecco, manco a farlo apposta... :-( riprogettare anche questa parte..... quindi mi stai dicendo che pure per popolare una seplice table devo farlo nel controller e poi mandare un singolo registro con i dati alla view ?

  8. #8
    Originariamente inviato da sjpagan
    Ecco, manco a farlo apposta... :-( riprogettare anche questa parte..... quindi mi stai dicendo che pure per popolare una seplice table devo farlo nel controller e poi mandare un singolo registro con i dati alla view ?
    mi sà che nello studiare CI hai saltato il primo paragrafo "Cos'è MVC"
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Esatto, nel controller generi i dati (facendoli elaborare ad uno o più model se necessario) e li metti in un array che mandi alla view, nella view cicli sull'array per generare le varie righe della tabella.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    313
    Ha :-P consapevole, passo poco tempo sui libri e vado direttamente ai test.... comq, secondo voi e la vostra consolidata esperienza nel settore, e meglio popolare una tabella nel controller e poi spedire tutto alla view o si possono utilizzare i foreach nelle view ? quasi mi vergogno a postare il codice :-(

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.