Implementare un applicazione Yii

Salve a tutti, sono nuovo all’utilizzo di questo framework!

Avendolo provato, mi è venuta voglia di crearmi un cms tutto personale :)

Però adesso ho un problema che non sono riuscito a risolvere, in pratica, a me servono solo le funzioni (le classi, ecc ecc, create con il crud) per poterli utilizzare nel mio codice php

In parole povere, non mi serve far avviare l’applicazione, ma solo inizializzare tutto il resto così da avere il controllo su tutto quello creato col crud

Potete aiutarmi per favore?

Non e’ molto chiaro cosa vuoi fare, ma se ti servono le funzioni e non il resto, genera quel che ti serve e butta via quello che avanza!

P.s: benvenuto sul forum!

Grazie del benvenuto!

Allora… ti faccio un esempio banale…

Dopo aver generato l’applicazione di base, ho girovagato un pò per le varie cartelle e mi sono imbattuto nella cartella

"miapp/protected/views/layouts/"

c’è un file chiamato main.php ed è composto da codice html e php… in pratica nel tag html <title> c’è del codice php ( <?php echo CHtml::encode($this->pageTitle); ?> ) ed è questo quello che mi servirebbe a me…

Perché se apro il file index.php nella cartella principale della mia applicazione, l’ultima riga di codice presenta “Yii::createWebApplication($config)->run();” e questo carica automaticamente i template e tutto il resto (cosa che a me non serve, xke voglio solo le funzioni, variabili, ecc)

scusami se non sono abbastanza chiaro, ma è da 2 giorni che ci sbatto la testa XD

Il file index.php non lo devi toccare, se non ti piace il template lo puoi cambiare.

Yii non e’ come cakePhp, che ti permette di usare solo pezzi di framework o qualche widget, ti conviene metterti subito nell’ottica di usare il framework per fare tutto, perche’ usane solo una parte e’ molto piu’ faticoso (e io non saprei neanche come consigliarti).

Ci proverò… però è un peccato, perché è davvero molto comodo il generatore di codice, ti rispiarmi molto tempo!

E con qualche modifica potevi integrare le funzioni in qualsiasi sito!

P.S. Ma cakephp ha il generatore di codice? perché l’ultima volta che gli ho dato un’occhiata non ce l’aveva :confused:

alifax, non è che a te servirebbe solo il model, ovvero … vorresti continuare a programmare pagine php normali, ma accedere ai dati più velocemente esattamente come ti permette di fare yii?

Se non vuoi caricare il layout non devi usare la funzione render ma solo renderPartial (e richiamare quindi l’eventuale file di view).

Se vuoi usare solo il controller puoi fare un echo come output e lui non ti carica il layout. Poi non ho comunque capito il senso di quello che vuoi fare, spiegacelo meglio ;)

sensorario ha capito quello che vorrei fare, quindi… sensorario spiega tu, xke io non trovo le parole, ho perso la testa in questi giorni XD

alifax89, ti conviene cambiare approccio, usare solo una parte di Yii e’ un inferno, prova a fare tutto il sito secondo la Yii-way, e ne sarai soddisfatto.

Se vuoi usare solo un pezzetto ti ritroverai con includere una classe dopo l’altra.

Ragazzi, alifax vorrebbe usare solo il model di Yii. Io penso che alifax non abbia appreso il significato del patter MVC. La M è molto chiara, ma il VC no (non era sarcastico: sono serissimo).

alifax, molto semplicemente, non ha senso =). E’ come se tu sviluppassi .Net ma non volessi usare nessuno dei linguaggi che ti consentono di sfruttarlo. E’ come se tu volessi usare un’auto usando solo gli specchietti retrovisori. E’ come se … cercassi di asciugare gli scogli.

Io, fossi in te, spenderei un pochino di tempo per capire meglio la logica di Yii. Te ne innamorerai.

Tanto per non incorrere in ambiguità dovute all’italiano, in una serie di messaggi privati con lui gli ho chiesto di inviarmi una pagina php con esattamente quello che si aspettava. In poche parole gli ho detto, “beh, mandami una pagina come la vorresti così mi metto nei tuoi panni e capisco meglio cosa stai cercando di dirmi”.

Risultato: il documento che mi ha inviato aveva l’HTML sparato in un documento php, dove le prime righe inizializzavano Yii. Allora li ho capito che c’è un gap di conoscenze tra noi e lui e l’ho individuato nell’MVC. Io adesso ho il dubbio: Alifax, ha chiaro in testa che cosa sia MVC e come questo sia stato implementato in Yii?

Spero di non dare l’impressione di avere la spocchia. Mi sto ritrovando spesso nella condizione di stare in mezzo a più persone dove alcune non si comprendono perché si dicono le stesse cose ma con parole diverse. Oppure usano le stesse parole per dire due concetti differenti.

Spesso parliamo partendo dalle soluzioni, senza analizzare il problema. Se abbiamo fortuna va bene, ma molto più spesso non si sa di cosa si sta parlando. Spero di aver fatto chiarezza.

