paolo@bimodesign.com | +34 608 61 64 10

Framework

        

Yii: configurazioni di base

Yii e' uno degli ultimi framework PHP, e sta riscuotendo molto successo per la facilita' d'uso e d'apprendimento. L'acronimo indica "Yes, it is", ovvero, "Si', e' possibile". Infatti la velocita' e la leggerezza di questo nuovissimo framework, sono una delle sue principali caratteristiche.
In questo breve articolo, illustro alcune caratteristiche di base ed alcuni suggerimenti per la configurazione del Framework, mentre per la guida completa (in italiano) vi rimando a questo ottimo e completo link del sito Html.it In seguito inseriro' articoli piu' specifici riguardo a questo framework.
Innanzitutto occorre scaricare l'ultima versione del framework qui, quindi decomprimerlo in una dir del vostro server (ad esempio Downloads) e verificare, accedendo alla dir requirements, se avete tutti i requisiti necessari per l'installazione.
Creiamo la nostra applicazione, che ricordo va eseguita lanciando questo comando, posizionandosi nella dir Framework

$> php yiic webapp /home/paolo/public_html/cmsbimo


Diamo i permessi alle cartelle appena create (Nota, nell'ultima versione non e' necessario modificare alcun permesso) e quindi ora procediamo ad effettuare le modifiche per le varie configurazioni.

Il file di configurazione
Il file di configurazione dell'applicazione e'
app/protected/config/main.php
Per il SEO-friendly, descommentare la parte relativa a components -> urlManager.
Per il modulo Gii, descommentare quella modules->gii, inserendo la password che si utilizzera' per questo modulo.
Per utilizzare il db MySQL o sqlLite, commentare/des-commentare le relative voci components->db Nella sezione components->errorHandler troviamo il controller che gestira' gli errori. Nella sezione components -> log quale classe si occupa della gestione dei logs dell'applicazione.

Le URL senza "index.php"
Per eliminare l'index.php dalle URL occorre modificare il file
protected/views/layout/main.php
inserendo al posto di

array('label'=>'Home', 'url'=>array('/site/index')),

questa

array('label'=>'Home', 'url'=>array('../site/index')),

aggiungendo quindi "../" a tutti gli URL.
Inoltre occorre creare l'.htaccess nella cartella /app/ con il seguente contenuto

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

Importante: copiare quindi la dir framework nella home del proprio sito (ad esempio /cmsbimo/) e cambiare questa linea nel index.php

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

Non e' necessario copiare nessun altro file/dir del file .zip originale.
Per verificare che tutto funziona, accedere all'indirizzo appena generato, che nel mio caso sara' http://localhost/cmsbimo

Come creare la prima struttura MVC
Avremo chiaramente bisogno di un db e di una struttura dati, meglio (anche se non strettamente necessario) che quest'ultima presenti anche le relazioni tra tabelle.
Usiamo quindi il cosidetto modulo Gii, digitando http://localhost/bimocms/cms/gii.
Si presentera' una schermata dove saranno presenti alcuni menu'.
Usiamo quello per creare il modelo (ricordando il nome della classe che genereremo ;)). Una volta generata, accediamo direttamente al menu' CRUD Generator ed inseriamo semplicemente i dati relativi al modello appena creato.
Tutto qua!
Se ora digitiamo http://localhost/bimocms/cms/NomeDellaClasse avremo la nostra prima, semplice (e funzionante) struttura MVC.
Chiaramente questo e' solo l'inizio. :))

Tips and Tricks
Alcuni suggerimenti:
- per usare il modulo Gii potrebbe essere necessario dare i permessi a queste directory
Protected/controllers
Protected/models
Protected/views
Protected/runtime

- La password per l'accesso al CMS, ovvero al sito, e' per default inserita in chiaro in questo file
protected/components/UserIdentity
in questa parte di codice:

	public function authenticate()
	{
		$users=array(
			// username => password
			'demo'=>'demo',
			'admin'=>'vostra password',
		);
		....
		....

Chiaramente sara' vostra cura cambiarla e renderla piu' sicura.