Yii Che Confusione!

Ciao a tutti,

dopo 4 giorni di letture varie e test (falliti), chiedo aiuto da casa. Ho letto un sacco di tutorial e noto con piacere che tutti danno x scontato il dove le cose vanno inserite.

se si scrive "public function" sarebbe meglio che scrivessero dove mettere le cose!!altrimenti si rischia che uno lo inserisca in un pagina x i test ed esca un fatal error!

Intravedo le utilità di Yii, ma la difficoltà ad iniziare azzera ogni cosa. Chiedo a voi lumi prima di abbandonare questo framework e catalagorlo come "boiata assurda" (so che non lo è!)

Ho visto che esiste un index-test.php che dovrebbe aiutarmi a fare dei test, ma dopo aver creato i model per le mie tabelle del db, come le uso ad esempio in questa pagina????

esempio ho la tabella persone con campi id e nome, quindi ho generato il modello Persone. Nel file di test come posso provarlo????

file test





/**

 * This is the bootstrap file for test application.

 * This file should be removed when the application is deployed for production.

 */


// change the following paths if necessary

$yii=dirname(__FILE__).'/../yii/framework/yii.php';

$config=dirname(__FILE__).'/protected/config/test.php';


// remove the following line when in production mode

defined('YII_DEBUG') or define('YII_DEBUG',true);


require_once($yii);

Yii::createWebApplication($config)->run();



da un primo :wub: di Yii, ahimè e un conitnuo >:( devo arrendermi e alla fantozzi dire…per me è una ca… pazzesca :))

grazie a tutti anche se non ho avuto risposte bye bye

cosa intendi per “come posso provarlo”? per interagire con un model devi avere una anche una view e un controller. index-test.php è uno dei due entry script che Yii mette a disposizione di default. Lì puoi ad esempio impostare parametri dell’applicazione alternativi a quelli in index.php (puoi notare la riga 8 ).

forse non hai chiaro il concetto di pattern mvc? Ti consiglierei di partire da qui comunque: http://www.yiiframework.com/doc/guide/1.1/it/index

il fatto che tu non riesca a fare quello che vuoi forse non dipende da yii.

Era ironica la mia risposta, quello che ho difficoltà non è il pattern mvc, ma capire alcune cose che fanno partire mentalmente i concetti del framework (ognuno ha il suo). Ad esempio con lo zend, creare lo scheletro è un disastro…gli stessi tutorial di zend fanno riferimento a file che non esistono nello zip che ti fano scaricare…da ucciderli!!!

Quello che pensavo con il file index-test è che li potevo richiamare direttamente il mio model "Reporting" e utilizzarlo per fare dei test, ma non ho capiro se sia possibile, perchè mi scontro con continue dipendenze assenti.

E’ possibile farlo in questo modo?credo di no!

modello-vista-controller è ok e comincio a entrare nella logica che Yii vuole per le azioni, mi sfugge non avendo ancora trovato negli esempi e documentazione allegata il concetto di "components", come si legano con MVC di Yii?

Grazie per la risposta Sonik :)

Non capisco in che contesto stai operando. Cioè, hai creato un’applicazione da zero con l’apposito tool di yii? Se si, che dipendenze mancano? Entriamo nello specifico o in generale non si risolve nulla. Esponi cosa vuoi fare, come stai provando a farlo e che errori ti ritornano.

Oppure leggi la guida linkata prima e torni qui se ci sono punti che non capisci.

Poi, cosa intendi per “concetto di components”? Un component in Yii è un’istanza della classe CComponent o di una classe che la estende. http://www.yiiframework.com/doc/guide/1.1/en/basics.component

Comunque per provare a interagire con un tuo model perchè non generi controller e views con Gii?

Hai scaricato il manuale pdf con la spiegazione di tutto il framework?

  • si è sto anche guardando i tutorial in lingua madre, ma in alcuni casi si tralascia il “dove” inserire le parti di codice di esempio (il dare x scontato non sempre funziona :D )