Tanto per fare un altro esempio, un mio collega ha sempre fatto la stampa unione tirando su i dati dal database. Un altro collega l’ha sempre fatto da excel. Si sono detti"devo fare la stampa unione". Chi aveva i dati sotto mano pensava di dover fare una query. Chi doveva fare la stampa si aspettava un excel. Uno ha omesso la parte i excel, l’altro ha omesso la parte del database. Risultato? Hanno discusso 5/10 minuti senza dirsi nulla perché ad uno mancavano i saperi dell’altro. Li per li sembrava che si dovesse fare una query, estrarre i dati, generare un file di excel, passarlo in un qualche modo all’altra persona … che poi avrebbe potuto generare la stampa unione. Oppure … dire a chi deve fare la stampa unione di usare una determinata query. Però attenzione, la comunicazione è pericolosissima se le parti che comunicano danno per scontate alcune informazioni. Da un lato non bisogna pensare di sapere tutto e dall’altro non bisogna dare per scontate le cose.

Lo sò cos’è la programmazione in MVC, quello che volevo fare io era una prova! un cms, fatto x perdere un pò di tempo, non volevo realizzare la “più grande opera d’arte”, il fatto è che io, nella programmazione sono stato sempre così, come da lato software, uso visual basic per fare le operazioni più comuni, mentre per le elaborazioni pesanti, utilizzo l’assembler!

è una cosa strana, lo sò :P

ma mi piace così :P

Visual Basic è un linguaggio ad eventi. Purtroppo l’ho studiato in passato ed usato di recente. Visual Basic in oltre non è “esattamente” ad oggetti. A meno che tu non stia parlando di VisualBasic.Net.

Potresti definire "operazioni comuni" ed "elaborazioni pesanti"? Visual Basic ed assembler NON sono utilizzabili per il Web. Il Web è un tantino differente. Aggiungiamo carne al fuoco: vb ed asm sono compilati, php no (ma si potrebbe ovviare a questo problema).

Se conosci l’MVC, come mai immagini una pagina web come un unico file? Una delle prime cose che si dice di Yii è che all’indirizzo index.php?r=pinco/pallino corrispondono almeno due cose:

/protected/controllers/Pinco.php - che è il tuo controller

public function actionPallino(); - che è il metodo richiamato del controller

/protected/views/pinco/pallino.php - che è il view, ovvero il pezzo di html

ma non solo

/protected/views/layouts/main.php - che è l’HTML del layout.

quando tu mi hai mandato la pagina ci sono rimasto male. C’è un solo index.php con Yii e tutte le altre pagine vengono generate in base ai vari templates e vari layout. E’ dannatamente ordinato.

Io non sò la tua conoscenza in programmazione di software per windows, ma se dai un’occhiata al modo di analizzare i dati da visual basic, all’assembler saprai che la differenza di prestazioni è al quanto notevole!

Per elaborazioni pesanti intendo che l’Assembler permette di sfruttare a pieno il proprio processore, mentre visual basic, deve convertire prima i dati in assembler, elaborarli e poi riconvertire il risultato in basic per poterlo maneggiare… Quindi prova a scrivere un file di 1GB con visual basic e prova poi con l’assembler! Vedrai ciò che intendo! Mentre per operazioni comuni, intendo l’analisi del registro di sistema, varie chiamate api, ecc… che non richiedono enormi quantita di memoria… Chiusa questa parentesi, apriamone un’altra, quello che volevo fare io era un menù di amministrazione personalizzato per il cms che stavo costruendo con yii, se avevo deciso di farlo in quel modo, ci sarà un motivo, non credi?

Il resto del cms, che avevo generato con Yii andava bene, ma in fatto di programmazione voglio aggiungere sempre il mio tocco personale, poi se a te o a qualcun’altro piace o non piace il mio modo di programmare, non posso farci nnt!

P.S. Lo sò che visual basic e assembler non sono utilizzabili per il web, x questo avevo scritto "lato software" ma forse mi sono espresso male

Vorrei puntualizzare una ovvieta’: questo e’ il forum del framework yii.

Se stai cercando dei consigli su come usare yii, sei nel posto giusto.

Per fare qualsiasi pagina con yii, devi implementare un controller e scriverci delle action dentro, questo e’ quanto.

Il mio consiglio d’oro e’ che se vuoi usare yii ti conviene fare il bravo ragazzo e sforzarti di capire come l’ha pensata lo zio Qiang e fare come dice lui, perche’ questa baracca l’ha pensata lui (con l’aiuto dello staff, chiaramente) e fare di testa tua ti porta a fare tanta di quella fatica che ti conveniva usare solo php.

Per concludere, non e’ mica vero che non si puo’ usare assembler per fare i siti, chi l’ha detto? Basta gestire un socket sulla porta 80, ci sono degli esempi per questo.

Se invece preferisci usare Yii, siam qua per aiutarti.