Yii Framework Forum: class Yii extends YiiBase {} - Yii Framework Forum

Jump to content

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

class Yii extends YiiBase {} Perche è vuota? Rate Topic: -----

#1 User is offline   sensorario 

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

Posted 07 September 2010 - 09:51 AM

/**
 * Yii is a helper class serving common framework functionalities.
 *
 * It encapsulates {@link YiiBase} which provides the actual implementation.
 * By writing your own Yii class, you can customize some functionalities of YiiBase.
 *
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @version $Id: yii.php 1678 2010-01-07 21:02:00Z qiang.xue $
 * @package system
 * @since 1.0
 */
class Yii extends YiiBase
{
}




Avete mai modificato questa classe? Si può sfruttare?
0

#2 User is offline   Nic Anji 

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

Posted 08 September 2010 - 02:14 AM

Certamente, quella classe è vuota proprio per dare la possibilità di estendere il funzionamento del framework.

Quado l'applicazione web è "in funzione", quella classe è un po come la spina dorsale, quindi qualsiasi cosa aggiungi li dentro te la ritrovi ovunque in "run time" ;)

Personalmente non ho ancora avuto la necessità di modificare la classe Yii, il meccanismo delle estensioi, unito al pattern MVC ricopre praticamente tutte le mie esigenze, ma se mi capiterà un giorno di esser limitato in qualcosa, quella sarà una delle prime classi che proverò a modificare.

Soltanto una considerazione però: ricorda che dal punto di vista della modularità, è più "comodo" creare una estensione, piuttosto che modificare la classe base: l'estensione la prendi e la metti in tutte le installazioni Yii a piacimento; non si può dire la stessa cosa sella classe Yii, soprattutto se la estendi di parecchio.
0

#3 User is offline   sensorario 

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

Posted 08 September 2010 - 09:30 AM

Quindi posso estendere Yii e veder propagare ogni mio nuovo metodo in tutte le altre classi giusto? Si, in effetti se volessi portare da un mio lavoro Yii le stesse modifiche dovrei fare un copia incolla, mentre con un'estensione (che non so nemmeno che forma abbia) dovrei spostare "solo lei". Giusto?
0

#4 User is offline   Nic Anji 

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

Posted 08 September 2010 - 11:24 AM

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

Quindi posso estendere Yii e veder propagare ogni mio nuovo metodo in tutte le altre classi giusto?

Si, è giusto. Potrai chiamare nomeMetodo() praticamente ovunque. Ti basterà scrivere Yii::nomeMetodo()

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

Si, in effetti se volessi portare da un mio lavoro Yii le stesse modifiche dovrei fare un copia incolla, mentre con un'estensione (che non so nemmeno che forma abbia) dovrei spostare "solo lei". Giusto?

Si, ti confermo anche questo. Copiare/incollare un file o una cartella è sicuramente più "pulito" che andare a ravanare nei file e fare copia/incolla. ;)

Per estendere Yii ci sono svariati modi, tutti molto puliti. La scelta dipende da cosa devi fare. Del resto è un framework! :)
0

#5 User is offline   ekerazha 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 524
  • Joined: 10-October 08
  • Location:European Union

Posted 09 September 2010 - 04:49 AM

Io l'avevo usata banalmente per fare l'override del metodo powered() contenuto in YiiBase e modificare la dicitura "Powered by ...". Però penso smetterò di modificare la classe Yii perché preferisco tenere il contenuto della directory /framework intatto in modo da poter aggiornare comodamente il framework di versione in versione semplicemente rimpiazzando la suddetta cartella, invece se modifichi la classe Yii devi ricordati ogni volta di ripristinare anche il relativo file.
Yii user #37
0

#6 User is offline   Nic Anji 

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

Posted 10 September 2010 - 09:52 AM

Infatti ;)
0

#7 User is offline   zaccaria 

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

Posted 27 September 2010 - 08:05 AM

Non si deve modificare mai niente di niente di quello che sta nella cartella framework.

Se devi modificare qualcosa, ti fai una tua bella classe (da mettere, per esempio, in component) con scritto:

class MiaYii extends Yii
{
    public function powered()
    {
         return "potenziato da Yii";
    }
}



E nel codice puoi scrivere comodamente:

echo MyYii::powered();


Questa cosa si applica a tutte le cose che stanno nel framework. Io ho provato a modificare CDbCommandBuilder, per esempio, ed estedere CDbConnection per farla includere.
0

#8 User is offline   sensorario 

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

Posted 27 September 2010 - 11:50 AM

UH! Non ci avevo pensato. Oltre tutto possiamo aggiornare tutto il framework senza preoccuparci di nulla se seguiamo il tuo consiglio. Ottima cosa direi =).
0

#9 User is offline   zaccaria 

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

Posted 28 September 2010 - 01:43 AM

E' il bello di estendere.

Io in 2 anni mi sono scontrato solo una volta con una cosa che non si puo' estendere (c'e' una costante)!

Per il resto si puo' fare proprio di tutto senza mettere mano ai file del framework.

Tieni pero' presente che il file "upgrade", quello da consultare quando esce una nuova versione per passare alla successiva, copre solo l'uso normale e da bravo ragazzo, non copre tutte le eventuali estensioni (d'altra parte che ne sanno loro di come modifichi i metodi), per cui se hai casini che non capisci in upgrade, quasi sempre e' un file che hai esteso.

Giusto da tenere a mente
0

#10 User is offline   ekerazha 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 524
  • Joined: 10-October 08
  • Location:European Union

Posted 30 September 2010 - 12:28 PM

View Postzaccaria, on 27 September 2010 - 08:05 AM, said:

Non si deve modificare mai niente di niente di quello che sta nella cartella framework.

Può essere vero in generale ma nel caso specifico la classe Yii è fatta apposta per essere modificata (come suggerisce il blocco di commento), che poi per i motivi già spiegati si possa preferire di non farlo è un altro conto.
Yii user #37
0

#11 User is offline   zaccaria 

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

Posted 01 October 2010 - 02:35 AM

Ma infatti, quello che intendo dire e' che non si deve modificare la classe Yii, ma estenderla e sovrascrivere i metodi che servono.

Al 90% dei casi, se voi pensate di estendere qualcosa ci ha gia' pensato Qiang prima di voi, e vi troverete un bel metodo nella classe con un commento tipo:

/* Overwrite this method for change this behaviour

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