lun 06 febbraio 2012

Agile Web Application Development with Yii 1.1 and PHP5

Posted by Modify On settembre - 21 - 2011 ADD COMMENTS

Agile Web Application Development with Yii 1.1 and PHP5 Questo libro è un passo a passo nello sviluppo di una applicazione real-world utilizzando l’approccio incrementale e iterativo di sviluppo del software.

Si impara di sviluppo software su agile appoggiandosi sulla natura agile del quadro di sviluppo di applicazioni .

Si toccano ogni aspetto del ciclo di sviluppo software mediante la costruzione di un compito applicazione la gestione del progetto, dalla concezione fino al deployment di produzione.

Read the rest of this entry »

Creare documenti PDF in Php

Posted by Modify On agosto - 29 - 2011 ADD COMMENTS

pdf php

In questo articolo vediamo dei modi per creare documenti al volo utilizzando .

Attualmente il formato Pdf (Portable Document Format) è in pratica uno standard, per quanto riguarda i documenti multipiattaforma.
Esistono numerose librerie PHP che permettono la creazione di file PDF e qui cercheremo di analizzarno qualcuna.

Read the rest of this entry »

Il framework Yii e l’MVC

Posted by Modify On luglio - 25 - 2011 ADD COMMENTS

implementa, il pattern architetturale MVC (Model-View-Controller) .
Ampiampente utilizzato nel web anche da altri grossi framework, è una tecnica di sviluppo di sistemi software che si propone di separare la logica di business da tutto ciò che è interfaccia utente. Read the rest of this entry »

yii framework è un framework per lo sviluppo di applicazioni Web 2.0. Si tratta di un Framework abbastanza giovane e si inserisce in un mercato già ricco di alternative, ma ha delle feature interessanti, inoltre è leggero e molto veloce, dalle performance eccezionali. Per questi motivi sta diventando velocemente uno dei Framework più apprezzati.

Yii è basato sul pattern MVC, supporta jQuery e può operare con i database quali SQLite, MySQL, PostgreSQL e Oracle. Read the rest of this entry »

Utilizzare la classe JDatabaseQuery in Joomla 1.6

Posted by Modify On aprile - 1 - 2011 ADD COMMENTS

Utilizzare la classe JDatabaseQuery in Joomla 1.6Utilizzare la classe in

La struttura del database di Joomla è rimasto pressochè invariato dalla verisone Joomla 1.0 lanciata nel 2005.
Dopo sei anni, era abbastanza prevedibile un refactoring, per risolvere diversi problemi esistenti e per preparare il terreno per i prossimi cinque o sei anni di sviluppo.
Nell’ultima vesrsione Joomla 1.6 ci sono dei cambiamentei nell schema del database e nelle strutture dati che gestiscono lo stesso Db.
In questo e in successivi articoli vedidremo alcune di queste novità e come utilizzarle dal punto di vista dello sviluppo.

Oggi parliamo di JDatabaseQuery.
E’ una nuova classe nata per rispondere alle richieste di un supporto migliore ai motori di database esistenti, e per una maggiore scalabilità del sistema.
Joomla 1.6 introduce appunto una nuova classe utilizzata per la generazione di query che gli sviluppatori possono facoltativamente sfruttare.

Questa classe consente di astrarsi dal database usato.
Si noti inoltre che in è possibile utilizzare il concatenamento e creare query anche molto complesse programmando in un modo molto ordinato e pulito.

Vediamo degli esempi pratici.

Nella versione precedente di Joomla per creare una query si usava

	$db = JFactory::getDbo();
	$db->setQuery(
	 'SELECT *'.
	 ' FROM #__articles'.
	 ' WHERE state = '.(int) $published.
	 '  AND catid = '.(int) $categoryId.
	 ' ORDER BY created DESC'
	);

che crea una query che legge tutti gli articoli della categoria selezionata con lo stato selezionato ordinati in base alla data di creazione descrescente.

	$db = JFactory::getDbo();
	$query = $db->getQuery(true);
	$query->select('*')
	 ->from('#__articles')
	 ->where('state = '.(int) $published)
	 ->where('catid = '.(int) $categoryId)
	 ->order('created DESC');
	$db->setQuery($query);

Vediamo ora un esempio più complesso.


Preso direttamente dalla documentazione online di joomla 1.6

