Yii Framework Forum: Dove Mettere Una Funzione Pubblica? - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Dove Mettere Una Funzione Pubblica? Rate Topic: -----

#1 User is offline   Federico Benedetti 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 11-June 14
  • Location:Italy - Pesaro

Posted 30 September 2014 - 04:21 PM

Salve a tutti, sono ancora agli inizi con Yii.

Nella mia applicazione ho bisogno di avere a disposizione una funzione, che nello specifico mi scrive dei movimenti di log nel mio database.

La devo poter chiamare da qualunque controller in qualsiasi momento.

Qual'è il modo migliore per realizzarla (devo fare un modulo/componente/ o che altro?) ed in che posto va messa e configurata?

Grazie in anticipo
0

#2 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 340
  • Joined: 10-April 12

Posted 30 September 2014 - 05:25 PM

potresti metterla nel model Log di riferimento, visto che salvi i log nel db.
Oppure fatti un Helper dentro la cartella components
0

#3 User is offline   Sergio Neddi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 25-August 14
  • Location:Italy - San Pietro in Gu (PD)

Posted 01 October 2014 - 05:26 PM

Io mi sono fatto una classe Generale in components dove metto tutte le cose di impiego generale che mi servono nell'applicazione (ben poche, in realtà).
0

#4 User is offline   Federico Benedetti 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 11-June 14
  • Location:Italy - Pesaro

Posted 02 October 2014 - 02:53 AM

grazie per le info. Vi rigiro alcune considerazioni sulle soluzioni proposte:

- st4nny - Model del log di riferimento: questa soluzione, x le mie conoscenze attuali è la più semplice da fare. Basta che creo con gii il model della mia tabella log e poi vado ad implementare nel model le altre funzioni che mi servono.

- st4nny - Helper dentro Components: x adesso non ho idea di come si fa, ma devo studiare. Non mi è chiaro se una volta creato l'helper, devo poi settarlo ad esempio nel mail.php di configurazione.

- Sergio Neddi - Classe Generale in Component: penso sia simile alla soluzione precedente, se possibile potete mettermi un esempio x capire come partire?

grazie
0

#5 User is offline   Sergio Neddi 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 20
  • Joined: 25-August 14
  • Location:Italy - San Pietro in Gu (PD)

Posted 02 October 2014 - 03:04 PM

Io ho fatto così: ho creato un file che ho chiamato Generale.php e l'ho messo dentro components.

Dentro Generale.php ho scritto:

<?php

class Generale {

	public static function prova($test){
		echo "Ciao $test!";
	}
}
?>


Poi dove volevo ho scritto la chiamata:

Generale::prova('Sergio');


E l'esito è stato:

Ciao Sergio!

Spero che sia chiaro. La roba in components viene caricata di default, non servono cose particolari. E quindi ci può stare pure il Generale (quando non è dietro la collina... :D ).
0

#6 User is offline   Federico Benedetti 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 93
  • Joined: 11-June 14
  • Location:Italy - Pesaro

Posted 02 October 2014 - 03:33 PM

chiarissimo e gentilissimo, farò qualche prova!
Grazie 1.000 a tutti!

View PostSergio Neddi, on 02 October 2014 - 03:04 PM, said:

Io ho fatto così: ho creato un file che ho chiamato Generale.php e l'ho messo dentro components.

Dentro Generale.php ho scritto:

<?php

class Generale {

	public static function prova($test){
		echo "Ciao $test!";
	}
}
?>


Poi dove volevo ho scritto la chiamata:

Generale::prova('Sergio');


E l'esito è stato:

Ciao Sergio!

Spero che sia chiaro. La roba in components viene caricata di default, non servono cose particolari. E quindi ci può stare pure il Generale (quando non è dietro la collina... :D ).

0

#7 User is offline   st4nny 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 340
  • Joined: 10-April 12

Posted 02 October 2014 - 03:58 PM

giusto.. come suggerito da Sergio
questo è un Helper.. il file si chiama Helpers.php (dentro components)
<?php 
class Helpers extends CComponent
{
	public static function invioMail($id) {
	    //codice
	}
}
?>	


per richiamare la tua funzione da dove ti pare Helpers::invioMail($id);
0

#8 User is offline   SomethingWicked 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 58
  • Joined: 09-January 12

Posted 03 October 2014 - 11:08 AM

Io quando devo fare una cosa del genere faccio un passo indietro e analizzo la finalità della funzione che devo utilizzare... se è specifica di un particolare "oggetto", allora sta bene dentro la classe su cui probabilmente sto già lavorando.
Altrimenti, come suggerito dagli altri, penso a un component.
Se poi la cosa cresce (più funzioni/metodi), e desidero che sia utilizzabile anche su altre installazioni di yii, penso a un modulo.
ciao.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users