<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programmazione Web &#187; framework php</title>
	<atom:link href="http://www.programmazione-web.com/tag/framework-php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmazione-web.com</link>
	<description>il Blog open degli sviluppatori del web!</description>
	<lastBuildDate>Mon, 25 Jul 2011 16:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Codeigniter 2.0 rilasciato ora in due branch Core e Reactor</title>
		<link>http://www.programmazione-web.com/codeigniter-2-0-rilasciato-branch-core-reactor.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-2-0-rilasciato-branch-core-reactor.php#comments</comments>
		<pubDate>Sat, 29 Jan 2011 13:06:57 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[framework mvc]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[rapid application development]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=336</guid>
		<description><![CDATA[EllisLab e CodeIgniter Reactor Engineers hanno rilasciato ieri la nuova versione del framework php Codeigniter giunta alla versione 2.0. suddivisa in due branch Core e Reactor]]></description>
			<content:encoded><![CDATA[<p><strong>EllisLab</strong> e <strong>CodeIgniter Reactor Engineers</strong> hanno finalmente rilasciato ieri la nuova versione del <strong>framework php Codeigniter</strong> giunta alla <strong>versione 2.0</strong>.</p>
<p>La nuova release è stata divisa in due branch: <strong> Codeigniter Core</strong> e <strong>Codeigniter Reactor</strong></p>
<ul>
<li><strong>Codeigniter Core</strong> è il branch più lento e &#8220;stabile&#8221; che viene adottato da tutti i grandi<strong> prodotti commerciali di EllisLab </strong>come <a title="Expression Engine CMS" href="http://expressionengine.com/" target="_blank">ExpressionEngine </a>and <a title="Mojo motor" href="http://mojomotor.com" target="_blank">MojoMotor</a> e mantiene una <strong>retro compatibilità</strong> con le precedenti versioni dei framework.</li>
<li><strong>Codeigniter Reactor</strong> invece è il branch guidato dalla comunità e supervisionato dai responsabili dello staff <strong>Reactor Engineers</strong>, quindi si evolve con più rapidità adottando tutte le nuove features e migliorie messe a disposizione da tutti gli sviluppatori che collaborano al progetto.</li>
</ul>
<p>Ovviamente tutte le modifiche apportate da <strong>EllisLab </strong>al core verranno adottate anche sul branch di <strong>Reactor</strong> e comunque <strong>EllisLab </strong>contribuisce in modo attivo e presente allo sviluppo di<strong> Codeigniter Reactor</strong>.</p>
<p><strong>REACTOR </strong>QUINDI RIMANE LA <strong>VERSIONE CONSIGLIATA</strong> PER I NUOVI SVILUPPI, ricordando che <strong>Reactor = CodeIgniter</strong>.</p>
<p>Ecco alcune delle tante migliorie apportate alla nuova versione dalla precedente 1.7.3:</p>
<ul>
<li>Il support a <strong>PHP 4 è morto</strong>, <strong>PHP 5.1 è il requisito minimo</strong>.</li>
<li>Protezione CSRF integrata all&#8217;interno dei form helper.</li>
<li>Driver.</li>
<li>Application Packages.</li>
<li>Scaffolding rimosso,  era deprecato da diversione versioni.</li>
<li>Rimossa vecchia e deprecata Validation Class.</li>
<li>Plugins sono stati rimossi in favore degli Helpers.</li>
<li>Aggiunta la riscrittura del routing  &#8220;routing overrides&#8221;.</li>
<li>Aggiunta$route[‘404_override’] per consentire la gestione delle pagine 404 direttamente dai controllers.</li>
<li>Corretti più di 50 bugs.</li>
</ul>
<p><strong>Reactor </strong>apporta questi cambiamenti:</p>
<ul>
<li>Supporto totale alle query-string</li>
<li>Identificazione automatica del base_url se non viene compilato da configurazione</li>
<li>Nuovo driver per Cache con file system, supporto APC e memcache.</li>
<li>Compatibilità all&#8217;esecuzione di cron jobs da riga di comando.</li>
<li>Più di 20 migliorie e tweaks.</li>
</ul>
<p>E&#8217; possibile comunque visionare tutte le modifiche nel <a title="changelog" href="http://codeigniter.com/user_guide/changelog.html" target="_blank">changelog qui</a></p>
<p>Per chi deve aggiornare l&#8217;applicazione dalla precedente versione dare un&#8217;<a title="Aggiornamento da 1.7.2 a 2.0.0" href="http://codeigniter.com/user_guide/installation/upgrade_200.html" target="_blank">occhiata qui</a></p>
<p>Fonte: <a title="Codeigniter 2.0.0. Released" href="http://codeigniter.com/news/codeigniter_2.0.0_released/" target="_blank">www.codeigniter.com</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-2-0-rilasciato-branch-core-reactor.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/codeigniter-2-0-rilasciato-branch-core-reactor.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In attesa di Codeigniter 2.0, viene rilasciato Codeigniter 1.7.3!</title>
		<link>http://www.programmazione-web.com/codeigniter-1-7-3-rilasciata-la-nuova-versione-del-framework-php.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-1-7-3-rilasciata-la-nuova-versione-del-framework-php.php#comments</comments>
		<pubDate>Wed, 08 Dec 2010 12:52:26 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[mvc framework]]></category>
		<category><![CDATA[mvc in php]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=332</guid>
		<description><![CDATA[E' stata rilasciata da pochi giorni la nuova versione del framework php MVC di Codeigniter, giunta alla release 1.7.3. Aspettando con ansia la nuova versione 2.0 che è stata annunciata come imminente è stato dato definitivamente il Goodbye PHP 4!]]></description>
			<content:encoded><![CDATA[<p>E&#8217; stata rilasciata da pochi giorni la nuova versione del<strong> framework php MVC di Codeigniter</strong>, giunta alla<a title="Codeigniter 1.7.3 released" href="http://codeigniter.com/news/codeigniter_1.7.3_released/" target="_blank"><strong> release 1.7.3</strong></a>.<br />
Aspettando con ansia la nuova <strong>versione 2.0</strong> che è stata annunciata come imminente, questa release non è altro che una serie di security fixes generali e una patch sull&#8217;upload Class. Consigliamo a tutti di aggiornarla sui vostri prodotti, che attualmente hanno la versione del framework 1.X.</p>
<p>Per quanto riguarda invece la versione 2.0, è stato dato definitivamente il <strong>Goodbye PHP 4! </strong>Il <strong>framework 2.0</strong> richiede ora la versione minima di PHP 5.1.6 ed è stato fatto un attimo di ordine convenzionale sulle nomenclature e sulla pulizia del codice grazie alla <strong>versione 5 di PHP</strong>.</p>
<ul>
<li>Tutte le classi del core iniziano con &#8220;CI_&#8221;. Stati attenti quindi quando ereditate dalle classi native.</li>
<li>Tutte le classi del core useranno il costruttore __construct come convenzione. Quindi ricordatevi quando migrate di aggiornare tutte le chiamate ai costruttori padre!</li>
<li>CI_Base è stato rimosso, ora il il super object si chiama CI_Controller.</li>
<li>Sono stati rimossi tutti i file helper su cui venivano implementate funzionalità di cui PHP 5.1.6 le supporta nativamente.</li>
</ul>
<p>Ne approfitto per scusarmi della mia prolungata assenza su questo blog, ma da quando è stata aperta <a title="Syncronika SRL sviluppo applicazioni web, sviluppo software" href="http://www.syncronika.it" target="_blank">Syncronika Srl</a> il tempo libero si è ristretto <img src='http://www.programmazione-web.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-1-7-3-rilasciata-la-nuova-versione-del-framework-php.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/codeigniter-1-7-3-rilasciata-la-nuova-versione-del-framework-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeigniter rilasciata la versione 1.7.1</title>
		<link>http://www.programmazione-web.com/codeigniter-rilasciata-la-versione-171.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-rilasciata-la-versione-171.php#comments</comments>
		<pubDate>Mon, 16 Feb 2009 11:08:59 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[codeigniter 1.7.1]]></category>
		<category><![CDATA[framework mvc]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[sviluppo RAD]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=185</guid>
		<description><![CDATA[E' stata rilasciata la nuova versione del framework php CodeIgniter, giunta alla release 1.7.1. Questo rilascio contiene parecchie novità, migliorie e numerosi bug fixes.]]></description>
			<content:encoded><![CDATA[<h3>CodeIgniter 1.7.1 Released</h3>
<p>E&#8217; stata rilasciata la nuova versione del <strong>framework php CodeIgniter</strong>, giunta alla release 1.7.1.  Questo rilascio contiene parecchie novità, migliorie e numerosi bug fixes. Include inoltre un importante aggiornamento di sicurezza per le applicazioni che usano la nuova libreria di validazione delle form. Per la lista completa dei cambiamenti consultate il solito <a href="http://www.codeigniter.com/user_guide/changelog.html" target="_blank">Change Log</a>.</p>
<p>Se volete aggiornare il vostro framework in produzione vi consiglio di leggervi la documentazione <a href="http://www.codeigniter.com/user_guide/installation/upgrading.html">update instructions</a>.</p>
<p><strong>Riferimenti:</strong><br />
<a title="Codeigniter " href="http://www.codeigniter.com" target="_blank">http://www.codeigniter.com</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-rilasciata-la-versione-171.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/codeigniter-rilasciata-la-versione-171.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codeigniter framework rilasciata la nuova versione 1.7</title>
		<link>http://www.programmazione-web.com/codeigniter-php-framework-rilasciato.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-php-framework-rilasciato.php#comments</comments>
		<pubDate>Fri, 24 Oct 2008 19:32:29 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[framework mvc]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[framework rad]]></category>
		<category><![CDATA[programmare con framework]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=91</guid>
		<description><![CDATA[La nuova versione del framework php Codeigniter 1.7 e&#8217; stata rilasciata il 23 ottobre! Questa release contiene numerose nuove funzionalita&#8217; e miglioramenti, oltre ad aver corretto molti bug. Per vedere la lista completa dei cambiamenti potete guardare il solito Change Log. Tra le novita&#8217; piu&#8217; interessanti della 1.7, troviamo una nuova classe per la validazione delle form, [...]]]></description>
			<content:encoded><![CDATA[<p>La nuova versione del framework php Codeigniter 1.7 e&#8217; stata rilasciata il 23 ottobre! Questa release contiene numerose nuove funzionalita&#8217; e miglioramenti, oltre ad aver corretto molti bug. Per vedere la lista completa dei cambiamenti potete guardare il solito <a href="http://www.codeigniter.com/user_guide/changelog.html" target="_blank">Change Log</a>.</p>
<ul>
<li>Tra le novita&#8217; piu&#8217; interessanti della 1.7, troviamo una nuova classe per la validazione delle form, che ho lo scopo di semplificare e potenziare ulteriormente questa funzionalita&#8217;; sostituendo completamente la vecchia classe di validazione ora deprecata.</li>
<li>Aggiornata anche la classe delle sessioni permettendo di salvare i dati personalizzati nel database, piuttosto che nel cookie di sessione (presupponendo che si utilizzi il database per memorizzare i dati di sessione).</li>
<li>Ora e&#8217; possibile creare sub directory anche nelle cartelle library di system ed applicaition.</li>
</ul>
<p>Vi ricordo che se volete fare un upgrade del framework che state utilizzando nelle vostre applicazioni consultate sempre la guida di <a href="http://www.codeigniter.com/user_guide/installation/upgrading.html" target="_blank">update</a> che vi fornisce utili consigli sul passaggio indolore da ogni versione.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-php-framework-rilasciato.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/codeigniter-php-framework-rilasciato.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Workshop di presentazione del nuovo Zend framework</title>
		<link>http://www.programmazione-web.com/workshop-presentazione-nuovo-zend-framework.php</link>
		<comments>http://www.programmazione-web.com/workshop-presentazione-nuovo-zend-framework.php#comments</comments>
		<pubDate>Mon, 31 Mar 2008 16:58:14 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[workshop framework]]></category>
		<category><![CDATA[workshop zend]]></category>
		<category><![CDATA[zend framework 1.5]]></category>
		<category><![CDATA[zend-framework]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/workshop-presentazione-nuovo-zend-framework-15.php</guid>
		<description><![CDATA[Workshop di presentazione del nuovo Zend framework Dopo il rilascio del 17 marzo da parte di Zend Technologies della nuova versione 1.5 del celebre Zend Framework, che ha apportato numerosi nuovi servizi e miglioramenti alla precendente release del framework 1.0.4; la Zend per avvicinare aziende e programmatori al proprio Framework, stá promuovendo alcuni workshop completamente [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Workshop di presentazione del nuovo Zend framework</strong></p>
<p>Dopo il rilascio del 17 marzo da parte di <a href="http://www.zend.com/it/" title="Zend">Zend Technologies</a> della nuova <a href="http://devzone.zend.com/article/3270-Zend-Technologies-Releases-Zend-Framework-1.5" title="Zend Framework 1.5">versione 1.5</a> del celebre Zend Framework, che  ha apportato numerosi nuovi servizi e miglioramenti alla precendente release del framework 1.0.4;<span name="intelliTxt" id="intelliTXT"></span><br />
la Zend per avvicinare aziende e programmatori al proprio Framework,  stá promuovendo alcuni workshop completamente gratuiti:</p>
<ul type="disc">
<li style="line-height: normal" class="MsoNormal"><span><span>Mercoledì      16 Aprile c/o  Atahotel  Executive  Milano Vle Don Luigi Sturzo , 45  <o></o></span></span></li>
<li style="line-height: normal" class="MsoNormal"><span><span>Venerdì      18 Aprile c/o Zend Technologies Roma, Piazza del Popolo 18<br />
</span></span></li>
</ul>
<p><a href="http://www.zend.com/it/" target="_blank" title="Workshop presentazione nuovo zend framework"><br />
<img src="http://www.programmazione-web.com/wp-content/uploads/2008/04/workshop-aprile.png" alt="Workshop presentazione nuovo zend framework" /></a></p>
<p>Il programma in agenda, a mio parere molto breve, dopo una introduzione sui framework PHP, illustrerá le caratteristiche principali del nuovo Zend Framework 1.5 e terminerá con esempi reali di applicazioni.</p>
<p>Per maggiori informazioni e per comunicare la partecipazione consultate la pagina del  <a href="http://www.zend.com/it/company/framework-workshop-italy" title="Invito - Zend.com">workshop</a>.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fworkshop-presentazione-nuovo-zend-framework.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/workshop-presentazione-nuovo-zend-framework.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kohana vs Codeigniter: Scegliere un framework php</title>
		<link>http://www.programmazione-web.com/scegliere-un-framework-php-kohana-vs-codeigniter.php</link>
		<comments>http://www.programmazione-web.com/scegliere-un-framework-php-kohana-vs-codeigniter.php#comments</comments>
		<pubDate>Fri, 21 Mar 2008 13:27:27 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[codeigniter vs kohana]]></category>
		<category><![CDATA[confronto kohana e codeingniter]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[kohana php framework]]></category>
		<category><![CDATA[kohana vs codeigniter.]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/scegliere-un-framework-php-kohana-vs-codeigniter.php</guid>
		<description><![CDATA[Come scegliere il migliore framework php, confronto tra framework MVC in php, kohana vs codeigniter, codeigniter vs kohana.]]></description>
			<content:encoded><![CDATA[<p><strong>Scegliere un framework php, confronto tra il framework kohana php e codeigniter</strong>.</p>
<p>Ogni programmatore che si rispetti, che vuole rimanere competitivo sul mercato, è sempre alla continua ricerca di qualche libreria/framework che gli permetta di semplificare il proprio lavoro, ovvero: ridurre i tempi di sviluppo, migliorare sempre le proprie applicazioni, ottenenere  risultati ottimi avvalendosi di strumenti efficienti, senza dover ogni volta &#8220;reinventare la ruota&#8221; ecc.<br />
Esistono per questo framework, insiemi di librerie e di classi dall&#8217;utilizzo più o meno standard, che ci permettono di programmare in modo più semplice, estendendo l&#8217;esistente, senza doverci preoccupare direttamente di alcune problematiche: ad esempio dell&#8217;interfacciamento al database o dell&#8217;implementazione della sicurezza o di altri dettagli implementativi che allungano notevolmente i tempi di sviluppo, aumentano la complessibilità, diminuendo la gestibilità complessiva, e facendoci perdere sostanzialmente denaro.</p>
<p>Purtroppo o per fortuna, esistono tantissimi framework, e sicuramente fare la &#8220;scelta giusta&#8221; (eliminando le tempistiche di provare e imparare strumenti inadeguati ai nostri scopi) non è sicuramente banale.</p>
<p>Leggendo <a title="notes on choosing a php framework" href="http://thislab.com/2008/02/23/notes-on-choosing-a-php-framework-a-quick-comparison-of-codeigniter-and-kohana/" target="_blank">questo articolo</a> di Fred Wu, mi sono reso conto che ho ripercorso la stessa strada durante la scelta del mio strumento di programmazione, quindi voglio riportare più o meno le medesime considerazioni che mettono in comparazione il framework che attualmente stò utilizzando (Codeigniter) e il suo &#8220;rivale&#8221;, il fork <a title="Kohana php framework" href="http://kohanaphp.com/" target="_blank">kohana php</a> che potrebbe sostanzialmente riampiazzarlo.</p>
<p>Inizialmente il primo framework che ho provato è stato <a onclick="javascript:pageTracker._trackPageview('/outbound/article/cakephp.org');" href="http://cakephp.org/">CakePHP</a>, al tempo la documentazione era praticamente inesistente e sicuramente utilizzare un framework senza documentazione è da autolesionisti, perchè comporta sicuramente molto più studio personale, quindi ho cercato subito un&#8217;alternativa più accessibile.<br />
Ho fatto diverse ricerche, ero orientato su due framework, il famosissimo Zend e Codeigniter, ma alla fine ho optato per <a title="Codeigniter Framework" href="http://codeigniter.com/" target="_blank">CodeIgniter</a>. Soprattutto per la splendida documentazione online (in inglese). Infatti la documentazione di Codeigniter è veramente impressionante, nel senso buono: completa, molto chiara e ben corredata di esempi; per un programmatore che conosce i linguaggi ad oggetti e php, basta un piccola letta per iniziare subito a sviluppare e creare in tempi brevi applicazioni molto potenti.</p>
<p>CodeIgniter è un framework che ha avuto in questi tempi ottimi progressi e ha guadagnato la fiducia di molti sviluppatori web, anche se tempo fa aveva rallentato la sua corsa perchè gli sviluppatori erano quasi tutti concentrati sulla nuova versione di <a title="expresssion engine" href="http://expressionengine.com/" target="_blank">ExpressionEngine CMS</a>. Infatti alcuni degli assidui utilizzatori sul forum di Codeigniter erano molto frustrati, perché segnalavano bug e richieste di nuove funzionalità, ma venivano quasi sempre ignorati, o rimanevano in attesa dei mesi. Questo chiaramente, fece si che gli sviluppatori interessati realmente all&#8217;avanzamento del progetto, decisero di far nascere il fork BlueFlame, più tardi rinominato in <a title="Kohana php framework" href="http://kohanaphp.com/" target="_blank">Kohana</a>, e di iniziare uno sviluppo parallello prendendo alcune decisioni tecniche diverse.</p>
<p>Kohana è un framework php praticamente sconosciuto al grande pubblico. Infatti, la maggior parte degli utenti Kohana sono ex utilizzatori di Codeigniter o utenti che usano entrambi a seconda delle necessità. Secondo <a title="Wikipedia kohana php" href="http://en.wikipedia.org/wiki/KohanaPHP" target="_blank">Wikipedia</a>, le differenze tra Kohana e CodeIgniter sono:</p>
<ol>
<li><strong>La programmazione ad oggetti strettamente PHP5</strong> offre molti vantaggi: protezione per l&#8217;incapsulamento dei dati, il caricamento automatico delle classi, l&#8217;overloading, le interfacce astratte, <a title="Pattern singleton" href="http://it.wikipedia.org/wiki/Singleton" target="_blank">singleton</a>, ecc.</li>
<li>Kohana ha aderito alla <strong>iniziativa <a title="iniziativa gophp5" href="http://gophp5.org/" target="_blank">GoPHP5</a></strong>, quindi utte le versioni dalla 2.2 sono quindi conformi con questo progetto.</li>
<li><strong>Il design pattern è sempre MVC</strong>, quindi chiunque abbia utilizzato Codeigniter capisce rapidamente come utilizzare Kohana per la similitudine della struttura e del design pattern.</li>
<li><strong>Kohana è una comunità di sviluppatori, non un&#8217;azienda guidata</strong>. Kohana è guidata dagli utenti del forum, dalle idee e dal codice condiviso dagli utilizzatori. Kohana è una comunità di sviluppatori dislocata in tutto il mondo, ciascuno con il proprio talento. Questo consente un  ciclo di sviluppo del software rapido e flessibile, in grado di rispondere alle richieste dei bug nel giro di poche ore, invece di giorni o mesi.</li>
<li><strong>Le variabili GET, POST, COOKIE, SESSION funzionano come previsto</strong>, Kohana ha deciso di non limitare il vostro accesso ai dati globali, offrendo comunque la stessa protezione di filtraggio e di <a title="Cross site scripting" href="http://it.wikipedia.org/wiki/Cross-site_scripting" target="_blank">XSS</a> che fa CodeIgniter.</li>
<li>Per quanto riguarda le risorse, i moduli, e l&#8217;ereditarietà: i controller, i modelli, le librerie, le viste e gli helpers, possono essere caricati da qualsiasi posizione all&#8217;interno del vostro sistema, applicazione, o percorso e le opzioni di configurazione sono ereditate dinamicamente e possono essere tranquillamente sovrascritte.</li>
<li><strong>Nessun conflitto di Namespaces</strong>. I suffissi delle classi, come _Controller, sono utilizzati per prevenire i conflitti di namespace. Questo permette quindi di implementare diversi controller e modelli e caricarli allo stesso tempo.</li>
<li><strong>Vero Auto-loading dinamico delle classi</strong>. Questo include le librerie, i controller, modelli, e gli helpers.</li>
<li><strong>Gli helpers sono classi statiche</strong>, non funzioni. Per esempio, invece di utilizzare form_open (), si usa modulo::open ().</li>
<li><strong>Libreria driver e API coerenti</strong>. Librerie dove è possibile utilizzare diversi &#8220;driver&#8221;, gestire diverse API esterne in modo del tutto trasparente.</li>
<li><strong>Potente gestione degli eventi</strong>. Kohana gestisce gli eventi facendo si che è possibile aggiungere gli eventi in modo dinamico, sostituirli, o addirittura rimuoverli completamente. Questo permette molti cambiamenti al processo di esecuzione di Kohana, senza dover fare alcuna modifica al core del sistema.</li>
</ol>
<p>Come si può vedere da questa lista, pur mantenendo un certo grado di somiglianza con CodeIgniter, Kohana offre alcuni vantaggi (al tempo stesso, alcuni svantaggi, dipende dai punti di vista). Per fare ulteriore chiarezza diamo un&#8217;occhiata alla tabella sottostante, che non ho volutamente tradotto, perchè già molto chiara e schematica. Chiaramente per la valutazione verranno considerate solo le funzionalità disponibili nei pacchetti ufficiali, non quelle integrabili attraverso estensioni di terze parti.</p>
<table border="1" cellspacing="0" cellpadding="5">
<tbody>
<tr>
<th>Feature</th>
<th>CodeIgniter 1.6.1</th>
<th>Kohana 2.1.1</th>
<th>Notes</th>
</tr>
<tr>
<td>License</td>
<td><a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/user_guide/license.html">Apache/BSD-style</a></td>
<td><a onclick="javascript:pageTracker._trackPageview('/outbound/article/kohanaphp.com');" href="http://kohanaphp.com/license.html">new BSD</a></td>
<td>Licenses are similar, although Kohana uses the new BSD license which is slightly more flexible than CI’s modified BSD license.</td>
</tr>
<tr>
<td>PHP compatibility</td>
<td>4.3.2+ and 5</td>
<td>5.1.3+</td>
<td>CodeIgniter supports PHP4 whilst Kohana is a stict PHP5 framework. If you are using PHP5 then Kohana offers more OOP and performance advantages. Start from version 2.2 (yet to be released), Kohana will only support PHP 5.2+.</td>
</tr>
<tr>
<td>Supported Databases</td>
<td>MySQL (4.1+)<br />
MySQLi<br />
MS SQL<br />
PostgreSQL<br />
SQLite<br />
Oracle<br />
ODBC</td>
<td>MySQL<br />
PostgreSQL<br />
SQLite</td>
<td>CodeIgniter’s longer history ensures us a more widely available database support options than Kohana, although in the future Kohana is likely to support more databases too.</td>
</tr>
<tr>
<td>Community</td>
<td><a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/forums/">Forum</a><br />
<a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/wiki/">Wiki</a><br />
<a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/bug_tracker/">Bug Tracker</a></td>
<td><a onclick="javascript:pageTracker._trackPageview('/outbound/article/forum.kohanaphp.com');" href="http://forum.kohanaphp.com/">Forum</a><br />
<a onclick="javascript:pageTracker._trackPageview('/outbound/article/trac.kohanaphp.com');" href="http://trac.kohanaphp.com/">Trac</a><br />
<a onclick="javascript:pageTracker._trackPageview('/outbound/article/irc.freenode.net');" href="irc://irc.freenode.net/kohana">IRC</a></td>
<td>CodeIgniter obviously has a much larger community and offers a wiki for community members to share tutorials and code snippets. Kohana on the other hand, has a smaller community, however the developers are actively online on the forum and IRC.</td>
</tr>
<tr>
<td>Documentation / User Guide</td>
<td>Excellent</td>
<td>Limited</td>
<td>CodeIgniter is known for its excellent user guide. Kohana is in the process of improving its documentation.</td>
</tr>
<tr>
<td>Tutorial / Sample Availability</td>
<td>Good</td>
<td>Fair</td>
<td>Tutorials are available on both of their forums. CodeIgniter has the advantage of having a wiki for easier navigation. Kohana on the other hand, has a dedicated <a onclick="javascript:pageTracker._trackPageview('/outbound/article/kohanaphp.com');" href="http://kohanaphp.com/tutorials.html">tutorial page</a> for some of the tutorials.</td>
</tr>
<tr>
<td>MVC</td>
<td>Strict</td>
<td>Strict</td>
<td>Both frameworks use the same MVC approach.</td>
</tr>
<tr>
<td>Modular / <a title="Hierarchical-Model-View-Controller" href="http://en.wikipedia.org/wiki/Hierarchical-Model-View-Controller" target="_blank">HMVC</a></td>
<td>Via 3rd party libraries</td>
<td>Built in</td>
<td>Kohana is built with HMVC in mind whilst CodeIgniter has some 3rd party libraries such as <a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/forums/viewthread/65749/">Matchbox</a> and <a onclick="javascript:pageTracker._trackPageview('/outbound/article/codeigniter.com');" href="http://codeigniter.com/forums/viewthread/72123/">Modular HMVC</a> to accomplish the same effect.</td>
</tr>
<tr>
<td>Conventions</td>
<td>Flexible</td>
<td>Flexible</td>
<td>Unlike CakePHP, both of the frameworks offer flexible convensions. There are some defaults but most of them can be overwritten.</td>
</tr>
<tr>
<td>Configuration</td>
<td>PHP files</td>
<td>PHP files</td>
<td>In my opinion Kohana is more configurable than CodeIgniter yet it is simpler (less clustered) to do so! Most of the Kohana configuration files are stored in the system folder, you only copy and paste the ones you actually need to modify, and modify them accordingly. CodeIgniter’s config files are all stored in the application folder.</td>
</tr>
<tr>
<td>Database Abstraction</td>
<td>Modified ActiveRecord</td>
<td>Modified ActiveRecord<br />
ORM (optional)</td>
<td>Both frameworks use the modified ActiveRecord pattern. Kohana has an optional ORM module. CodeIgniter has some ORM and Rails-style ActiveRecord implementation avaliable via 3rd party libraries.</td>
</tr>
<tr>
<td>ACL</td>
<td>Via 3rd party libraries</td>
<td>Auth library (optional)</td>
<td>Neither of the frameworks forces you to use a specific ACL mechanism. CodeIgniter does not have one built in, and Kohana has one available as an optional module.</td>
</tr>
<tr>
<td>Validation</td>
<td>Good</td>
<td>Good</td>
<td>Both frameworks offer a good built in validtion layer. Kohana 2.2 is planned to have some significant improvements for the validation library.</td>
</tr>
<tr>
<td>Caching</td>
<td>Limited</td>
<td>Fair</td>
<td>In my opinion both of the caching features are limited. Kohana offers a slightly more useful cache library that supports file, SQLite, APC, eAccelerator, memcache, and Xcache based caching, with tag support.</td>
</tr>
<tr>
<td>Session</td>
<td>Good</td>
<td>Excellent</td>
<td>CodeIgniter 1.6 has improved its session library, but it’s still inferior to Kohana’s implementation. Kohana’s session library supports both encryption and storing session data in database.</td>
</tr>
<tr>
<td>Logging / Debugging</td>
<td>Good</td>
<td>Excellent</td>
<td>Both frameworks offer very good logging and debugging mechanisms. Kohana is a little bit ahead thanks to PHP5’s native Exception class and its powerful event handlers.</td>
</tr>
<tr>
<td>Templating</td>
<td>Native PHP</td>
<td>Native PHP</td>
<td>Templating is *very* easy for both frameworks. If you can skin WordPress, then you’d have no problems at all skinning CI or Kohana. If you want though, you can still incorporate one of the 3rd party templating solutions such as Smarty.</td>
</tr>
<tr>
<td>Helpers</td>
<td>Good</td>
<td>Good</td>
<td>Helpers are usually libraries that used for simple, repetitive tasks. Both frameworks offer a wide range of helpers for handling forms, URLs and dates, etc.</td>
</tr>
<tr>
<td>JavaScript / AJAX</td>
<td>N/A</td>
<td>N/A</td>
<td>Both frameworks respect your choice of JavaScript / AJAX frameworks. Unlike CakePHP and Ruby on Rails, they don’t have built-in helpers for any of the JavaScript libraries. This offers more flexibility as well as the use of unobtrusive JavaScript.</td>
</tr>
<tr>
<td>Web Services</td>
<td>Fair</td>
<td>Fair</td>
<td>I could be wrong but I don’t think either framework supports (or at least encourages) RESTful design…</td>
</tr>
<tr>
<td>Localization</td>
<td>Limited</td>
<td>Good</td>
<td>CodeIgniter has limited i18n support whilst Kohana offers a bit more (timezone / full UTF8 layer, etc).</td>
</tr>
<tr>
<td>Unit Testing</td>
<td>Limited</td>
<td>None *</td>
<td>CodeIgniter’s built in unit testing class is very limited. * Kohana as of version 2.1.1 does not have a unit testing class, however it is planned for version 2.2.</td>
</tr>
</tbody>
</table>
<h3>Il verdetto</h3>
<p>E&#8217; molto difficile decidere quale dei due framework utilizzare, entrambi hanno caratterstiche molto simili e forse Kohana nel tempo potrebbe affermarsi per la sua flessibilità, ma sicuramente ha ancora bisogno di crescere e di completare i propri supporti e la propria documentazione. CodeIgniter è sicuramente ottimo, soprattutto se si ha la necessità di avere ancora la retro compatibilità sull&#8217;ormai morto PHP4,  ricordando che sicuramente è il framework migliore dal punto di vista della documentazione e possiede un bacino di utenza più ampio da cui poter trarre spunti e confronti.</p>
<p><strong>Riferimenti:</strong><br />
<a title="comparison of codeigniter and kohana" href="http://thislab.com/2008/02/23/notes-on-choosing-a-php-framework-a-quick-comparison-of-codeigniter-and-kohana/" target="_blank">http://thislab.com</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fscegliere-un-framework-php-kohana-vs-codeigniter.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/scegliere-un-framework-php-kohana-vs-codeigniter.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial con il Framework CodeIgniter</title>
		<link>http://www.programmazione-web.com/tutorial-con-il-framework-codeigniter.php</link>
		<comments>http://www.programmazione-web.com/tutorial-con-il-framework-codeigniter.php#comments</comments>
		<pubDate>Sun, 09 Mar 2008 18:23:34 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[codeigniter rad]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[programmare codeigniter]]></category>
		<category><![CDATA[rapid application development]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/tutorial-con-il-framework-codeigniter.php</guid>
		<description><![CDATA[semplice tutorial per l'implementazione di applicazioni con il framework codeigniter, guida codeigniter in italiano.]]></description>
			<content:encoded><![CDATA[<p><strong>Tutorial con il Framework CodeIgniter </strong><strong>Perché dovrei usare CodeIgniter?<br />
</strong>Come detto in precedenza nell&#8217;articolo &#8220;<a title="programmaew web seguendo mvc" rel="bookmark" href="http://www.programmazione-web.com/programmare-web-seguendo-mvc.php" target="_blank">Programmare il Web seguendo MVC</a>&#8221; ci sono tantissime scelte per sviluppare applicazioni PHP con dei framework che permettono una programmazione di tipo RAD (Rapid Application Development), basta dare un&#8217;occhiata a questa <a href="http://phpframeworks.com/" target="_blank">lista</a>, ognuno di essi avrá sicuramente vantaggi e svantaggi discutibili. Molti framework offrono ORM (Object-relational Mapping); alcuni sistemi di autenticazione o interfaccie con AJAX. In ogni caso comunque, quello che solitamente si vuole, é un ambiente che permetta di programmare velocemente senza dover affrontare librerie troppo complesse, <a title="Code Igniter Framework" href="http://codeigniter.com/" target="_blank">CodeIgniter</a> sembra permettere questo offrendo comunque molteplici ed utili funzionalità!</p>
<p><strong>Un esempio concreto:<br />
</strong>In questo esempio vi introduco una semplice implementazione di un piccolo software utilizzando come base di sviluppo il framework CodeIgniter, costruiremo una semplice &#8220;job board&#8221;. I Jobs per questo esempio, saranno inseriti manualmente tramite phpmyadmin o direttamente da una shell mysql nella tabella del database chiamata &#8220;<code>jobs</code>&#8221; creata opportunamente con questa query SQL:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="st0">`jobs`</span> <span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`id`</span> INT <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">AUTO_INCREMENT</span> <span class="kw1">PRIMARY</span> <span class="kw1">KEY</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`title`</span> TEXT <span class="kw1">NOT</span> <span class="kw1">NULL</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`company`</span> TEXT <span class="kw1">NOT</span> <span class="kw1">NULL</span>,</div>
</li>
<li class="li2">
<div class="de2"><span class="st0">`description`</span> TEXT <span class="kw1">NOT</span> <span class="kw1">NULL</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Nella semplice applicazione ci saranno sostanzialmente due semplici pagine:</p>
<ul>
<li> La lista di tutti i jobs;</li>
<li>Visuale del job in dettaglio;</li>
</ul>
<h3>Configurazione di CodeIgniter</h3>
<p>Ovviamente si presuppone che abbiate installato sulla vostra postazione un server PHP e MySQL.  Innanzitutto scaricate, <a title="Download Code Igniter Framework" href="http://codeigniter.com/download.php" target="_blank">CodeIgniter</a>, estraete il contenuto dentro la vostra cartella di root del vostro web server tutti i files contenuti nel pacchetto; Per il test io ho rinominato la cartella in <code>/CodeIgniter, </code>questo perché poi nella configurazione non dovete editare la configurazione del <em>base_url</em>.  Aprite il file <code>system/application/config.php</code> nella cartella CodeIgniter estratta. E&#8217; molto semplice capire cosa c&#8217;é in questo file perché é ben commentato. Se avete estratto la cartella nella root e l&#8217;avete chiamata come sopra non dovete toccare nulla.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$config</span><span class="br0">&#91;</span><span class="st0">&#8216;base_url&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp;= <span class="st0">&quot;http://127.0.0.1/CodeIgniter/&quot;</span>;</div>
</li>
</ol>
</div>
<p>Inoltre bisogna configurare l&#8217;accesso per permettere al framework di parlare con il database Mysql, quindi aprite  system/application/database.php e scorrete finché non trovate le configurazioni del database da settare con le vostre locali.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;hostname&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;localhost&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;username&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;root&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;password&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;database&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;test&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2">&#8230;</div>
</li>
</ol>
</div>
<p>Io per effettuare il test ho creato un database chiamato test sul mio DBMS mysql locale inserendo la tabella jobs.<br />
Possiamo notare come CodeIgniter con questa tipologia di configurazione ci permetta, nel caso lo volessimo, di passare velocemente la configurazione tra differenti server con differenti database. Per maggiori dettagli e implementazioni sulle configurazione fate riferimento al <a href="http://codeigniter.com/user_guide/database/configuration.html" target="_blank">manuale online</a>.</p>
<h3>Realizzazione dell&#8217;applicazione</h3>
<p>Per realizzare la nostra job board implementeremo un controller, un modello e due viste. Il controller gestirá sia la lista principale dei jobs, sia il dettagli del signolo job, con un modello di metodo e per ogni vista. In questo modo,  chiaramente verranno distinte le diverse parti della nostra applicazione.</p>
<p>Vi faccio notare come CodeIgniter abbia una convenzione con i nomi dei file: tutti i nomi dei files sono composti da caratteri minuscoli, tutte i nomi delle classi iniziano con una lettera maiuscola e sono poste in file con lo stesso nome piu il nome dell&#8217;estensione .php.</p>
<h3>Il controller</h3>
<p>Il Controller é una classe con alcuni metodi che gestiscono le varie richieste direzionandole opportunamente ove necessario. La classe estende la classe base di CodeIgniter &#8220;Controller&#8221; fornendo quindi l&#8217;accesso a tutte le funzionalitá del framework.  Nel controller noi andremo a caricare tutte le risorse di cui avremo bisogno, in particolare un modello e le due viste. Niente verrá caricato di default, questo perché CodeIgniter é stato progettato per essere un framework molto leggero ed essenziale. L&#8217;oggetto <code>$this-&gt;load</code> consente al sistema di caricare le risorse di cui abbiamo bisogno, qui sotto il codice del controller:<strong> system/application/controllers/jobs.php</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Jobs <span class="kw2">extends</span> Controller <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> index<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// This gives us redirect()</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">helper</span><span class="br0">&#40;</span><span class="st0">&#8216;url&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; redirect<span class="br0">&#40;</span><span class="st0">&#8216;jobs/list_jobs&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> list_jobs<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">database</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">model</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs_model&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$data</span><span class="br0">&#91;</span><span class="st0">&#8216;jobs&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">jobs_model</span>-&gt;<span class="me1">get_jobs</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// This gives us anchor() &#8211; see the view at the end</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">helper</span><span class="br0">&#40;</span><span class="st0">&#8216;url&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs_view&#8217;</span>, <span class="re0">$data</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> view_job<span class="br0">&#40;</span><span class="re0">$id</span> = <span class="kw2">false</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">helper</span><span class="br0">&#40;</span><span class="st0">&#8216;url&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$id</span><span class="br0">&#41;</span> redirect<span class="br0">&#40;</span><span class="st0">&#8216;jobs/list_jobs&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">database</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">model</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs_model&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$data</span><span class="br0">&#91;</span><span class="st0">&#8216;job&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">jobs_model</span>-&gt;<span class="me1">get_job</span><span class="br0">&#40;</span><span class="re0">$id</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;job_view&#8217;</span>, <span class="re0">$data</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Come potete vedere, il controller é molto semplice, si incarica di prendere i dati dal modello e di inviarli alla vista.  Ogni metodo inizia con la chiamata alla routine <code>$this-&gt;load-&gt;database()</code>, la quale si connetterá al database e preparerá  le librerie per interfacciarsi utilizzando i settaggi precedentemente definiti.  Questo é l&#8217;approcio di  CodeIgniter al modello  <code>$this-&gt;load-&gt;model('classname')</code> caricherá il file<code> system/application/models/classname.php</code> inizializzando l&#8217;instanza della classe <code>Classname</code> (non cé bisogno di includere altri files).  Essa restituirá un riferimento al nuovo oggettto <code>$this-&gt;classname</code>. E&#8217; possibile sovrascrivere questo comportamento passando un secondo argomento, che potrá essere usato come proprietá del nome dell&#8217;oggetto. Ad esempio, si puo chiamare  <code>$this-&gt;load-&gt;model('someclass', 'data');</code> e accedere cosí al modello della classe <code>$this-&gt;data </code>invece di<code> $this-&gt;someclass</code>.</p>
<h3>Il modello</h3>
<p>Come per il controller il Modello estenderá la classe predefinita &#8220;Model&#8221;. Una volta che il database sará inizializzato tramite la chiamata a <code>$this-&gt;load-&gt;database()</code>,  avremo accesso completo alla classe dei <a href="http://codeigniter.com/user_guide/database/examples.html" target="_blank">database di CodeIgniter</a> .  Come sappiamo dal controller, nel nostro modello avremo due metodi, uno per recuperare tutti i jobs del database, da noi chiamato <code>get_jobs()</code>,  e l&#8217;altro per recuperare i dettagli di un job, chiamato <code>get_job($job_id)</code>. Non ci sono particolari convenzioni dei nomi per il modello, comunque é tipico usare il nome del controller con in aggiunta <code>_model</code> alla fine.  Il manuale di CodeIgniter ha un eccellente guida veloce alle <a href="http://codeigniter.com/user_guide/database/examples.html" target="_blank">librerie del database</a>, che potete leggere prima di procedere oltre.<br />
Ecco a voi il codice del modello:<strong> system/application/models/jobs_model.php</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Jobs_model <span class="kw2">extends</span> Model <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> get_jobs<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$query</span> = <span class="re0">$this</span>-&gt;<span class="me1">db</span>-&gt;<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$query</span>-&gt;<span class="me1">result_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="kw1">as</span> <span class="re0">$row</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="re0">$result</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="re0">$row</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="re0">$result</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> get_job<span class="br0">&#40;</span><span class="re0">$job_id</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$query</span> = <span class="re0">$this</span>-&gt;<span class="me1">db</span>-&gt;<span class="me1">where</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span>, <span class="re0">$job_id</span><span class="br0">&#41;</span>-&gt;<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$result</span> = <span class="re0">$query</span>-&gt;<span class="me1">row_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">return</span> <span class="re0">$result</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Prendiamoci un attimo per esaminare questo codice che per certi versi é la parte piú complessa di questo tutorial. CodeIgniter ha una classe Active Record che consente agli sviluppatori di accedere ai database in <a href="http://en.wikipedia.org/wiki/Active_record_pattern" target="_blank">Active Record</a>-style.  Si puó scrivere la query SQL e passarla a <code>$this-&gt;db-&gt;query()</code>, ma ci sono molte casistiche in cui conviene utilizzare la classe Active Record, ricordando che CodeIgniter gestirá automaticamente l&#8217;eventuale prefisso delle tabelle che avrete settato nel file di configurazione del database. Un esempio di query di selezione tipo <code>SELECT * FROM table WHERE id='0'</code>, utilizzando la classe Active Record:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">db</span>-&gt;<span class="me1">select</span><span class="br0">&#40;</span><span class="st0">&#8216;*&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;<span class="me1">from</span><span class="br0">&#40;</span><span class="st0">&#8216;table&#8217;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;<span class="me1">where</span><span class="br0">&#40;</span><span class="st0">&#8216;id&#8217;</span>, <span class="st0">&#8217;0&#8242;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt;<span class="me1">get</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Da notare il metodo <code>get()</code>che alla chiamata interroga la libreria costruendo la query e se non gli vengono date ulteriori informazioni, assume che sia di default una SELECT * FROM &#8216;table&#8217;, eseguendo la query ritornando un oggetto result che é possibile maneggiare con  molta facilitá ad esempio applicandogli il metodo <code>result_array()</code> oppure <code>row_array()</code> che é simile solo che restituisce una singola riga.</p>
<h3>La vista</h3>
<p>Questo é l&#8217;ultimo passo, che serve per presentarci l&#8217;applicazione. Noi abbiamo preso tutti i dati di cui avevamo bisogno dal database attraverso il modello e li dobbiamo passare attraverso il controllore  ad una vista.  La nostra vista si chiamerá jobs_view. L&#8217;abbiamo deciso quando abbiamo scritto questa riga di codice nel controller:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;jobs_view&#8217;</span>, <span class="re0">$data</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Questa sostanzialmente dice a  CodeIgniter di caricare la vista in <code>system/application/views/jobs_view.php</code>,  e di recuperare l&#8217;array associativo <code>$data</code> e creare una variabile con la vista <code>$data['jobs']</code> che ci dará accesso alla variabile <code>$jobs</code>. Per verificarlo basta creare un file nel path delle viste chiamandolo <code>jobs_view.php</code> ed insererire la stampa del vettore <code>&lt; ?=print_r($jobs)?&gt;</code>. Il risultato dovrebbe essere qualcosa di questo stampo:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><a href="http://www.php.net/array"><span class="kw3">Array</span></a></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> =&gt; <a href="http://www.php.net/array"><span class="kw3">Array</span></a><span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>id<span class="br0">&#93;</span> =&gt; <span class="nu0">1</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>title<span class="br0">&#93;</span> =&gt; Web Developer</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>company<span class="br0">&#93;</span> =&gt; Google</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>description<span class="br0">&#93;</span> =&gt; Develop kick-ass web applications</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span> the mighty Google.</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> =&gt; Arra <span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>id<span class="br0">&#93;</span> =&gt; <span class="nu0">2</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>title<span class="br0">&#93;</span> =&gt; Sr. Web Developer</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>company<span class="br0">&#93;</span> =&gt; Ellis Lab</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>description<span class="br0">&#93;</span> =&gt; Help the world develop kick-ass web</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;applications with our software.</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Ora forse, si potrebbe affermare che sarebbero bastati dei semplici <code>mysql_query()</code> e <code>mysql_fetch_array()</code> per fare tutto questo, ma sicuramente se si vorrá poi esterndere l&#8217; applicazione in modo semplice e veloce mantenendone il controllo, e questo é sicuramente uno dei framework adatti per semplificarci notevolmente la vita.</p>
<p>Di seguito il file vista inserendo i dati nel codice html:<strong> system/application/views/jobs_view.php</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;table style=<span class="st0">&quot;border-collapse: collapse;&quot;</span> border=<span class="st0">&quot;1&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;thead&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;tr&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;th&gt;Job Title&lt;/th&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;th&gt;Company&lt;/th&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;th&gt;View&lt;/th&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/tr&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/thead&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;tbody&gt;&lt; ?php <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$jobs</span> <span class="kw1">as</span> <span class="re0">$job</span><span class="br0">&#41;</span>: <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&lt;tr&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;td&gt;&lt; ?=<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;title&#8217;</span><span class="br0">&#93;</span>?&gt;&lt;/td&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;td&gt;&lt; ?=<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;company&#8217;</span><span class="br0">&#93;</span>?&gt;&lt;/td&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;td&gt;&lt; ?=anchor<span class="br0">&#40;</span><span class="st0">&#8216;jobs/view_job/&#8217;</span>.<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;id&#8217;</span><span class="br0">&#93;</span>, <span class="st0">&#8216;View&#8217;</span><span class="br0">&#41;</span>?&gt;&lt;/td&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;/tr&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt; ?php <span class="kw1">endforeach</span>; ?&gt;&lt;/tbody&gt;&lt;/table&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>La vista per un dettaglio di un job:<strong> system/application/views/job_view.php</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;h1&gt;Viewing Job: &lt; ?=<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;title&#8217;</span><span class="br0">&#93;</span>?&gt;&lt;/h1&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;strong&gt;&lt; ?=<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;company&#8217;</span><span class="br0">&#93;</span>?&gt;&lt;/strong&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&lt; ?=<span class="re0">$job</span><span class="br0">&#91;</span><span class="st0">&#8216;description&#8217;</span><span class="br0">&#93;</span><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Ora abbiamo terminato di creare la nostra  prima applicazione con il framework MVC CodeIgniter.</p>
<p>Ci basta caricare  http://localhost/CodeIgniter/index.php/jobs/list_jobs per vedere il risultato finito!!</p>
<p>Per eventuali dubbi o segnalazioni commentate pure!</p>
<p><strong>Traduzione parziale dell&#8217;articolo:</strong> <em><br />
Rapid Development with CodeIgniter<strong> </strong>del 17-02-2008 » <a title="Rapid Developemente with codeigniter" href="http://www.developertutorials.com/tutorials/php/rapid-application-development-with-codeigniter-8-02-17" target="_blank">http://www.developertutorials.com</a></em><br />
a cura di Valerio Giacomelli (neryo)</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Ftutorial-con-il-framework-codeigniter.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/tutorial-con-il-framework-codeigniter.php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rilasciato Zen Framework 1.0.4</title>
		<link>http://www.programmazione-web.com/rilascio-zend-framework.php</link>
		<comments>http://www.programmazione-web.com/rilascio-zend-framework.php#comments</comments>
		<pubDate>Wed, 27 Feb 2008 14:31:30 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[framework php]]></category>
		<category><![CDATA[rilascio zend framework]]></category>
		<category><![CDATA[zend framework 1.0.4]]></category>
		<category><![CDATA[zend-framework]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/rilascio-zend-framework.php</guid>
		<description><![CDATA[Da qualche giorno è disponibile una nuova release di Zend Framework, si tratta di una versione di mantenimento giunta alla versione 1.0.4, in cui sono stati risolti numerevoli bugfix segnalati da ben 111 ticket. Con questo rilascio si chiude quindi l’ultima frontiera del ramo 1.0 prima del rilascio della nuova versione Zend Framework 1.5.0. Chiaramente [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Zend Framework" href="http://framework.zend.com/" target="_blank"><img src="http://www.programmazione-web.com/wp-content/uploads/2008/03/logo_zend.gif" alt="Zend Framework" /></a></p>
<p>Da qualche giorno è disponibile una nuova release di <strong><a title="Zend Framework" href="http://framework.zend.com/" target="_blank">Zend Framework</a>, </strong>si tratta di una versione di mantenimento giunta alla versione<strong> </strong><strong>1.0.4,</strong> in cui sono stati risolti numerevoli bugfix segnalati da ben 111 ticket. Con questo rilascio si chiude quindi l’ultima frontiera del ramo 1.0 prima del rilascio della nuova versione Zend Framework 1.5.0.</p>
<p>Chiaramente é raccomandabile il download l&#8217;aggiornamento del framework a questa versione per tutti utilizzatori di Zend Framework 1.0.x, perché non comporta incompatibilità con installazioni precedenti dello stesso ramo.</p>
<p><a rel="tag" href="http://www.zend-framework.it/tag/zend-framework/"></a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Frilascio-zend-framework.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/rilascio-zend-framework.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