Consideriamo un caso in cui ci sono tre tabelle denominate “__pt_property”, “__pt_building” e “__pt_unit”.
Le chiavi primarie per queste tabelle sono “property_id”, “building_id” e “unit_id”, rispettivamente.
Vogliamo costruire una query che restituisce il numero di unità associate a un property_id.
La tabella __pt_unit non ha relazione diretta con la tabella di __pt_property.
Essa ha una relazione con la tabella __pt_building, che a sua volta ha una relazione con la tabella di proprietà.

	$db =& JFactory::getDBO();
	$query = $db->getQuery(true);
	$query->select('count(*)');
	$query->from('#__pt_building AS b');
	$query->leftJoin('#__pt_unit AS u ON b.building_id = u.building_id');
	$query->where('b.property_id = '. (int) $property_id);
	$db->setQuery($query);


Ecco gli altri metodi della classe

 	select ($columns)
	delete ($table=null)
 	insert ($tables)
 	update ($tables)
 	from ($tables)
 	join ($type, $conditions)
 	innerJoin ($conditions)
 	outerJoin ($conditions)
 	leftJoin ($conditions)
 	rightJoin ($conditions)
 	set ($conditions, $glue=',')
 	where ($conditions, $glue='AND')
 	group ($columns)
 	having ($conditions, $glue='AND')
 	order ($columns)
 	clear ($clause=null)	
 	__toString ()

Ognuno di questi metodi serve per comporre la query.
Si possono richiamare anche in modo non ordinato e alla fine l’oggetto query avrà sempre la medesima stringa sql.




Rilasciato Php 5.3.6

Posted by Modify On marzo - 20 - 2011 ADD COMMENTS

phpIl team di sviluppo di ha annunciato l’uscita di PHP 5.3.6 un aggiornamento di manutenzione per l’interprete PHP.  Questo nuovo rilascio è finalizzato a migliorare la stabilità di PHP 5.3 grazie alla correzione di più di 60 bachi, tra i quali potenziali problemi di sicurezza.

Introdotte anche alcune migliorie, come l’aggiornamento di Sqlite3 alla versione 3.7.4 e di PCRE alla versione 8.11.

La possibilità di connettersi a siti HTTPS tramite un proxy è stato anche aggiunto come opzioni per il debug di funzioni backtrace. Read the rest of this entry »

Recuperare la thumbnail da youtube

Spesso capita di dover recuperare l’anteprima di un video caricato su .
Ad esempio se si deve creare una gallery video sul proprio sito a anche solo per un singolo video.
L’anteprima del video è l’immaginetta che contiene un frame del video che viene utilizata appunto per illustrare il video prima di mandarlo in play.
L’anteprima o viene generata direttamente da youtube che fornisce anche il modo per recuperarla.
In realtà Youtube genera 4 thumbnail differenti.

Uno dei modi per ottenere le miniature di youtube è quello di utiizzare le API fornite dallo stesso Youtube (di cui non tratteremo ora).
La funzione messa a disposizione da youtube è youtube.videos.get_details che tra le altre informazioni fornisce le thumbnail del video in una struttura xml con tag del tipo < thumbnail_url >.
Un’altro modo è reperire la miniatura direttamente dove vengono memorizzate da youtube e cioè all’indirizzo

http://img.youtube.com/vi/VIDEO_ID/NIMAGE.jpg

Questo è il formato dell’ URL delle immaagini cercate.
Al posto di VIDEO_ID è necessario inserire il codice alfanumerico del video che stiamo considerando mentre NIMAGE è il numero dell’immagine da considerare (le immagini vanno da 1 a 4).


Facciamo un esempio .
Consideriamo il seguente video

L’url del video è

http://www.youtube.com/watch?v=iIp7OnHXBlo

l’Id del video è :iIp7OnHXBlo

Le miniature del video sono reperibili a questi indirizzi

http://img.youtube.com/vi/iIp7OnHXBlo/1.jpg
http://img.youtube.com/vi/iIp7OnHXBlo/2.jpg
http://img.youtube.com/vi/iIp7OnHXBlo/3.jpg
http://img.youtube.com/vi/iIp7OnHXBlo/4.jpg

e sono le seguenti :
Prima miniatura : 1.jpg

Seconda miniatura : 2.jpg

Terza miniatura : 3.jpg

Quarta miniatura : 4.jpg

La numero 2 è la miniatura di default o quella che l’autore del video definisce come tale.



Migliorare l’output della funzione print_r()

Posted by Modify On gennaio - 5 - 2011 ADD COMMENTS

PhpMolto spesso in si ha la necessità di stampare il valore di una variabile.
E’ una tipica operazione di debug e normalmente è effettuata con la funzione di stampa echo.
L’ambiente Php è un ambiente molto potente ed è possibile creare dei tipi di dati anche complessi.

Se si deve visualizzare a schermo il contenuto di un’array o di un oggetto il metodo base è quello di un loop utilizzando un for, foreach o while per ogni componente dell’array o dell’oggetto.
Esiste però una funzione molto potente che ci permette di evitare questa operazione e visualizzare tutto il contenuto dell’oggetto in un sol colpo :la funzione chiamata ().