Sto provando a usarlo e pensavo fosse possibile accedere direttamente ai model per capire meglio giocandoci un pò. lo volevo fare direttamente nella index-test

per capire meglio come sfruttare il framework o prenderne maggiore confidenza

Nel senso che dentro protected/components trovo lo UserIdentity e stavo cercando di capire dove veniva usato per il form di autenticazione. Ho visto che viene istanziata come se fosse una classe personale all’interno dei controller (giusto??)

Se indichi i casi dove vengono tralasciati questi dettagli e vediamo di darti una mano. (Madre di chi? :P)

non puoi farlo in index-test.php. E non devi farlo. Non ha quello scopo. Se continui a volerlo fare in quel file vuol dire che non ti è chiaro come funziona Yii.

Prima di metterti a scrivere codice ti conviene leggere attentamente la guida che ti ho linkato prima.

"classe personale"? Cioè?

UserIdentity estende CUserIdentity e fa l’override del metodo authenticate(). Nel model LoginForm è dichiarata, tra le altre, la rule array(‘password’, ‘authenticate’) e è dichiarato il metodo authenticate($attribute,$params) che viene usato nella actionLogin del SiteController. Il giro è questo se non sbaglio.

Quando ci ricasco me lo appunto, comunque seguendo un video tutorial in inglese ho catturato alcuni concetti che non capivo.

ok, tolto il dubbio, speravo non fosse così, ma lo avevo intuito. ::)

si appunto, UserIdentity è una classe “personale” che nel caso estende e esegue override dei metodi esposti. Tutta la doc ancora non l’ho letta, ma ieri con quel video in cui veniva mostrata una gestione di un personal site con form e crud, mi ha aiutato molto.

Bene. Se hai altri dubbi chiedi pure.

Comunque, che una classe "che nel caso estende e esegue override dei metodi esposti" si dica "personale" mi giunge nuova.

Ciao lbottoni, mi ricordi le frustrazioni che ho affrontato io quando ho cominciato.

Prova a leggerti questo tutorial:

http://www.yiiframework.com/forum/index.php/topic/27224-come-creare-la-prima-mini-applicazione-con-yii/

l’avevo scritto con l’intenzione di aprire la mente a chi si accingeva a partire.

Spero possa esserti d’aiuto

Eccomi di nuovo, allora un pò meno confusione aleggia in me. Intanto grazie a Giancarlo che mi hai passato quel link che è e sarà utilie molto nel proseguimento del mio studio.

Volevo ad esempio mostrarvi questo che non riesco a capire come metterlo assieme.

Ho una tabella user con molti campi, con il gii ho generato il model della tabella e stavo cercando di settare correttamente le "rules" della classe, quindi mi inserisco nel motodo rules() per definire lo username

Definizione:deve essere unico come la mail e lungo da 8 a 30 caratteri

quindi leggendo qua e là so che devo definire così la cosa




class Users extends CActiveRecord

{

	/**

	 * @return string the associated database table name

	 */

	public function tableName()

	{

		return 'users';

	}


	/**

	 * @return array validation rules for model attributes.

	 */

	public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

			array('username, email', 'unique'),

			array('username', 'length', 'min'=>3, 'max'=>12),

			

		);

	}



bene da qui Creating Model so che “length” è un’alias della classe CStringValidator, quindi mi sposto nella classe stessa per capire quali altri valori posso passare, ma non riesco a capire come posso fare a valorizzare altre possibili proprietà leggendo la documentazione uffciale (lo intuisco chiaramente, ma vorrei che qualcuno potesse spiegarmelo x essere sicuro!). COme potrei ad esempio sfruttare le proprietà “encoding” o il metodo “clientValidateAttribute()” passandolo nella matrice del metodo rules?

Almeno posso muovermi nella documentazione :mellow: