Yii Framework Forum: provenienza - Yii Framework Forum

Jump to content

  • (7 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

provenienza Rate Topic: -----

#41 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 08 September 2010 - 09:24 AM

View PostNic Anji, on 08 September 2010 - 01:56 AM, said:

Ciao Sensorario e benvenuto!

Io ti consiglio di approfondire bene il blog ...


Lo sto facendo ... Sto "studiando" actionIndex del PostController e non mi è chiaro quel with. Con CDbCriteria imposto i criteri di ordinamento e via dicendo. Condition ed order non sono difficili da comprendere. Ma with non lo riesco a d inquadrare.

        $criteria = new CDbCriteria(array(
                    'with' => 'commentCount',
                    'order' => 'update_time DESC',
                    'condition' => 'status=' . Post::STATUS_PUBLISHED,
                ));


Non mi è chiaro il significato dell'attributo 'with'. Sto cercando nella documentazione e nel class reference ma per ora nulla di chiaro. Sto sbattendo la testa da un po.

Partiamo dal banale:
$models = Post::model()->findAll();


A cosa mi serve CDbCriteria::with()?
0

#42 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 30
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 08 September 2010 - 11:13 AM

Il metodo CDbCriteria::with() ti serve per fare quella che si chiama query in "modalità eager loading".

Come dici tu, facciamo un passo in dietro. ;) Cercherò di condensare il tutto, ma la "questione" posta è un po delicata.

Immagina di voler costruire un elenco contenente tutti i post pubblicati nel blog.

Giustamente userai la query:
$models = Post::model()->findAll();


In questo modo su $models farai finire tutto il contenuto della tabella Post. Da li potrai generare il tuo elenco.

E se poi nell lista dei post vorrai includere anche il relativo autore, oppure il numero dei commenti, cosa dovrai fare?
http://www.yiiframew...elational-query
La soluzione più ovvia e semplice potrebbe essere quella di richiamare nella vista "list", nel ciclo foreach su $models, il nome dell'autore con qualcosa del tipo:
echo $model->author->name;


Questa funzione eseguirà per te, ed in automatico, una query nel database per recuperare l'autore del post ed il suo nome. Questa si chiama query in modalità "lazy loading". Ovvero, "query eseguita soltanto quando il dato è richiesto".

"eager loading" e "lazy loading" hanno i loro pro ed i loro contro.

Infatti nel ciclo foreach su $models cosa succede?

Se nel database hai 10 post, al termine del foreach avrai eseguito altre 10 query; raggiungendo così un totale di 11 (10 + quella iniziale).
E se nel database invece avrai 1000 post? Oltre alla query iniziale (quella che ti restituisce tutti i post) dovrai eseguirne altre 1000 per recuperare tutti gli autori! Come puoi intuire è una logica di funzionamento pesante (per fare una cosa molto banale - fra l'altro).

In situazioni come queste ti viene in aiuto l'"eager loading" ed il metodo width() ti permette di richiamarlo. In questo modo, con una sola query (e ripeto una sola query) avrai tutti i dati necessari in un colpo solo. Dovrai comunque richiamare il foreach, ma questa volta tutti i dati saranno stati richiamati prima.

Spero di averti illuminato almeno un po, purtroppo il tempo mi è tiranno

TI consiglio di leggere questo paragrafo in particolare:
http://www.yiiframew...elational-query
0

#43 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 09 September 2010 - 08:37 AM

Quindi se ho due tabelle

POST
id
author_id
titolo

AUTORI
id
nome
cognome


Per richiamare tutti i post uso il comando
Post::model()->findAll();

Ma se definisco, dentro Post
    public function relations() {
        return array(
            'nomeDellAutore' => array(self::BELONGS_TO, 'Autori', 'author_id'),
        );
    }

E voglio anche "tirare su" il nomde dell'autore
Post::model()->with('nomeDellAutore')->findAll();

Ma anche
Post::model()->with('autori.author_id')->findAll();

0

#44 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 09 September 2010 - 08:46 AM

dato che
'author' => array(self::BELONGS_TO, 'User', 'author_id'),


Dopo che ho scritto quel post, sono tornato sui miei passi ed ho fatto così:

<?php $models = Post::model()->with('author')->findAll(); ?>
<?php foreach ($models as $model): ?>
<ul>
    <li><?php echo $model->author->username; ?></li>
</ul>
<?php endforeach; ?>


Il codice funziona, ma funziona anche così:

<?php $models = Post::model()->findAll(); ?>
<?php foreach ($models as $model): ?>
<ul>
    <li><?php echo $model->author->username; ?></li>
</ul>
<?php endforeach; ?>


Se ho ben capito, nel primo caso faccio una sola query pesante, nel secondo, tante piccole query.
0

#45 User is offline   thorfinn 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 14
  • Joined: 22-August 10
  • Location:Rome, Italy

Posted 09 September 2010 - 10:35 AM

Ostia! :rolleyes:
In girum imus nocte, ecce, et consumimur igni.
0

#46 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 10 September 2010 - 07:44 AM

View Postthorfinn, on 09 September 2010 - 10:35 AM, said:

Ostia! :rolleyes:


in che senso?
0

#47 User is offline   Nic Anji 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 30
  • Joined: 26-August 10
  • Location:Italy > Venice > Chioggia

Posted 10 September 2010 - 09:03 AM

View Postsensorario, on 09 September 2010 - 08:46 AM, said:

Se ho ben capito, nel primo caso faccio una sola query pesante, nel secondo, tante piccole query.


Si, esattamente! :)

Quindi, in funzione di quel che devi fare, puoi seguire un metodo piuttosto che un altro.
0

#48 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,159
  • Joined: 04-October 09
  • Location:Moscow

Posted 01 October 2010 - 07:36 AM

Io sono di Legnano (MI), ex collega di ilzale.

Ora lavoro a Mosca (RU), saluti a tutti!!

@Nic Anji e @sensorario: basta parlare di cose intelligenti in questa discussione, apritevene una vostra!! ;)
0

#49 User is offline   MaxBlack 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 11-October 10

Posted 11 October 2010 - 06:23 AM

Ciao a tutti
sono della Provincia di Ancona ma lavoro a Dublino da un paio di anni. E' il primo framekwork che uso, spero di aver fatto la scelta giusta.
0

#50 User is offline   Belgarat 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 04-December 10

Posted 04 December 2010 - 09:06 AM

Salve ragazzi, io sono Veneto, Belluno. :)

Ho scoperto Yii mentre stavo vedendo di imparare Zend, mi ha incuriosito e devo dire che mi sta appassionando, sto sviluppando un'applicazione e sto vedendo se riesco a progettarla usando Yii lasciando perdere Zend. ;)

Una domanda al volo ragazzi, come siamo messi come comunity italiana?
0

#51 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,159
  • Joined: 04-October 09
  • Location:Moscow

Posted 06 December 2010 - 04:29 AM

A proposito della community italiana, uno degli sviluppatori parla italiano e spesso risponde sul forum italiano.

Ci sono un po' di utenti che rispondono anche non blasonati.

Il forum e' un po' scarno, penso perche' molti italiani preferiscono scrivere sul forum inglese dato che e' piu' attivo.
0

#52 User is offline   Maurizio Domba 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,229
  • Joined: 12-October 09
  • Location:Croatia

Posted 06 December 2010 - 04:45 AM

ehm...

scusate se non mi sono presentato in questo forum... (non sono dall'Italia)

Mi chiamo Maurizio, diggito dalla Croatia - Istria - Rovigno

Parlo l'italiano (a scriverlo ci sgaro u po ;) )

Lavoro con Yii ormai da un anno e mezzo, in PHP lavoro da 7 anni...
Find more about me.... btw. Do you know your WAN IP?
0

#53 User is offline   Belgarat 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 04-December 10

Posted 06 December 2010 - 08:29 AM

View Postzaccaria, on 06 December 2010 - 04:29 AM, said:

A proposito della community italiana, uno degli sviluppatori parla italiano e spesso risponde sul forum italiano.

Ci sono un po' di utenti che rispondono anche non blasonati.

Il forum e' un po' scarno, penso perche' molti italiani preferiscono scrivere sul forum inglese dato che e' piu' attivo.


Io intendevo se magari qualcuno non avesse pensato di fare un portale italiano,un www.yiiframework.it per capirci :) Forse potrebbe attirare più gente e promuovere maggiormente il progetto sul territorio. Era una mia curiosità. :)
0

#54 User is offline   theant72 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 12-December 10

Posted 12 December 2010 - 07:30 AM

Milano :D
0

#55 User is offline   vaizeman 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 26
  • Joined: 10-December 10

Posted 16 December 2010 - 12:33 PM

da Ferrara.
Avevo voglia di sviluppare con MVC e Yii è diventata una droga...
Ho comprato anche il libro così quando non lavoro a computer me lo leggo.
0

#56 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 13 January 2011 - 12:11 PM

Ciao vaizeman! Io sono di Cesena. Concordo con la droga! Lunedì prossimo mi incontro con un amico e facciamo a gara a chi usa il framework più bello. Vedremo come andrà la sfida =).
0

#57 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,797
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 13 January 2011 - 12:12 PM

View Postzaccaria, on 06 December 2010 - 04:29 AM, said:

A proposito della community italiana, uno degli sviluppatori parla italiano e spesso risponde sul forum italiano.

Ci sono un po' di utenti che rispondono anche non blasonati.

Il forum e' un po' scarno, penso perche' molti italiani preferiscono scrivere sul forum inglese dato che e' piu' attivo.



Ma come =). Io mi do così tanto da fare a rendere attivo il forum italiano ehehe.
0

#58 User is offline   markux 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 103
  • Joined: 26-November 10
  • Location:Grosseto

Posted 23 January 2011 - 03:40 AM

View Postlogicoder, on 09 December 2008 - 09:28 AM, said:

Maremma !


Anch'io Maremma, sul versante montano ;)
0

#59 User is offline   delmi 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 30-October 10
  • Location:Firenze (Italy)

Posted 23 January 2011 - 08:10 AM

Firenze!
0

#60 User is offline   Paolo B. 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 24-January 11
  • Location:Cesena (Italy)

Posted 24 January 2011 - 10:01 AM

Ciao a tutti,
sono un nuovo utente da Cesena (+1)

Sviluppatore PHP da diversi anni, realizzazione siti web con CMS Contao, sono alla ricerca di un buon frameworks PHP

Fatto diversi timidi tentativi e prove superficiali con i vari CodeIgniter, Kohana ed un poco Zend.

Ora si rende necessario prendere una decisione e vorrei provare seriamente Yii.
L'ho scaricato qualche settimana fa, ma sinceramente mi sono demoralizzato :P ci ho capito poco.
Qualche suggerimento su guide o tutorial con la quale iniziare?!

Grazie mille
0

Share this topic:


  • (7 Pages)
  • +
  • 1
  • 2
  • 3
  • 4
  • 5
  • Last »
  • 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