<?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; Sviluppo applicazioni</title>
	<atom:link href="http://www.programmazione-web.com/categorie/sviluppo-applicazioni/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>Windows Azure e il cloud computing</title>
		<link>http://www.programmazione-web.com/windows-azure-e-il-cloud-computing.php</link>
		<comments>http://www.programmazione-web.com/windows-azure-e-il-cloud-computing.php#comments</comments>
		<pubDate>Mon, 25 Jul 2011 16:39:01 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Web Server]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[microsoft windows azure]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=372</guid>
		<description><![CDATA[Quante volte in quest&#8217;ultimo periodo avete sentito o letto il termine “cloud computing”? E quante volte appena dopo averlo letto, vi siete chiesti: “cos’è questo cloud computing?” È molto semplice da spiegare: il cloud computing è, in questo momento, il futuro del nostro modo di lavorare. Le grandi aziende che forniscono servizi su internet si [...]]]></description>
			<content:encoded><![CDATA[<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Verdana} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Verdana; min-height: 12.0px} span.s1 {font: 10.0px 'Lucida Grande'} -->Quante volte in quest&#8217;ultimo periodo avete sentito o letto il termine “<strong>cloud computing</strong>”? E quante volte appena dopo averlo letto, vi siete chiesti: “cos’è questo cloud computing?” È molto semplice da spiegare: il <strong>cloud computing</strong> è, in questo momento, il futuro del nostro modo di lavorare.<br />
Le grandi aziende che forniscono servizi su internet si sono dotate di computer talmente potenti e talmente “spaziosi” da rendersi conto di poter offrire ai propri clienti la possibilità di usare le loro macchine semplicemente tramite una connessione internet, ovunque essi siano. All’inizio c’erano i servizi di storage di dati (ad esempio Amazon S3) ed ora siamo arrivati al sistema operativo che gira sulla “nuvola” con Windows Azure di Microsoft.</p>
<p>Cerchiamo di capire meglio come funziona questo tipo di cloud. La casa di Redmond ha creato un CED con una potenza di calcolo molto elevata, capace di ospitare una notevole quantità di dati, sul quale gira un sistema operativo sviluppato ad hoc che prende il nome di Windows Azure.<br />
Ma a chi serve <strong>Windows Azure</strong>? Serve a parecchie persone, siano esse sviluppatori, piccole e medie aziende ma anche a privati, che magari cercano un&#8217;alternativa ai servizi di hosting a basso costo.</p>
<p>Analizziamo un esempio che rende l&#8217;idea del funzionamento di Azure. Una piccola azienda decide di sviluppare un software gestionale, accessibile via web dai suoi potenziali utenti. Inizia quindi a sviluppare internamente il programma fino ad arrivare alla fase di test. Da quel momento, per essere presente su internet, bisogna scegliere se affidarsi ad un servizio di housing o comprare una macchina dedicata e installarla in sede.<br />
In tutti e due i casi sarebbe necessario acquistare un server, occuparsi della manutenzione ordinaria e straordinaria, dotarsi di una buona connessione internet, aggiornare sempre il sistema operativo con le patch che escono ogni mese, acquistare le licenze dei programmi installati ecc.. Tutto questo senza sapere se l’applicazione avrà successo o meno. Nel caso in cui questa spopoli su web, bisognerà affrontare in breve tempo un cambiamento di server, perché quello scelto all&#8217;inizio sarà ormai sottodimensionato per la notevole affluenza raggiunta dall’applicazione. In caso contrario, se l&#8217;applicazione è un flop clamoroso, l&#8217;azienda si ritroverà ad aver investito un’ingente somma di denaro per l&#8217;acquisto di una macchina configurata con tanto di licenze, che non servirà a nulla.</p>
<p>&nbsp;</p>
<p>E se invece tutto questo fosse fatto con Azure? Lo scenario sarebbe il seguente. Bisogna fare l’iscrizione sul portale dedicato, ambientarsi un po&#8217; per scoprire la piattaforma attraverso i tutorial presenti sulla knowledge base di Microsoft e iniziare a configurare la propria macchina.<br />
Si sceglie un biprocessore, 3,5 gb di Ram, 490Gb di spazio su disco, a 0,24$ l&#8217;ora. Si, avete letto bene, neanche 25 centesimi di dollaro all&#8217;ora. E inoltre l&#8217;ora è calcolata in base al reale utilizzo. Si viene quindi tariffati solo per il reale utilizzo della macchina virtuale in cloud. Una volta creato l&#8217;hardware, svilupparci sopra è semplicissimo. Come per la configurazione del server (che si fa sul proprio browser, comodamente seduti nel proprio ufficio), si configura l&#8217;ambiente di sviluppo. Possiamo usare Windows Server 2008 come sistema operativo, Visual Studio 2008 (o Visual Studio 2010 RC) come tool di sviluppo, Sql Server 2005 e logicamente IIS 7 (senza neanche doverlo scegliere, c&#8217;è già). Ecco creato il nostro server virtuale, gestito da browser, pronto per sviluppare e comodamente raggiungibile da qualsiasi parte del mondo con una semplice connessione internet. Da questo momento, qualunque cosa in più ci servisse, è comodamente addizionabile con un click e ci verrà tariffata dal momento dell&#8217;utilizzo. La scalabilità immediata di Azure è uno dei punti a suo favore. Il sistema può infatti adattarsi alle esigenze del cliente anche solo per 2 giorni o per 2 ore, il tempo di provare o fare un esperimento per vedere se proseguire su una strada o meno.</p>
<p>E quindi Windows Azure è utilizzabile solo con gli strumenti di sviluppo Microsoft? No. Ecco un altro punto a favore del cloud di Microsoft: è possibile utilizzare una notevole quantità di tool di sviluppo semplicemente installando i pacchetti di compatibilità, che troveremo nella gestione del nostro neonato server virtuale. Siamo soliti sviluppare con Eclipse? Nessun problema, c&#8217;è il modulo Eclipse per Azure e, in pochi click, avremo gli strumenti che siamo abituati ad usare.</p>
<p>In questo modo l&#8217;azienda non deve preoccuparsi della manutenzione, di aggiornare il sistema operativo, i tool di sviluppo, di cercare le patch in giro per internet, di fare backup, di pagare la bolletta per l&#8217;energia elettrica del server. Esce un service pack per Windows Server 2008? Al nostro login lo troveremo già installato sul nostro server virtuale. Tutto quello che viene realizzato in Azure, viene quindi tariffato all&#8217;utente, dall&#8217;utilizzo della potenza computazionale alla banda utilizzata per le transazioni, tutto calcolato al centesimo (al minuto per la potenza computazionale, al GB per le transazioni). Non si paga niente di più di quello che si usa realmente. Se poi pensiamo all’utilizzo di Azure in una grande azienda che ha un CED con 20 server in rack, 20 licenze per i sistemi operativi, gruppi di continuità, temperatura della sala server sempre a 16°, unità di backup, sorveglianza H24, router e firewall da bilanciare con il carico dati, potremo allora immaginare a quale risparmio in termini economici porterà la scelta di affidarsi al cloud.</p>
<p>Ecco la strada che oggi l&#8217;informatica sta seguendo. Come detto da Nicholas Carr, è in corso lo stesso processo che a fine ottocento si sviluppò in seguito all’avvento della corrente elettrica. Appena venne introdotta, tutte le aziende si dotarono infatti di costosi generatori, diventando produttrici della propria energia elettrica. Con il passare del tempo, sorsero le prime aziende che producevano più energia di quella che serviva loro, iniziando a rivenderla. In breve tempo acquistare l&#8217;energia da fuori senza produrla, divenne molto più conveniente e nessuno produsse più l&#8217;energia in casa. Lo stesso ora accade per i computer. In futuro non ci sarà più bisogno di avere un pc con hard disk e sistema operativo installato, basterà una connessione internet e tutto sarà sul web.</p>
<p>&nbsp;</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fwindows-azure-e-il-cloud-computing.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/windows-azure-e-il-cloud-computing.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commentare il codice sorgente, è inutile?</title>
		<link>http://www.programmazione-web.com/commentare-il-codice-e-inutile.php</link>
		<comments>http://www.programmazione-web.com/commentare-il-codice-e-inutile.php#comments</comments>
		<pubDate>Thu, 24 Sep 2009 11:37:09 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[codice sorgente]]></category>
		<category><![CDATA[commenti codice]]></category>
		<category><![CDATA[sviluppo software]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=260</guid>
		<description><![CDATA[Nella stesura del codice sorgente delle applicazioni è utile o inutile abbondare di commenti? Diversi sono i punti vista, ma sicuramente l'aspetto archietetturale del software e la semantica del codice scritto possono aiutare a comprendere la logica del codice.]]></description>
			<content:encoded><![CDATA[<p>Sul sito phpnews.it ho letto questo <a href="http://www.phpnews.it/blog/2009/05/02/quanto-e-utile-commentare-il-codice/comment-page-1/#comment-2318" target="_blank">post</a> che cita altri siti/blog internazionali sull&#8217;argomento dell&#8217;utilità o meno di commentare il <strong>codice sorgente delle applicazioni</strong>. Il mio punto di vista in merito è che la cosa fondamentale quanto di <strong>scrive del codice</strong> è rendere semantica ogni istruzione, che tradotto significa dare nomi più sensati alle alle classi/metodi/proprietà e variabili che si utilizzano. Questa pratica permette di dare più senso ad ogni riga di codice e rende già tutto molto più chiaro a chi lo deve interpretare.</p>
<p>I commenti comunque possono essere utili e in certi rari casi sono fondamentali, soprattutto in <strong>procedure complesse e ricche di casistiche</strong>.. ma se si abusa si hanno sostanzialmente due svantaggi: 1) si perde tempo 2) non serve a niente o quasi a nulla.</p>
<p>Inutile quindi fare commenti su parti di codice poco complessi che sono già autoesplicativi, porzioni di codice che <strong>qualsiasi programmatore junior è in grado di leggere</strong>. Piuttosto fare molta attenzione  alla strutturazione del codice, che come già da tempo ci insegnano i grandi sviluppatori e web architects moderni, per il web tende sempre all&#8217;<strong>architettura in stile MVC</strong>, che è quella che si avvicina di più alla <strong>logica di internet</strong>…  questo semplica notevolmente la stesura, la manutenzione e la comprensione del codice scritto, oltre a rendere i moduli che compongono l&#8217;applicazione indipendenti e incapsulati.</p>
<p>Per le applicazioni software tradizionali invece apprezzo molto l&#8217;approcio code behind, business logic e data access layer</p>
<p>Quindi non abusare mai di commenti, usare nomi sensati e fate attenzione piuttosto all&#8217;<strong>architettura del software</strong>.. chiaramente <strong>object oriented</strong>!</p>
<p>In attesa di un vostro parere in merito&#8230; <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%2Fcommentare-il-codice-e-inutile.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/commentare-il-codice-e-inutile.php/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Disponibile IDE NetBeans 6.7, anche per php</title>
		<link>http://www.programmazione-web.com/rilasciato-ide-netbeans-67-per-php.php</link>
		<comments>http://www.programmazione-web.com/rilasciato-ide-netbeans-67-per-php.php#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:24:27 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[editor php]]></category>
		<category><![CDATA[ide sviluppo]]></category>
		<category><![CDATA[linguaggio php]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=220</guid>
		<description><![CDATA[Dal 29 Giugno è stata rilasciata e resa disponibile per il download la piattaforma IDE NetBeans 6.7, offre una piattaforma di sviluppo per le seguenti tecnologie Java, PHP, Ruby, JavaScript, Groovy and C/C++, e altri.]]></description>
			<content:encoded><![CDATA[<p><strong>Disponibile IDE NetBeans 6.7, anche per php</strong></p>
<p>Dal 29 Giugno è stata rilasciata e resa disponibile per il download la piattaforma IDE NetBeans 6.7, tante sono le novità di questa release.</p>
<p>Ecco a voi alcune anticipazioni:</p>
<ul>
<li> integrazione della piattaforma Kenai</li>
<li>supporto nativo di Maven</li>
<li>supporto migliorato di GlassFish v3, che rappresenta una anteprima della prossima piattaforma JavaEE 6</li>
<li>features on demand, ovvero l’attivazione di alcuni componenti dell’IDE solo quando necessari</li>
</ul>
<p>Ricordando che NetBeans IDE 6.7, costruito dal successo della precendente release 6.5.x, offre una piattaforma di sviluppo per le seguenti tecnologie Java, <strong>PHP</strong>, Ruby, JavaScript, Groovy and C/C++, e  altri.</p>
<p><strong>NetBeans IDE 6.7</strong> è disponibile in Inglese, Portoghese Brasigliano, Giapponese e Cinese semplificato. Ci sono comunque tante comunity che rendono disponibili i pacchetti di traduzione in altre lingue.</p>
<p>Per avere maggiori informazioni su NetBeans IDE 6.7:</p>
<ul>
<li><a href="http://www.netbeans.org/features/index.html" target="_blank">NetBeans IDE 6.7 Features</a></li>
<li><a href="http://www.netbeans.org/kb/index.html" target="_blank">NetBeans IDE 6.7 Tutorials and Documentation</a></li>
<li><a href="http://www.netbeans.org/kb/docs/intro-screencasts.html" target="_blank">Videos of NetBeans IDE 6.7 in Action</a></li>
</ul>
<p>NetBeans è attualmente il mio IDE preferito per lo sviluppo in PHP! Per il download consultate il sito di netbeans.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Frilasciato-ide-netbeans-67-per-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/rilasciato-ide-netbeans-67-per-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rilasciata la nuova versione di PHP 5.3.0</title>
		<link>http://www.programmazione-web.com/rilasciato-php-530.php</link>
		<comments>http://www.programmazione-web.com/rilasciato-php-530.php#comments</comments>
		<pubDate>Wed, 01 Jul 2009 15:00:39 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[linguaggi web]]></category>
		<category><![CDATA[linguaggio php]]></category>
		<category><![CDATA[namespace php]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php 5.3.0]]></category>
		<category><![CDATA[static binding php]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=216</guid>
		<description><![CDATA[Il team sviluppo ha annunciato ieri la notizia ufficiale del rilascio dell'ultima versione di PHP della serie 5.x che incude innumerevoli nuove feature e la risuluzione di molti bug del linguaggio, oltre 140 bug fixes.]]></description>
			<content:encoded><![CDATA[<p><strong>Rilasciata la nuova versione di PHP 5.3.0</strong></p>
<p>Il team sviluppo ha annunciato ieri la notizia ufficiale del rilascio dell&#8217;ultima versione di PHP della serie 5.x che incude innumerevoli nuove feature e la risuluzione di molti bug del linguaggio, oltre 140 bug fixes.</p>
<p>Le principali novità introdotte in PHP 5.3.0 sono citate qui di seguito:</p>
<ul>
<li> Supporto per i namespaces;</li>
<li>Funzioni Lambda e Closures;</li>
<li>Miglioramento delle performance;</li>
<li>Garbage collection rivisitato;</li>
<li>Sostituizione di libmysql con mysqlnd;</li>
<li>Miglioramento del porting per le piattaforme alternative;</li>
<li>Cambio politica della gestione degli avvisi (E_DEPRECATED, E_STRICT);</li>
<li>Introdotte nuove direttive nel php.ini che rendono più flessibile la configurazione;</li>
<li>Nuove estensioni native.</li>
</ul>
<p>Vi rimando al <a title="Php 5.3.0 released" href="http://www.php.net/archive/2009.php#id2009-06-30-1" target="_blank">link ufficiale </a>e per ulteriori approfondimenti potete consultare alcuni articoli di html.it che descrivono  con alcuni esempi le nuove funzionalità:</p>
<p><a title="Namespace php 5.3.0" href="http://php.html.it/articoli/leggi/2475/le-novita-di-php-53-namespace/" target="_blank">http://php.html.it/articoli/leggi/2475/le-novita-di-php-53-namespace/</a><br />
<a title="stati binding php 5.3.0" href="http://php.html.it/articoli/leggi/2500/le-novita-di-php-53-supporto-alla-metaprogrammazione/" target="_blank">http://php.html.it/articoli/leggi/2500/le-novita-di-php-53-supporto-alla-metaprogrammazione/</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Frilasciato-php-530.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/rilasciato-php-530.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realizzare moduli per Prestashop Ecommerce</title>
		<link>http://www.programmazione-web.com/realizzare-moduli-per-prestashop-ecommerce.php</link>
		<comments>http://www.programmazione-web.com/realizzare-moduli-per-prestashop-ecommerce.php#comments</comments>
		<pubDate>Sun, 26 Apr 2009 13:25:31 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Prestashop]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[ecommerce opensource]]></category>
		<category><![CDATA[magento ecommerce]]></category>
		<category><![CDATA[moduli prestashop]]></category>
		<category><![CDATA[piattaforme ecommerce]]></category>
		<category><![CDATA[prestashop ecommerce]]></category>
		<category><![CDATA[sviluppo moduli prestashop]]></category>
		<category><![CDATA[zen cart]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=199</guid>
		<description><![CDATA[Prestashop è una piattaforma opensource per realizzare siti ecommerce. Questo post vuole illustrare come sia semplice sviluppare per Prestashop la base di un modulo personalizzato che si potrà installare.]]></description>
			<content:encoded><![CDATA[<p><strong>Sviluppare un modulo per la piattaforma Prestashop Ecommerce</strong></p>
<p>Per chi non lo sapesse <a title="Prestashop ecommerce" href="http://www.prestashop.com" target="_blank"><strong>Prestashop</strong></a> è una <strong>piattaforma opensource</strong> per realizzare <strong>siti ecommerce</strong>. Questo prodotto abbastanza giovane, ha da poco superato la realease 1.0 e stà avendo parecchi consensi positivi nell&#8217;ambito delle soluzioni moderne per il <strong>commercio elettronico</strong>, tanto da essere preferibile in molti casi a <strong>Magento Ecommerce</strong>, quest&#8217;ultimo giudicato l&#8217;alternativa sostitutiva a <strong>osCommerce </strong>e <strong>Zen-cart</strong>.</p>
<p>I punti di forza di <strong>Prestashop </strong>sono la <strong>ricchezza di funzionalità</strong> pur garantendo un <strong>ottima facilità di utilizzo</strong> sia per chi gestisce il proprio negozio online sia per chi deve svilupparlo, oltre ad essere veloce, leggero, e <strong>facilmente integrabile</strong>, il tutto grazie ad un <strong>codice di ottima fattura, moderno e ben organizzato</strong>.</p>
<p>Questo post non vuole essere però una introduzione a <strong>Prestashop</strong>, che in questi ultimi mesi è stato discusso ampliamente e recensito in molti altri siti, ma si vuole illustrare come sia semplice realizzare la base di un modulo personalizzato che si potrà installare sulla piattaforma in questione.</p>
<p><strong>La procedura per la creazione di un modulo è molto semplice:</strong></p>
<p>I moduli stanno tutti dentro alla cartella /modules, alcuni per velocizzare la creazione di un nuovo modulo copiano direttamente una cartella di un altro modulo poi iniziano a personalizzarlo per crearsi il proprio.. ma in questo esempio vediamo come <strong>crearlo from scratch</strong>.</p>
<ol>
<li>Creazione della cartella <strong>mymodule/</strong> dentro a <strong>/modules</strong></li>
<li>Creazione del file vista <strong>mymodule.tpl</strong> dentro a <strong>/modules/mymodule/</strong></li>
<li>Creazione della classe <strong>mymodule.php</strong> sempre dentro a <strong>/modules/mymodule/</strong></li>
</ol>
<p><strong>Classe mymodule.php</strong></p>
<p>In questo esempio di codice sottostante si vuole mostrare come realizzare una semplice classe <strong>Mymodule</strong>, che estende la classe padre module di <strong>prestashop, </strong>ereditandone le caratteristiche fondamentali.<strong> </strong>Tramite il costrutture vengono inizializzate le variabili necessarie, e attraverso il metodo install si puo&#8217; registrare il modulo nel <strong>Hook di default</strong>, in questo caso il Left, visualizzando il contenuto della vista tramite la chiamata a <strong>hookLeftColumn</strong>.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Mymodule <span class="kw2">extends</span> Module</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> __construct<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">name</span> = <span class="st0">&#8216;mymodule&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">tab</span> = <span class="st0">&#8216;Blocks&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">version</span> = <span class="nu0">0</span>.l;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent::__construct<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">// The parent construct is required for translations</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">page</span> = <a href="http://www.php.net/basename"><span class="kw3">basename</span></a><span class="br0">&#40;</span><span class="kw2">__FILE__</span>, <span class="st0">&#8216;.php&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">displayName</span> = <span class="re0">$this</span>-&gt;<span class="me1">l</span><span class="br0">&#40;</span><span class="st0">&#8216;Block mymodule&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">description</span> = <span class="re0">$this</span>-&gt;<span class="me1">l</span><span class="br0">&#40;</span><span class="st0">&#8216;Add a mymodule block&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> install<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!parent::<span class="me2">install</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$this</span>-&gt;<span class="me1">registerHook</span><span class="br0">&#40;</span><span class="st0">&#8216;leftColumn&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">true</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/**</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; * Returns module content</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; *</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; * @param array $params Parameters</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; * @return string Content</span></div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> hookLeftColumn<span class="br0">&#40;</span><span class="re0">$params</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$smarty</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$myvariable</span> = <span class="st0">&#8216;this is my var&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$smarty</span>-&gt;<span class="me1">assign</span><span class="br0">&#40;</span><span class="st0">&#8216;myvariable&#8217;</span>, <span class="re0">$myvariable</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="re0">$this</span>-&gt;<span class="me1">display</span><span class="br0">&#40;</span><span class="kw2">__FILE__</span>, <span class="st0">&#8216;mymodule.tpl&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Come si può notare all&#8217;interno del metodo <strong>hookLeftColumn </strong>posso passare le variabili elaborate nella classe alle viste per poi visualizzarle. All&#8217;interno del modulo posso fare riferimento chiaramente a tutte le classi disponibili del framework di prestashop.. As esempio potrei fare una semplice query su una tabella del database:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> hookLeftColumn<span class="br0">&#40;</span><span class="re0">$params</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$smarty</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$myquery</span> = Db::<span class="me2">getInstance</span><span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;<span class="me1">Execute</span><span class="br0">&#40;</span><span class="st0">&#8216;SELECT * FROM mytable&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$smarty</span>-&gt;<span class="me1">assign</span><span class="br0">&#40;</span><span class="st0">&#8216;myresult&#8217;</span>, <span class="re0">$myquery</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="re0">$this</span>-&gt;<span class="me1">display</span><span class="br0">&#40;</span><span class="kw2">__FILE__</span>, <span class="st0">&#8216;mymodule.tpl&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>semplice vero?</p>
<p><strong>Creare la vista mymodule.tpl</strong><br />
Un semplice esempio di vista che verrà richiamata dalla precedente classe e sarà visualizzata nel parte left del nostro eshop.</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;div <span class="kw2">class</span>=<span class="st0">&quot;mymoduleblock&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;h4&gt;<span class="br0">&#123;</span>l s=<span class="st0">&#8216;My first module&#8217;</span> mod=<span class="st0">&#8216;mymodule&#8217;</span><span class="br0">&#125;</span>&lt;/h4&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;div <span class="kw2">class</span>=<span class="st0">&quot;block_content&quot;</span> style=<span class="st0">&quot;padding:0px;&quot;</span>&gt;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; My First Prestashop module, <span class="br0">&#123;</span>myvariable<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=<span class="st0">&quot;http://www.neryo.com/&quot;</span>&gt;Neryo consulenza software&lt;/a&gt;&lt;/div&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>Come si può notare <strong>Prestashop utilizza smarty </strong>come motore di template, quindi abbiamo a disposizione tutte le sue funzionalità per fare cicli e manipolazioni.. e inoltre attraverso il quale si possono definire alcuni stringhe di codice, es <strong>{l s=&#8217;My first module&#8217; mod=&#8217;mymodule&#8217;} </strong>all interno delle viste, che poi potranno essere tradotti dal sistema di traduzione presente nella piattaforma, generando vari files all&#8217;intenro della cartella del modulo (es. it.php, fr.php).</p>
<p>All&#8217;interno del modulo possiamo usare ad esempio la variabile smarty <strong>{$module_dir}</strong> per far riferimento alla directory di questo modulo e quindi facilitarci i riferimenti all&#8217;interno di esso.</p>
<p>Questo Mymodule chiaramente non fa molto, visualizza questo blocco di codice html nella colonna di sinistra del eshop&#8230; però è il punto di partenza che ci permette di capire come funziona il sistema e sviluppare qualcosa di complesso e di personalizzato. Ci basterà quindi dare un occhiata agli altri moduli e prendere spunto.</p>
<p><strong>Riferimenti</strong></p>
<p><a title="How to create a new module for prestashop" href="http://www.prestashop.com/forums/viewthread/730/modules/how_to_create_a_new_module_any_kind" target="_blank">http://www.prestashop.com/forums/viewthread/730/modules/how_to_create_a_new_module_any_kind</a><br />
<a title="How to create a prestashop modules" href="http://marghoobsuleman.com/blogs/how-to-create-prestashop-modules" target="_blank">http://marghoobsuleman.com/blogs/how-to-create-prestashop-modules</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Frealizzare-moduli-per-prestashop-ecommerce.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/realizzare-moduli-per-prestashop-ecommerce.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CodeIgniter: organizzazione di un progetto in Subversion</title>
		<link>http://www.programmazione-web.com/codeigniter-organizzazione-progetto-in-subversion.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-organizzazione-progetto-in-subversion.php#comments</comments>
		<pubDate>Sat, 13 Sep 2008 08:44:46 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[codeignite framework]]></category>
		<category><![CDATA[Codeigniter community voice]]></category>
		<category><![CDATA[codeigniter organizzazione progetto]]></category>
		<category><![CDATA[codeigniter project]]></category>
		<category><![CDATA[codeigniter subversion]]></category>
		<category><![CDATA[codeigniter svn]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=74</guid>
		<description><![CDATA[Organizzazione del setup di un progetto con il framework Codeigniter per facilitare la sincronizzazione e l'aggiornamento dei sorgenti del framework tramite SVN client Subversion.]]></description>
			<content:encoded><![CDATA[<p><strong>Codeigniter come organizzare un progetto del framework in Subversion</strong></p>
<p>Dall&#8217;iniziativa &#8220;Codeigniter community voice&#8221; lanciata da Derek Allard in <a title="CodeIgniter Community Voice" href="http://codeigniter.com/forums/viewannounce/81650_49/" target="_blank">questo post</a>, dove ogni settimana viene lasciato uno spazio aperto sul sito ufficiale, a qualsiasi membro del forum che abbia qualcosa di interessante da dire sul framework codeigniter.. e&#8217; venuto alla luce <a title="HOWTO: Set up a CodeIgniter project in Subversion" href="http://codeigniter.com/news/codeigniter_community_voice_howto_set_up_a_codeigniter_project_in_subversio/" target="_blank">questo utilissimo tutorial</a> dove Bruce Alderson, alias sul forum <a href="http://codeigniter.com/forums/member/65974/" target="_blank">madmaxx</a> ci spiega come organizzare al meglio un progetto con il framework Codeigniter.</p>
<p>Questo tipo di organizzazione ci permette di sviluppare e di rendere il progetto software piu&#8217; controllabile ed aggiornabile, garantendo una netta separazione tra i sorgenti dell&#8217;applicazione, i sorgenti del framework e le risorse (immagini, file htaccess e script javascript, ecc). Come potrete vedere dall&#8217;albero di directory sottostante, questo tipo di organizzazione puo&#8217; essere implementata solo su sistemi unix-like, perche&#8217; fa uso dei link simbolici.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">some-domain.com/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; app/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; config/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; controllers/</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#40;</span>etc<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; public/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; .htaccess &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ../site-extras/.htaccess</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; favicon.ico &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ../site-extras/favicon.ico</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; js/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ../site-extras/js</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; images/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; ../site-extras/images</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; system/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; application/ &nbsp; &nbsp;-&gt; ../../app/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; site-extras/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;js/</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;images/</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; .htaccess</div>
</li>
</ol>
</div>
<p>Oltre a favorire il setup del vhost, e un maggiore ordine, permette di mantenere la sincronizzazione dei sorgenti del framework con i repository ufficiali di codeigniter, tramite il client SVN (client di <a title="SVN Subversion - sistema controllo versione" href="http://it.wikipedia.org/wiki/Subversion" target="_blank">Subversion</a>), senza ovviamente intaccare le risorse e i sorgenti dell&#8217;applicazione che ne fanno uso.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-organizzazione-progetto-in-subversion.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-organizzazione-progetto-in-subversion.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progettiamo il software o programmiamo e basta?</title>
		<link>http://www.programmazione-web.com/progettare-software-o-programmare-progettando.php</link>
		<comments>http://www.programmazione-web.com/progettare-software-o-programmare-progettando.php#comments</comments>
		<pubDate>Tue, 05 Aug 2008 20:52:42 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[Design pattern]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[ciclo di vita del software]]></category>
		<category><![CDATA[linguaggi di modellazione]]></category>
		<category><![CDATA[progettare applicazioni]]></category>
		<category><![CDATA[progettare software]]></category>
		<category><![CDATA[programmazione e sviluppo]]></category>
		<category><![CDATA[sviluppo software]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=69</guid>
		<description><![CDATA[Spesso noi programmatori siamo costretti a lavorare in condizioni esasperate da tempistiche troppo stringenti, richieste e specifiche date all'ultimo minuto e margini di brainstorming ridicoli. Un software ben progettato e' piu' stabile e architetturalmente espandibile, mantenibile e il costo finale sara' inferiore.. quindi perche' non vogliamo attenerci a queste semplice regole?]]></description>
			<content:encoded><![CDATA[<p>Spesso noi programmatori siamo costretti a lavorare in condizioni esasperate da tempistiche troppo stringenti, richieste e specifiche date all&#8217;ultimo minuto e margini di brainstorming ridicoli.</p>
<p>Questo e&#8217; quello che succede in molte aziende dove spesso i project manager (cosi&#8217; amano definirsi), che in alcuni casi non hanno neanche mai seriamente progettato e sviluppato applicazioni, pretendono di vedere i risultati in tempi molto brevi.. magari preferiscono vedere la bozza del software semi funzionante, anche se concepita male, piuttosto che dare agli analisti/sviluppatori tempi adeguati di progettazione e analisi che migliorerebbero inevitabilmente la qualita&#8217; e la stabilita&#8217; finale dei software prodotti.</p>
<p>E&#8217; chiaro a tutti noi che se vengono fornite specifiche complete e precise, e c&#8217;e&#8217; il tempo di progettare l&#8217;intero <a title="Ciclo di vita del software" href="http://it.wikipedia.org/wiki/Ciclo_di_vita_del_software" target="_blank">ciclo di vita del software</a>, utilizzando pattern validi e magari linguaggi di modellazione, lo sviluppo e la manutenzione del codice sarebbe molto piu&#8217; semplice.  Anche uno sviluppatore meno esperto, con queste premesse, riuscirebbe a cimentarsi senza particolari problemi; ma purtroppo non e&#8217; sempre cosi&#8217; e si preferisce programmare e basta, progettare mentre si programma ed inevitabilmente nascono software che non stanno in piedi.</p>
<p>Sara&#8217; la senzazione di risparmio? Sara&#8217; che meglio un uovo oggi che una gallina domani? mah..</p>
<p>Progettare software e&#8217; un investimento, se si vuole fare le cose di fretta e senza riflettere si finisce per buttare via soldi e tempo, oltre a creare un prodotto di scarsa qualita&#8217;; poi noi ci troveremo a mettere continuamente mano a progetti pieni di toppe e ripieghi che per sistemare un bug impieghiamo giornate di lavoro!</p>
<p>Un software ben progettato e&#8217; piu&#8217; stabile e architetturalmente espandibile, mantenibile e il costo finale sara&#8217; inferiore.. quindi perche&#8217; non vogliamo attenerci a queste semplice regole?</p>
<p><!-- message --></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fprogettare-software-o-programmare-progettando.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/progettare-software-o-programmare-progettando.php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Professional Codeigniter&#8221; il nuovo libro per sviluppare con PHP</title>
		<link>http://www.programmazione-web.com/libro-professional-codeigniter-framework-mvc.php</link>
		<comments>http://www.programmazione-web.com/libro-professional-codeigniter-framework-mvc.php#comments</comments>
		<pubDate>Tue, 29 Jul 2008 22:51:41 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[codeigniter book]]></category>
		<category><![CDATA[codeigniter libro]]></category>
		<category><![CDATA[codeigniter wrox]]></category>
		<category><![CDATA[MVC approach]]></category>
		<category><![CDATA[pattern MVC]]></category>
		<category><![CDATA[professional codeigniter]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=64</guid>
		<description><![CDATA[Libro Wrox dedicato allo sviluppo con il framework php MVC Codeigniter, framework MVC, framework PHP RAD. Professional Codeigniter book Wrox libro programmazione php per gli sviluppatori web.]]></description>
			<content:encoded><![CDATA[<p><strong>&#8220;Professional Codeigniter&#8221; il nuovo libro per sviluppare con PHP in MVC</strong></p>
<p>Dopo l&#8217;uscita dello scorso anno del libro &#8220;CodeIgniter for Rapid PHP Application Development” (pubblicato da <a title="Packt publishing" href="http://www.packtpub.com/" target="_blank">PAKT publishing</a>), nel giugno 2008 la nota casa editrice Wrox press pubblica una nuova guida di 336 pagine completamente dedicata al &#8220;nostro&#8221; framework php Codeigniter. Il libro e&#8217; stato scritto da Thomas Myer e si intitola <a href="http://www.ibs.it/book/9780470282458/myer-thomas/professional-codeigniter.html" target="_blank">Professional Codeigniter</a><strong> </strong>ed e&#8217; acquistabile e reperibile dall&#8217;italia in pochi giorni comodamente presso <a title="Internet books shop" href="http://www.ibs.it/" target="_blank">IBS</a>(Internet book shop).</p>
<p><a href="http://www.programmazione-web.com/wp-content/uploads/2008/07/codeigniter_book.jpg"><img class="alignnone size-medium wp-image-68" title="codeigniter_book" src="http://www.programmazione-web.com/wp-content/uploads/2008/07/codeigniter_book-239x300.jpg" alt="" width="239" height="300" /></a></p>
<p>Il nuovo libro in inglese &#8220;<a title="Professional Codeigniter by Wrox" href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470282452.html" target="_blank">Professional Codeigniter</a>&#8221; conterra&#8217; tutte le informazioni e i tutorial necessari agli sviluppatori php per apprendere e implementare applicazioni Rails-like senza dover imparare nuovi linguaggi. Codeigniter infatti utilizza una metodologia di sviluppo che usa il pattern MVC (Model view controller) molto utilizzato ed apprezzato dagli programmatori professionisti. Nel libro verra&#8217; fatta una panoramica sul pattern MVC, sulle metodologie di sviluppo e verranno creati diversi esempi di applicazioni come CMS, blog e forum utilizzando Codeigniter e conterra&#8217; le informazioni necessarie a risolvere le problematiche che si incontreranno nello sviluppo di ogni giorno.</p>
<p><span class="tcorpotesto">Nel libro ci saranno i seguenti argomenti:</span></p>
<ul>
<li><span class="tcorpotesto">agile methodologies and approaches</span></li>
<li><span class="tcorpotesto">MVC approach</span></li>
<li><span class="tcorpotesto">helpers and libraries</span></li>
<li><span class="tcorpotesto">model and schema for products</span></li>
<li><span class="tcorpotesto">Ajax and Scriptaculous</span></li>
</ul>
<p>Se qualcuno di voi lo acquista e lo legge saremmo tutti felici di leggere i pareri nei commenti.. <img src='http://www.programmazione-web.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Io a breve molto probabilmente lo compro!</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Flibro-professional-codeigniter-framework-mvc.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/libro-professional-codeigniter-framework-mvc.php/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Codeigniter Redux Authentication: libreria per l&#8217;autenticazione</title>
		<link>http://www.programmazione-web.com/codeigniter-redux-authentication-libreria-per-lautenticazione.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-redux-authentication-libreria-per-lautenticazione.php#comments</comments>
		<pubDate>Sat, 05 Jul 2008 14:24:06 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[Classi e librerie]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[autenticazione utenti]]></category>
		<category><![CDATA[libreria autenticazione]]></category>
		<category><![CDATA[libreria autenticazione redux]]></category>
		<category><![CDATA[libreria codeigniter]]></category>
		<category><![CDATA[redux autenticazione utenti]]></category>
		<category><![CDATA[Redux Authentication library]]></category>
		<category><![CDATA[user managment]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=60</guid>
		<description><![CDATA[Redux Authtentication library, libreria per il framework codeigniter, che implementa l'autenticazione in modo veloce e in piena sicurezza]]></description>
			<content:encoded><![CDATA[<p><strong>Codeigniter Redux Authentication: libreria per l&#8217;autenticazione</strong><br />
In questo caldissimo mese di luglio vi voglio presentare Redux Authtentication library, un pacchetto per l&#8217;autenticazione da utilizzare con il &#8220;nostro&#8221; amato framework php Codeigniter. Questa libreria ci consente di creare in modo facile e super veloce l&#8217;accesso protetto al backend dei nostri progetti e di avere una base solida su cui costruire e personalizzare la sicurezza della nostra applicazione web.</p>
<h3>Le features di questa libreria sono:</h3>
<ul>
<li>Registrazione degli utenti</li>
<li>Login e logout</li>
<li>Gestione perdita password</li>
<li>Gestione gruppi utenti</li>
<li>Sistema di Ban degli utenti</li>
<li>Focalizzata sulla sicurezza</li>
</ul>
<p>Come accennato, l&#8217;installazione di questa libreria per Codeigniter è molto semplice e viene fatta seguendo questi pochi step:</p>
<ul>
<li>Creare il database della nostra applicazione codeigniter oppure utilizzare il database esistente (se il progetto è già iniziato), ed importare il file<strong> install.sql </strong>(contenuto nel pacchetto) nel nostro database, contenente le tabelle per Redux.</li>
<li>All&#8217;interno del pacchetto della libreria Redux Authentication troveremo la cartella application in cui sono contenute altre due cartelle config/ e libraries/ in cui all&#8217;interno ci sono rispettivamente il file per la configurazione della libreria e in libraries il file contenente la classe con i metodi Redux. Chiaramente questo contenuto dovrà essere copiato nella nostra cartella application della nostra applicazione nelle rispettive cartelle.</li>
<li>Un volta fatto questo andremo nel file <strong>config/config.php</strong> e abiliteremo le variabili di sessione:
<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;sess_encrypt_cookie&#8217;</span><span class="br0">&#93;</span> &nbsp;= <span class="kw2">TRUE</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$config</span><span class="br0">&#91;</span><span class="st0">&#8216;sess_use_database&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp;= <span class="kw2">TRUE</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$config</span><span class="br0">&#91;</span><span class="st0">&#8216;sess_match_ip&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp; &nbsp;= <span class="kw2">TRUE</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$config</span><span class="br0">&#91;</span><span class="st0">&#8216;sess_match_useragent&#8217;</span><span class="br0">&#93;</span> = <span class="kw2">TRUE</span>;</div>
</li>
</ol>
</div>
<p>Nel mio caso per la configurazione delle sessioni su DB Mysql ho seguito questa guida <a title="Codeigniter DB Session" href="http://codeigniter.com/wiki/DB_Session/" target="_blank">http://codeigniter.com/wiki/DB_Session/</a></li>
<li>Sistemate le sessioni possiamo configurare a dovere il file <strong>config/redux_auth.php</strong>, in cui non mi addentro perchè è abbastanza semplice e ben commentato, poi non mi pare abbia bisogno di particolari modifiche.</li>
<li>Per comodità, sarebbe opportuno configurare in <strong>config/autoload.php</strong> il caricamento automatico della libreria redux, perchè altrimenti bisogna ricordarsi di farlo ogni volta che la si utilizza nei metodi del controller. Ricordandoci che Redux carica in automatico le librerie per le email e le sessioni.
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$autoload</span><span class="br0">&#91;</span><span class="st0">&#8216;libraries&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&quot;redux_auth&quot;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
</li>
</ul>
<p>Dopo questa breve configurazione sarà possibile sfruttare tutta la potenza della libreria Redux Authentication, all&#8217;interno del pacchetto nei files di esempio avremo il controller <strong>user.php</strong> che illustra molto bene come vengono implementate le funzioni di base per costruire una autenticazione completa e anche come si apprestano facilmente alla personalizzazione.</p>
<h3>Per farvi un esempio di semplice controller con il solo login:</h3>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> user <span class="kw2">extends</span> Controller</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> index <span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#8216;This is the user Controller&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">function</span> login <span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rules</span><span class="br0">&#91;</span><span class="st0">&#8216;email&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp;= <span class="st0">&#8216;trim|required&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$rules</span><span class="br0">&#91;</span><span class="st0">&#8216;password&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&#8216;trim|required&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$this</span>-&gt;<span class="me1">validation</span>-&gt;<span class="me1">set_rules</span><span class="br0">&#40;</span><span class="re0">$rules</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$this</span>-&gt;<span class="me1">validation</span>-&gt;<span class="me1">run</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$login</span> = <span class="re0">$this</span>-&gt;<span class="me1">redux_auth</span>-&gt;<span class="me1">login</span><span class="br0">&#40;</span><span class="re0">$this</span>-&gt;<span class="me1">input</span>-&gt;<span class="me1">post</span><span class="br0">&#40;</span><span class="st0">&#8216;email&#8217;</span><span class="br0">&#41;</span>, <span class="re0">$this</span>-&gt;<span class="me1">input</span>-&gt;<span class="me1">post</span><span class="br0">&#40;</span><span class="st0">&#8216;password&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$i</span> = <span class="br0">&#40;</span><span class="re0">$login</span><span class="br0">&#41;</span> ? redirect<span class="br0">&#40;</span><span class="st0">&#8221;</span><span class="br0">&#41;</span> : <span class="st0">&#8216;false&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <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;login&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Chiaramente se utilizziamo il controller già fatto dovremmo creare poi tutte le viste che vengono richiamate da esso. Per chi è inesperto e vuole comunque facilitarsi la vita all&#8217;inizio gli consiglio di scaricarle dal secondo link nei riferimenti qui sotto.</p>
<h3>Un esempio di come effettuare il controllo nelle pagine protette lato backend:</h3>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Admin <span class="kw2">extends</span> Controller <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> Admin<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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent::<span class="me2">Controller</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <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;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$this</span>-&gt;<span class="me1">redux_auth</span>-&gt;<span class="me1">logged_in</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>E&#8217; tutto.. quindi buona autenticazione con Redux!</p>
<p><strong>Riferimenti</strong>:</p>
<p><a title="Redux Authentication library" href="http://code.google.com/p/reduxauth/" target="_blank">http://code.google.com/p/reduxauth/</a><br />
<a title="Redux Authentication Example “View” Files  " href="http://codeigniter.com/forums/viewthread/72525/" target="_blank">http://codeigniter.com/forums/viewthread/72525/</a><br />
<a title="Codeigniter DB Session" href="http://codeigniter.com/wiki/DB_Session/" target="_blank">http://codeigniter.com/wiki/DB_Session/</a><br />
<a title="Codeigniter Sessions" href="http://codeigniter.com/user_guide/libraries/sessions.html" target="_blank">http://codeigniter.com/user_guide/libraries/sessions.html</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-redux-authentication-libreria-per-lautenticazione.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-redux-authentication-libreria-per-lautenticazione.php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 1.6.3 nuova fixed release per il framework php</title>
		<link>http://www.programmazione-web.com/codeigniter-163-nuova-fixed-release-per-il-framework-php.php</link>
		<comments>http://www.programmazione-web.com/codeigniter-163-nuova-fixed-release-per-il-framework-php.php#comments</comments>
		<pubDate>Sun, 29 Jun 2008 15:19:58 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[News dal web]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[codeigniter 1.6.3]]></category>
		<category><![CDATA[codeigniter nuova release]]></category>
		<category><![CDATA[codeigniter nuova versione]]></category>
		<category><![CDATA[nuova versione codeigniter]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=61</guid>
		<description><![CDATA[Codeigniter framework php nuova realase 1.6.3 rilasciato alla fine di giugno 2008, contiene notevoli bigfixes e altri miglioramenti alle features esistenti]]></description>
			<content:encoded><![CDATA[<p><strong>CodeIgniter 1.6.3 nuova fixed release per il framework php</strong></p>
<p>Lo staff di sviluppo del framework CodeIgniter è stato come al solito felice di annunciare il rilascio della nuova versione 1.6.3 annunciato sul <a title="Codeigniter official site" href="http://codeigniter.com/" target="_blank">sito ufficiale di codeigniter</a> il 26/06/2008. Questa versione, la 1.6.3 è pressochè identica a livello funzionale, si tratta infatti di una relase di mantenimento, include la risoluzione di vari bug diagnosticati e alcune rifiniture di features esistenti già nella precedente release. I dettagli potranno essere visionati come al solito nel <a title="Codeigniter Changelog" href="http://codeigniter.com/user_guide/changelog.html" target="_blank">Change Log</a>.</p>
<p>In aggiunta, grazie al contributo esterno di un membro della comunità di Codeigniter, Pascal Kriete (Inparo), è stato identificato ed eliminato una potenziale vulnerabilità che consentiva di bucare i siti con la tecnica del cross-site scripting.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fcodeigniter-163-nuova-fixed-release-per-il-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-163-nuova-fixed-release-per-il-framework-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