Ad esempio se si vuole stampare il contenuto di un’oggetto $object basta scrivere

print_r($object);

e l’echo risultante sarà del tipo

stdClass Object ( [ID] => 1 [post_author] => 1 [post_date] => 2000-01-01 00:00:01 [post_content] => This is the content of the message. [post_title] => Message Title [post_excerpt] => This is the excerpt of the message. [post_status] => publish [post_name] => message [post_parent] => 0 [menu_order] => 0 [post_type] => post )

Con una sola riga di codice abbiamo ottentuto un output dettagliato contenente tutti i dati contenuti all’interno dell’object.

Tuttavia, soprattutto per oggetti grandi o complessi l’output risultante è abbastanza confuso e di difficile lettura.
Per risolvere a questo inconveniente ci viene incontro un tag HTML, il .

Nel linguaggio HTML gli a capo contenuti nei testi vengono ignorati (per andare su una nuova linea bisogna utilizzare il tag apposito
), quindi la stampa risultante dalla nostra print_r() viene visualizzata tutta sulla stessa linea.

Racchiudendo il nostro ouptut all’interno della tag < pre> (che sta per “pre-formattato”) in questo modo

< pre>
print_r($object);
< /pre>

gli a capo contenuti nell’output verranno letti correttamente, ottenendo quindi un risultato di questo tipo

stdClass Object
(
    [ID] => 1
    [post_author] => 1
    [post_date] => 2001-01-01 00:00:01
    [post_content] => This is the content of the message.
    [post_title] => Message Title
    [post_excerpt] => This is the excerpt of the message.
    [post_status] => publish
    [post_name] => message
    [post_parent] => 0
    [menu_order] => 0
    [post_type] => post
)

Ora l’output è decisamente più chiaro e leggibile: ogni dato è sulla sua riga ed inoltre il risultato è indentato in maniera gerarchica, ottimo!
Lo stesso risultato si può ottenere anche per le funzioni similari come la funzione var_dump() o la funzione var_export().

Se volete potete approfondire l’argomento consultando un buon libro su Php.



Creare Thumbnails al volo con PHP

Posted by Modify On settembre - 3 - 2010 ADD COMMENTS

PHP
A volte può servire creare le delle foto che abbiamo caricato sul sito, per crearle on the fly, senza doverle salvare sul disco del server (anche se in molti casi, per non dare lavoro inutile al processore è sicuramente meglio salvarle…).

Possiamo utilizzare il codice che troviamo qui sotto, è sufficiente richiamarlo dal tag <img> utilizzando per la proprietà src una stringa tipo ‘imgres.?file=nomefileimmagine’, volendo possiamo passare come parametro anche dimensione della thumb da creare…:
Read the rest of this entry »

Formattare un numero per l’output con PHP

Posted by Modify On settembre - 2 - 2010 ADD COMMENTS

PHPNell’elaborazione di tabulati si ha spesso necessità di formattare correttamente i numeri. I problemi che spesso si pongono sono i seguenti:

- troncare i decimali
- usare il divisore italiano virgola per separare i decimali
- usare il divisore italiano punto per dividere le migliaia
- aggiungere degli zeri in testa (fillare a zero a sinistra)

Read the rest of this entry »

Leggere da un file CSV con PHP

Posted by Modify On luglio - 7 - 2010 6 COMMENTS

File csv
In questo articolo vedremo come utilizzare per leggere i dati contenuti in un fil per stamparli su una tabella HTML.
L’utility che creeremo potrebbe essere utile ad esempio per inserire all’interno di un sito statico, dellenews, o una serie di eventi, o qualsiasi cosa che possa essere aggiornata semplicemente aggiornando il file CSV, senza bisogno di installare pesanti CMS. Read the rest of this entry »

L’80° anniversario della Nascita di Francois Truffaut nel logo google di oggi

E’ per celebrare il regista francese  François Truffaut il Doodle di oggi. Ricorre infatti l’anniversario della sua nascita avvenuta il [...]

Creare un modulo in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. I moduli sono tasselli importantissimi nella creazione di un sito web Joomla e [...]

Rendimenti Adsense in Calo nel 2012

Il primo mese di questo nuovo anno è ormai terminato ed è tempo dei primi bilanci. La crisi economico/finanziaria  che [...]

Stili, override e layout alternativi in Joomla 1.7

Disponibile un nuovo articolo per Mr Webmaster. L’articolo ”Stili, override e layout alternativi in Joomla 1.7″  è una guida alla personalizzazione del [...]