<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Symfony-IT</title>
	
	<link>http://www.symfony.it</link>
	<description>Just another Symfony Framework weblog</description>
	<lastBuildDate>Fri, 13 Apr 2012 16:41:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<div id="fb-root" />
					<script type="text/javascript">
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/it_IT/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Symfony-it" /><feedburner:info uri="symfony-it" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Symfony-it</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>VichUploaderBundle, file upload con doctrine</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/X2nPKW3siWk/</link>
		<comments>http://www.symfony.it/articoli/598/doctrine-file-upload/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 08:30:33 +0000</pubDate>
		<dc:creator>Francesco Tassi</dc:creator>
				<category><![CDATA[bundle]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[varie]]></category>
		<category><![CDATA[file upload]]></category>
		<category><![CDATA[symfony 2.0]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=598</guid>
		<description><![CDATA[L&#8217; upload di file è una delle necessità più comuni di un&#8217;applicazione web. La documentazione ufficiale copre l&#8217;argomento in maniera piuttosto chiara, trattando sia l&#8217;upload di file generico che quello di file legati ad un&#8217;entità doctrine. In particolare quest&#8217;ultimo è probabilmente il caso più comune dato che, nella maggioranza dei casi, vorrai avere su database [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217; <strong>upload</strong> di file è una delle <strong>necessità più comuni</strong> di un&#8217;applicazione web. La <strong><a title="Documentazione ufficiale Symfony2 form" href="http://symfony.com/it/doc/current/book/forms.html">documentazione ufficiale</a></strong> copre l&#8217;argomento in maniera piuttosto <strong>chiara</strong>, trattando sia <a title="Symfony File Type" href="http://symfony.com/it/doc/current/reference/forms/types/file.html">l&#8217;upload di file generico</a> che quello di file <a title="Symfony file upload con doctrine" href="http://symfony.com/it/doc/current/cookbook/doctrine/file_uploads.html"> legati ad un&#8217;entità doctrine</a>. In particolare quest&#8217;ultimo è probabilmente il caso più comune dato che, nella maggioranza dei casi, vorrai avere su database un riferimento al file caricato.</p>
<p>La procedura descritta nel <strong>cookbook</strong> è <strong>assolutamente corretta</strong>, ma l&#8217;utilizzo del bundle <strong><a title="VichUploaderbundle" href="http://knpbundles.com/dustin10/VichUploaderBundle">VichUploaderBundle</a> rende il tutto più efficace</strong> e risolve, abbastanza bene, anche un paio di problemi. Ecco <strong>la mia esperienza</strong> con questo bundle.</p>
<p><span id="more-598"></span></p>
<p>Quando mi sono trovato ad implementare il mio primo file upload sono partito, ovviamente, dalla <strong>documentazione</strong>. Seguendo il <a title="Upload di file con doctrine e symfony" href="http://symfony.com/it/doc/current/cookbook/doctrine/file_uploads.html">cookbook</a> non ho avuto particolari problemi, ma <strong>qualcosa non mi ha convinto del tutto</strong>:</p>
<ol>
<li><strong>La mia entità avrebbe dovuto conoscere dettagli legati all&#8217;upload</strong> (il percorso di upload) che, secondo me, non sono tanto di sua competenza</li>
<li>Il <strong>codice</strong> per gestire l&#8217;upload, seppur <strong>semplice</strong>, era piuttosto <strong>verboso</strong> e <strong>ripeterlo</strong> per ogni entità legata ad un upload sarebbe stata <strong>operazione noiosa</strong>.</li>
</ol>
<p>Ho sentito insomma la necessità di <strong>una soluzione migliore</strong>, più efficiente, per risolvere il problema. Cercando su <a title="Symfony2 Repository bundle" href="http://knpbundles.com/">KnpBundles</a> ho trovato <strong><a title="VichUploaderbundle" href="http://knpbundles.com/dustin10/VichUploaderBundle">VichUploaderBundle</a></strong>.</p>
<p>Sostanzialmente il bundle si occupa di gestire il file  upload introducendo un <strong>set di annotazioni</strong> che permettono di definire il file come &#8220;<strong>Uploadabile</strong>&#8221; e di configurare quale proprietà dell&#8217;entità conterrà il file (e tutto il resto necessario a gestire l&#8217;upload). Il plugin si occupa anche di <strong>ascoltare gli eventi di doctrine</strong> per gestire <strong>caricamento e cancellazione</strong> dell&#8217;entità (e quindi in cascata dei file su file system). A completare l&#8217;opera alcuni <strong>helper</strong> per facilitare la vita nei <strong>template</strong>.</p>
<p>Tramite <strong>parametri di configurazione</strong> è inoltre possibile configurare <strong>destinazione</strong> dell&#8217;upload o, addirittura, il servizio utilizzato per la <strong>generazione del nome</strong> del file caricato.</p>
<p>Insomma un<strong> pacchetto veramente completo</strong> per la soluzione del problema upload.</p>
<p>L&#8217;installazione del bundle non presenta difficoltà e per i dettagli rimando alla documentazione ufficiale che è affidabile e completa.</p>
<p>Una delle cose che manca (almeno per il mio caso d&#8217;uso) è la possibilità di gestire l&#8217;upload su file system diversi da quello locale. Dato che spesso mi capita di lavorare con CDN questo è un punto debole. Fortunatamente il bundle sembra <strong>ben implementato</strong> e il salvataggio del file è delegato al componente:</p>
<p><code>Vich\UploaderBundle\Storage\FileSystemStorage</code></p>
<p>Che implementa l&#8217;interfaccia:</p>
<p><code>Vich\UploaderBundle\Storage\StorageInterface</code></p>
<p>Sono abbastanza sicuro che sia possibile integrare facilmente un (ad esempio) <strong>CDNStorage</strong> da poter usare in caso di upload su CDN. Questo ovviamente permetterebbe di <strong>legare l&#8217;upload di file a qualsiasi cosa, CDN e servizi di ogni tipo</strong>.</p>
<p>Non ho ancora avuto modo di verificare quanta fatica possa richiedere l&#8217;implementazione e l&#8217;integrazione di StorageInterface differenti ma spero di poterlo fare nei prossimi giorni.</p>
<p>In generale il <strong>bundle</strong> mi <strong>piace parecchio</strong> e penso che <strong>lo userò</strong>, da qui in avanti, <strong>per gestire i miei upload</strong>.</p>
<p>Mi piacerebbe anche leggere la tua opinione al riguardo, conosci qualche alternativa ? Hai già implementato qualcosa che potebbe essere integrato in questo bundle ?</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/598/doctrine-file-upload/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/3EonSC8tgsQgf92L1p7mus75vAg/0/da"><img src="http://feedads.g.doubleclick.net/~a/3EonSC8tgsQgf92L1p7mus75vAg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3EonSC8tgsQgf92L1p7mus75vAg/1/da"><img src="http://feedads.g.doubleclick.net/~a/3EonSC8tgsQgf92L1p7mus75vAg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=X2nPKW3siWk:FgqBkuB7oVg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=X2nPKW3siWk:FgqBkuB7oVg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=X2nPKW3siWk:FgqBkuB7oVg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=X2nPKW3siWk:FgqBkuB7oVg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=X2nPKW3siWk:FgqBkuB7oVg:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/598/doctrine-file-upload/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/598/doctrine-file-upload/</feedburner:origLink></item>
		<item>
		<title>Velocizzare i test usando un RAM Disk</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/sBtQMDY2DHo/</link>
		<comments>http://www.symfony.it/articoli/586/velocizzare-i-test-usando-un-ram-disk/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 08:15:55 +0000</pubDate>
		<dc:creator>Francesco Tassi</dc:creator>
				<category><![CDATA[varie]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=586</guid>
		<description><![CDATA[Dato che la RAM costa relativamente poco e il tempo invece è merce rara, mi pare una buona idea &#8220;investire&#8221; un po&#8217; di RAM per risparmiare tempo. Se lavorate con una suite di test automatici probabilmente questa girerà decine di volte al giorno (forse addirittura all&#8217;ora) facendo una serie di operazioni su disco che, probabilmente, [...]]]></description>
			<content:encoded><![CDATA[<p>Dato che la <strong>RAM costa relativamente poco</strong> e il <strong>tempo invece è merce rara</strong>, mi pare una buona idea <strong>&#8220;investire&#8221; un po&#8217; di RAM per risparmiare tempo</strong>. Se lavorate con una suite di test automatici probabilmente questa girerà decine di volte al giorno (forse addirittura all&#8217;ora) facendo una serie di operazioni su disco che, probabilmente, avranno un peso significativo sul tempo di esecuzione finale. <strong>Montando una porzione di RAM e utilizzandola come FS si può velocizzare l&#8217;esecuzione dei test.</strong></p>
<p><span id="more-586"></span></p>
<p>Tre sono le cose che, se spostate in RAM, consentono un risparmio di tempo interessante:</p>
<ul>
<li>Database</li>
<li>File di Log</li>
<li>Cache</li>
</ul>
<p>Di queste il <strong>database è probabilmente la cosa più importante</strong>. La vostra suite di test unitari non dovrebbe dipendere dal database, ma probabilmente quella funzionale lo farà. A meno che la vostra applicazione non abbia esigenze particolari probabilmente potete rimpiazzare il classico MySql con un <strong>sqlite per l&#8217;ambiente di test.</strong> Questa dovrebbe già essere la vostra situazione se siete abituati ad usare <a title="LiipFunctioanlTestBundle" href="https://github.com/liip/LiipFunctionalTestBundle" target="_blank">LiipFunctionalTestBundle</a>. Sqlite prevede la possibilità di creare il database direttamente in memoria (usando <strong>:memory:</strong> come dsn) ma questo approccio<strong> introduce degli svantaggi</strong> (non è possibile mantenere il db tra processi diversi ad esempio). Utilizzando un <strong>normale db sqlite creato all&#8217;interno di un FS RAM</strong> si ottiene un db persistente (può essere utile per debug oppure ottimizzazioni particolari) ma in ram.</p>
<p>Metto nell&#8217;elenco delle cose che tipicamente mi piace<strong> spostare in RAM</strong> anche <strong>cache e log</strong> perché sono gli altri due componenti che<strong> richiedono maggiori accessi a disco</strong> e che, tipicamente, <strong>non mi interessa mantenere</strong> nel tempo. Sono quindi candidati ideali per finire in RAM, <strong>sollevando il mio disco da inutile lavoro</strong>.</p>
<p>Per creare un RAM Disk su OSX basta lanciare il comando:</p>
<pre>diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://1165430`</pre>
<p>Che creerà una nuova partizione &#8220;ramdisk&#8221; disponibile in /Volumes.</p>
<p>Su macchine linux probabilmente la stessa cosa si può ottenere con un mount (<em><strong>non ho verificato questo comando</strong></em>):</p>
<pre>mount -t tmpfs -o size=512M tmpfs /tmp/ram/</pre>
<p>Per quanto riguarda sistemi windows invece non sono abbastanza ferrato da dare suggerimenti, ma sono pronto a scommettere che ci sia qualche utility disponibile per ottenere lo stesso risultato.</p>
<p>La quantità di spazio necessario dipende dalle vostre esigenze ma probabilmente qualche centinaio di MB saranno sufficienti.</p>
<p>Una volta creato il RAM Disk è necessario <strong>configurare Symfony</strong> per utilizzarlo per caching e logging. In Symfony2 la cosa <strong>è particolarmente semplice</strong> visto che il componente Kernel espone <strong>due parametri di configurazione</strong> proprio per questo, <strong>che basterà personalizzare</strong> (ad esempio nel parameters.ini):</p>
<ul>
<li>kernel.logs_dir</li>
<li>kernel.cache_dir</li>
</ul>
<p><em>In Symfony1 la stessa cosa dovrebbe essere fattibile modificando i parametri sf_cache_dir e sf_log_dir.</em></p>
<p>&nbsp;</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/586/velocizzare-i-test-usando-un-ram-disk/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/V921YKzROprJApS-XSqmXmSaOGc/0/da"><img src="http://feedads.g.doubleclick.net/~a/V921YKzROprJApS-XSqmXmSaOGc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V921YKzROprJApS-XSqmXmSaOGc/1/da"><img src="http://feedads.g.doubleclick.net/~a/V921YKzROprJApS-XSqmXmSaOGc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=sBtQMDY2DHo:5oG1Urygl-Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=sBtQMDY2DHo:5oG1Urygl-Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=sBtQMDY2DHo:5oG1Urygl-Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=sBtQMDY2DHo:5oG1Urygl-Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=sBtQMDY2DHo:5oG1Urygl-Q:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/586/velocizzare-i-test-usando-un-ram-disk/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/586/velocizzare-i-test-usando-un-ram-disk/</feedburner:origLink></item>
		<item>
		<title>Documentazione ufficiale italiana di Symfony 2.0</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/O9SV5W-YmwU/</link>
		<comments>http://www.symfony.it/articoli/577/documentazione-ufficiale-italiana-di-symfony-2-0/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 15:07:16 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[documentazione]]></category>
		<category><![CDATA[symfony2]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=577</guid>
		<description><![CDATA[Il team di traduzione italiano, ancora una volta, è riuscito a tradurre per primo la corposa documentazione di Symfony2, che ora è finalmente disponibile sul sito ufficiale. Ci sono ancora alcuni dettagli da definire, come per esempio i collegamenti nel menù non ancora tradotti, ma ci stanno lavorando. Nel frattempo, grazie al contributo di Vittore [...]]]></description>
			<content:encoded><![CDATA[<p>Il team di traduzione italiano, ancora una volta, è riuscito a tradurre per primo la corposa documentazione di Symfony2, che ora è finalmente <a href="http://symfony.com/it/doc/current/book/index.html" title="documentazione italiana di Symfony2">disponibile sul sito ufficiale</a>. Ci sono ancora alcuni dettagli da definire, come per esempio i collegamenti nel menù non ancora tradotti, ma ci stanno lavorando. Nel frattempo, grazie al contributo di Vittore Zen, è anche disponibile il <a href="http://www.zen.pn.it/Symfony2documentation.pdf" title="documentazione italiana di Symfony2 in PDF">file PDF</a> della medesima documentazione.<br />
<strong>AGGIORNAMENTO</strong>: un PDF ufficiale, anche separato per sezioni, è ora disponibile in Italiano sul <a href="http://symfony.com/doc/current/index.html#offline">sito ufficiale</a>.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/577/documentazione-ufficiale-italiana-di-symfony-2-0/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/5WHR0TscARuN7Ak1-0PQQvS6ahI/0/da"><img src="http://feedads.g.doubleclick.net/~a/5WHR0TscARuN7Ak1-0PQQvS6ahI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5WHR0TscARuN7Ak1-0PQQvS6ahI/1/da"><img src="http://feedads.g.doubleclick.net/~a/5WHR0TscARuN7Ak1-0PQQvS6ahI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=O9SV5W-YmwU:Qz4qk7XPiPY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=O9SV5W-YmwU:Qz4qk7XPiPY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=O9SV5W-YmwU:Qz4qk7XPiPY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=O9SV5W-YmwU:Qz4qk7XPiPY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=O9SV5W-YmwU:Qz4qk7XPiPY:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/577/documentazione-ufficiale-italiana-di-symfony-2-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/577/documentazione-ufficiale-italiana-di-symfony-2-0/</feedburner:origLink></item>
		<item>
		<title>Symfony Live 2012</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/ODFc0yjkYoc/</link>
		<comments>http://www.symfony.it/articoli/571/symfony-live-2012/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 10:29:30 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[eventi]]></category>
		<category><![CDATA[sflive]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=571</guid>
		<description><![CDATA[È stato appena annunciato su twitter che l&#8217;edizione 2012 della nota conferenza Symfony Live si terrà un po&#8217; più tardi, a giugno, esattamente il 7 e l&#8217;8, con la consueta giornata di workshop il giorno precedente e un hacking day il giorno successivo. Speriamo di vedere presto aperto il call for paper!]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.hugohamon.com/images/logos/logo_sf_live.png" alt="sflive" class="alignleft" /> È stato appena <a href="https://twitter.com/#!/symfony_live/status/155217821884891137">annunciato su twitter</a> che l&#8217;edizione 2012 della nota conferenza Symfony Live si terrà un po&#8217; più tardi, a giugno, esattamente il 7 e l&#8217;8, con la consueta giornata di workshop il giorno precedente e un hacking day il giorno successivo. Speriamo di vedere presto aperto il call for paper!</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/571/symfony-live-2012/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/XAyBYd35RZj0jybVn4ZLCE5jtHk/0/da"><img src="http://feedads.g.doubleclick.net/~a/XAyBYd35RZj0jybVn4ZLCE5jtHk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XAyBYd35RZj0jybVn4ZLCE5jtHk/1/da"><img src="http://feedads.g.doubleclick.net/~a/XAyBYd35RZj0jybVn4ZLCE5jtHk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ODFc0yjkYoc:eFYh7mpqPEU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ODFc0yjkYoc:eFYh7mpqPEU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=ODFc0yjkYoc:eFYh7mpqPEU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ODFc0yjkYoc:eFYh7mpqPEU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=ODFc0yjkYoc:eFYh7mpqPEU:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/571/symfony-live-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/571/symfony-live-2012/</feedburner:origLink></item>
		<item>
		<title>Utilizzare le Estensioni di Doctrine in progetti symfony2</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/IgQtTLvg6OU/</link>
		<comments>http://www.symfony.it/articoli/555/symfony2-doctrine-extensions/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 08:30:08 +0000</pubDate>
		<dc:creator>Francesco Tassi</dc:creator>
				<category><![CDATA[bundle]]></category>
		<category><![CDATA[doctrine]]></category>
		<category><![CDATA[documentazione]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=555</guid>
		<description><![CDATA[Doctrine prevede un set di eventi che permettono di modificarne ed estenderne il comportamento. Tramite l&#8217;utilizzo di questi eventi è possibile implementare nuove funzionalità non previste dall&#8217; ORM. Sfruttando questa potenzialità è stato creato un set di estensioni per mettere a disposizione degli sviluppatori alcuni comportamenti di uso comune. L&#8217;integrazione all&#8217;interno di symfony2 è facilitata [...]]]></description>
			<content:encoded><![CDATA[<p>Doctrine prevede un set di <strong>eventi</strong> che permettono di modificarne ed <strong>estenderne il comportamento</strong>. Tramite l&#8217;utilizzo di questi eventi è possibile <strong>implementare nuove funzionalità</strong> non previste dall&#8217; ORM. Sfruttando questa potenzialità è stato creato un <a title="DoctrineExtensions" href="https://github.com/l3pp4rd/DoctrineExtensions">set di estensioni</a> per mettere a disposizione degli sviluppatori alcuni <strong>comportamenti di uso comune</strong>. L&#8217;integrazione all&#8217;interno di symfony2 è facilitata dal bundle <strong><a title="DoctrineExtensionsBundle" href="https://github.com/stof/StofDoctrineExtensionsBundle">StofDoctrineExtensionsBundle</a></strong>.</p>
<p><span id="more-555"></span></p>
<p>Il <a title="DoctrineExtensions" href="https://github.com/l3pp4rd/DoctrineExtensions">repository DoctrineExtensions</a> prevede queste estensioni:</p>
<ul>
<li>Translatable</li>
<li>Sluggable</li>
<li>Timestampable</li>
<li>Loggable</li>
<li>Tree</li>
<li>Sortable</li>
</ul>
<p>I nomi sono piuttosto indicativi riguardo allo scopo di ognuna. Chi viene da symfony 1.x e doctrine 1.x ricorderà certamente una serie di plugin *ActAs* che avevano esattamente lo stesso scopo di queste estensioni.</p>
<p>Come detto, per utilizzare questi comportamenti in progetti symfony2, è possibile usufruire del bundle<strong> <a title="DoctrineExtensionsBundle" href="https://github.com/stof/StofDoctrineExtensionsBundle">StofDoctrineExtensionsBundle</a> </strong>che mette a disposizione listener e configurazioni varie per semplificare l&#8217;integrazione all&#8217;interno del progetto.</p>
<p><del>In questo momento il bundle non sembra gestire l&#8217;estensione Sortable ma non ho ancora verificato se si tratta di una carenza di documentazione o di una reale mancanza nell&#8217;implementazione dell&#8217;estensione.</del></p>
<p>Nei prossimi post spiegherò come configurare e utilizzare correttamente ognuna delle estensioni disponibili con il bundle.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/555/symfony2-doctrine-extensions/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/YYD41Io8edQMLYG26gU3fTVZXaE/0/da"><img src="http://feedads.g.doubleclick.net/~a/YYD41Io8edQMLYG26gU3fTVZXaE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YYD41Io8edQMLYG26gU3fTVZXaE/1/da"><img src="http://feedads.g.doubleclick.net/~a/YYD41Io8edQMLYG26gU3fTVZXaE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=IgQtTLvg6OU:u4742-1iYdk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=IgQtTLvg6OU:u4742-1iYdk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=IgQtTLvg6OU:u4742-1iYdk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=IgQtTLvg6OU:u4742-1iYdk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=IgQtTLvg6OU:u4742-1iYdk:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/555/symfony2-doctrine-extensions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/555/symfony2-doctrine-extensions/</feedburner:origLink></item>
		<item>
		<title>Abilitare estensioni aggiuntive per Twig</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/mW6gfSz5UjQ/</link>
		<comments>http://www.symfony.it/articoli/540/abilitare-estensioni-twig/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 21:35:19 +0000</pubDate>
		<dc:creator>Francesco Tassi</dc:creator>
				<category><![CDATA[symfony2]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[twig]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=540</guid>
		<description><![CDATA[Twig è il template engine integrato in Symfony2. Nella Standard Edition oltre al core di Twig è presente anche il repository delle estensioni. Le funzionalità di queste estensioni non sono disponibili automaticamente, è richiesto all&#8217;utente di attivarle manualmente, vediamo come.Il repository ufficiale delle estensioni di twig ne contiene, al momento, 4: Debug I18n Intl Text [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twig.sensiolabs.org/">Twig</a> è il template engine integrato in Symfony2. Nella <a href="http://symfony.com/download">Standard Edition</a> oltre al core di Twig è presente anche il repository <a href="https://github.com/fabpot/Twig-extensions">delle estensioni</a>. <strong>Le funzionalità di queste estensioni non sono disponibili automaticamente, è richiesto all&#8217;utente di attivarle</strong> manualmente, vediamo come.<span id="more-540"></span>Il repository ufficiale delle estensioni di twig ne contiene, al momento, 4:</p>
<ul>
<li>Debug</li>
<li>I18n</li>
<li>Intl</li>
<li>Text</li>
</ul>
<p>Per default questo viene clonato all&#8217;interno della dir &#8220;vendor/twig-extensions&#8221;, potete identificare facilmente la posizione dei sorgenti tramite il file di autoload (app/autoload.php).</p>
<p><strong>Abilitare</strong> una di queste estensioni richiede semplicemente di <strong>taggare</strong> il servizio corrispondente con il <strong>tag twig.extension</strong> tramite la configurazione del DIC.</p>
<p>Volendo ad esempio abilitare l&#8217;estensione Text (Twig_Extensions_Extension_Text) sarà sufficiente aggiungere al file config.yml, all&#8217;interno del blocco &#8220;services&#8221;, queste righe:</p>

<div class="wp_syntax"><div class="code"><pre class="yml" style="font-family:monospace;">twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension }</pre></div></div>

<p>A questo punto le funzionalità dell&#8217;estensione sono disponibili all&#8217;interno dei nostri template.</p>
<p>Delle 4 estensioni disponibili <strong>Debug</strong> è l&#8217;unica che <strong>merita una nota particolare</strong>, almeno per quanto riguarda l&#8217;installazione. Questa estensione infatti, anche se abilitata, <strong>si attiva solamente se twig è in modalità debug</strong>. In configurazione predefinita lo stato di debug di twig viene ereditato dall&#8217; environment di Symfony, questo significa che avrete a disposizione informazioni di debug solamente utilizzando l&#8217;environment dev.</p>
<p>Ovviamente tramite file di configurazione siete liberi di attivare o disattivare il debug di twig per ogni ambiente, aggiungendo o modificando la chiave &#8220;debug&#8221; all&#8217;intero del blocco twig in config.yml.</p>
<p>Per i dettagli di funzionamento delle singole estensioni vi rimando alle relative documentazioni.  Anche in questo caso però debug merita una piccola nota rispetto alle altre. Attivando il debug su un intero template infatti twig cercherà di fare un var_dump di tutte le variabili presenti. Questo vuol dire, senza xdebug attivo, che è molto probabile che il rendering vada in timeout o in memory_limit. Una buona pratica è quella di attivare il debug solo per le variabili che volete veramente ispezionare.</p>
<p>Queste estensioni non aggiungono funzionalità incredibili a twig, ma offrono comunque delle utility interessanti. <strong>In particolare ho trovato utili Text e Debug</strong>, ma credo che in futuro guadagneremo altre estensioni che andranno a fare da complemento al già ottimo template engine.</p>
<p>Nel caso aveste qualche buona idea per un&#8217;estensione non dimenticatevi di <a href="https://github.com/fabpot/Twig-extensions">mandare la vostra pull request</a>.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/540/abilitare-estensioni-twig/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/W3eFed5v9l01WmYAmO7e7_lwHfA/0/da"><img src="http://feedads.g.doubleclick.net/~a/W3eFed5v9l01WmYAmO7e7_lwHfA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/W3eFed5v9l01WmYAmO7e7_lwHfA/1/da"><img src="http://feedads.g.doubleclick.net/~a/W3eFed5v9l01WmYAmO7e7_lwHfA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=mW6gfSz5UjQ:eTOjADxP-Ig:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=mW6gfSz5UjQ:eTOjADxP-Ig:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=mW6gfSz5UjQ:eTOjADxP-Ig:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=mW6gfSz5UjQ:eTOjADxP-Ig:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=mW6gfSz5UjQ:eTOjADxP-Ig:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/540/abilitare-estensioni-twig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/540/abilitare-estensioni-twig/</feedburner:origLink></item>
		<item>
		<title>Un piccolo problema con Symfony2 e PHPUnit 3.6</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/lvImipTecYM/</link>
		<comments>http://www.symfony.it/articoli/538/un-piccolo-problema-con-symfony2-e-phpunit-3-6/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 08:48:20 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[bugs]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[PHPUnit]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=538</guid>
		<description><![CDATA[Se usate Symfony2 (al momento fino alla versione 2.0.5) e aggiornate PHPUnit alla recente versione 3.6, probabilmente avrete delle eccezioni in test che fino a un attimo prima erano verdi. Il bug è noto e spiegato in dettaglio sul repo di PHPUnit, in cui si trova anche un semplice, ma efficace, rimedio, in attesa che [...]]]></description>
			<content:encoded><![CDATA[<p>Se usate Symfony2 (al momento fino alla versione 2.0.5) e aggiornate PHPUnit alla recente versione 3.6, probabilmente avrete delle eccezioni in test che fino a un attimo prima erano verdi.<br />
Il bug è noto e spiegato in dettaglio sul <a href="https://github.com/sebastianbergmann/phpunit/issues/390">repo di PHPUnit</a>, in cui si trova anche un semplice, ma efficace, rimedio, in attesa che si mettano d&#8217;accordo su chi deve fixare cosa <img src='http://www.symfony.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/538/un-piccolo-problema-con-symfony2-e-phpunit-3-6/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/H40Fv5CjLiSALrG7ysSJrSA8eGc/0/da"><img src="http://feedads.g.doubleclick.net/~a/H40Fv5CjLiSALrG7ysSJrSA8eGc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/H40Fv5CjLiSALrG7ysSJrSA8eGc/1/da"><img src="http://feedads.g.doubleclick.net/~a/H40Fv5CjLiSALrG7ysSJrSA8eGc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=lvImipTecYM:EvyPbWex8U8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=lvImipTecYM:EvyPbWex8U8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=lvImipTecYM:EvyPbWex8U8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=lvImipTecYM:EvyPbWex8U8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=lvImipTecYM:EvyPbWex8U8:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/538/un-piccolo-problema-con-symfony2-e-phpunit-3-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/538/un-piccolo-problema-con-symfony2-e-phpunit-3-6/</feedburner:origLink></item>
		<item>
		<title>Usare Symfony2 con subversion</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/fADh0tNyveE/</link>
		<comments>http://www.symfony.it/articoli/520/usare-symfony2-con-subversion/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 14:39:54 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[symfony2]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=520</guid>
		<description><![CDATA[Edit: questo post è stato superato dalla pubblicazione di questa guida. Viene lasciato sul blog per motivi storici, ma si consiglia di seguire quanto spiegato nella guida suddetta. Sappiamo che Symfony2 predilige l&#8217;utilizzo di git come sistema di versionamento. Tuttavia, potrebbero esserci tutta una serie di ragioni per cui un progetto abbia bisogno di subversion: [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Edit</strong>: questo post è stato superato dalla pubblicazione di <a href="http://docs.symfony.it/cookbook/workflow/new_project_svn.html" title="Come creare e memorizzare un progetto Symfony2 in Subversion">questa guida</a>. Viene lasciato sul blog per motivi storici, ma si <em>consiglia di seguire quanto spiegato nella guida suddetta</em>.</p>
<hr />
<p>Sappiamo che Symfony2 predilige l&#8217;utilizzo di git come sistema di versionamento. Tuttavia, potrebbero esserci tutta una serie di ragioni per cui un progetto abbia bisogno di subversion: la stessa documentazione ufficiale ne fa <a href="http://docs.symfony.it/cookbook/workflow/new_project_git.html">un accenno</a>, purtroppo senza addentrarsi nei dettagli.<br />
Ecco qui cosa fare per avere un progetto Symfony2 funzionante con svn. Diamo per scontato di trovarci un una cartella in cui è stato fatto un checkout di un repository e in cui la cartella <em>vendor</em> di Symfony2 non sia presente (per esempio, perché il repository contiene uno scheletro di progetto simile a quello della <a href="http://symfony.com/download">Standard Edition</a> senza venditori).<br />
La prima cosa da fare è aggiungere i vari bundle e le altre dipendenza in externals:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> vendor
<span style="color: #c20cb9; font-weight: bold;">svn</span> pe <span style="color: #c20cb9; font-weight: bold;">svn</span>:externals vendor</pre></div></div>

<p>Nella finestra dell&#8217;editor, inserire le seguenti righe:</p>

<div class="wp_syntax"><div class="code"><pre class="vim" style="font-family:monospace;">symfony              http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>symfony<span style="color: #000000;">/</span>symfony<span style="color: #000000;">.</span>git
twig                 http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>fabpot<span style="color: #000000;">/</span>Twig<span style="color: #000000;">.</span>git
monolog              http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>Seldaek<span style="color: #000000;">/</span>monolog<span style="color: #000000;">.</span>git
doctrine<span style="color: #000000;">-</span>common      http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>doctrine<span style="color: #000000;">/</span>common<span style="color: #000000;">.</span>git
doctrine<span style="color: #000000;">-</span>dbal        http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>doctrine<span style="color: #000000;">/</span>dbal<span style="color: #000000;">.</span>git
doctrine             http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>doctrine<span style="color: #000000;">/</span>doctrine2<span style="color: #000000;">.</span>git
swiftmailer          http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>swiftmailer<span style="color: #000000;">/</span>swiftmailer<span style="color: #000000;">.</span>git
assetic              http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>kriswallsmith<span style="color: #000000;">/</span>assetic<span style="color: #000000;">.</span>git
twig<span style="color: #000000;">-</span>extensions      http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>fabpot<span style="color: #000000;">/</span>Twig<span style="color: #000000;">-</span>extensions<span style="color: #000000;">.</span>git
metadata             http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>schmittjoh<span style="color: #000000;">/</span>metadata<span style="color: #000000;">.</span>git
&nbsp;
doctrine<span style="color: #000000;">-</span>extensions  http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>l3pp4rd<span style="color: #000000;">/</span>DoctrineExtensions<span style="color: #000000;">.</span>git
&nbsp;
bundles<span style="color: #000000;">/</span>Stof<span style="color: #000000;">/</span>DoctrineExtensionsBundle       http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>stof<span style="color: #000000;">/</span>StofDoctrineExtensionsBundle<span style="color: #000000;">.</span>git
&nbsp;
bundles<span style="color: #000000;">/</span>Sensio<span style="color: #000000;">/</span>Bundle<span style="color: #000000;">/</span>FrameworkExtraBundle  http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>sensio<span style="color: #000000;">/</span>SensioFrameworkExtraBundle<span style="color: #000000;">.</span>git
bundles<span style="color: #000000;">/</span>Sensio<span style="color: #000000;">/</span>Bundle<span style="color: #000000;">/</span>DistributionBundle    http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>sensio<span style="color: #000000;">/</span>SensioDistributionBundle<span style="color: #000000;">.</span>git
bundles<span style="color: #000000;">/</span>Sensio<span style="color: #000000;">/</span>Bundle<span style="color: #000000;">/</span>GeneratorBundle       http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>sensio<span style="color: #000000;">/</span>SensioGeneratorBundle<span style="color: #000000;">.</span>git
bundles<span style="color: #000000;">/</span>JMS<span style="color: #000000;">/</span>SecurityExtraBundle             http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>schmittjoh<span style="color: #000000;">/</span>JMSSecurityExtraBundle<span style="color: #000000;">.</span>git
&nbsp;
cg<span style="color: #000000;">-</span>library                                  http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>schmittjoh<span style="color: #000000;">/</span>cg<span style="color: #000000;">-</span>library<span style="color: #000000;">.</span>git
bundles<span style="color: #000000;">/</span>JMS<span style="color: #000000;">/</span>AopBundle                       http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>schmittjoh<span style="color: #000000;">/</span>JMSAopBundle<span style="color: #000000;">.</span>git
&nbsp;
symfony<span style="color: #000000;">/</span>src<span style="color: #000000;">/</span>Symfony<span style="color: #000000;">/</span>Bundle<span style="color: #000000;">/</span>AsseticBundle    http<span style="color: #000000;">://</span>svn<span style="color: #000000;">.</span>github<span style="color: #000000;">.</span><span style="color: #668080;">com</span><span style="color: #000000;">/</span>symfony<span style="color: #000000;">/</span>AsseticBundle<span style="color: #000000;">.</span>git</pre></div></div>

<p>Si noti che sono stati aggiunti, oltre ai bundle di base, alcuni altri bundle utili.<br />
Il problema di questo approccio è che github, almeno attualmente, non supporta il checkout di tag o branch tramite svn. Per questo le versioni dei vari venditori importate saranno quelle dei rispettivi <em>master</em>, quindi le versioni in sviluppo. Se quindi si riscontrano errori o eccezioni dovuti per esempio a metodi mancanti, si verifichi che il file <code>app/bootstrap.php.cache</code> contenga tutto ciò che è necessario. Ovviamente, va adattato anche il file relativo all&#8217;autoload:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// app/autoload.php</span>
<span style="color: #000088;">$loader</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerNamespaces</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'Symfony'</span>          <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>__DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/symfony/src'</span><span style="color: #339933;">,</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/bundles'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Sensio'</span>           <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/bundles'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'JMS'</span>              <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/bundles'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'CG'</span>               <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/cg-library/src'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Doctrine\\Common'</span> <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/doctrine-common/lib'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Doctrine\\DBAL'</span>   <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/doctrine-dbal/lib'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Doctrine'</span>         <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/doctrine/lib'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Monolog'</span>          <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/monolog/src'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Assetic'</span>          <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/assetic/src'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Metadata'</span>         <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/metadata/src'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Gedmo'</span>            <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/doctrine-extensions/lib'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'Stof'</span>             <span style="color: #339933;">=&gt;</span> __DIR__<span style="color: #339933;">.</span><span style="color: #0000ff;">'/../vendor/bundles'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>e anche quello relativo all&#8217;attivazione dei bundle:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// app/AppKernel.php</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> registerBundles<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$bundles</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\FrameworkBundle\FrameworkBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\SecurityBundle\SecurityBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\TwigBundle\TwigBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\MonologBundle\MonologBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\DoctrineBundle\DoctrineBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\AsseticBundle\AsseticBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> JMS\AopBundle\JMSAopBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> JMS\SecurityExtraBundle\JMSSecurityExtraBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #000000; font-weight: bold;">new</span> Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
    <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getEnvironment</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'dev'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$bundles</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Symfony\Bundle\WebProfilerBundle\WebProfilerBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$bundles</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$bundles</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Aggiornamento: si può adattare facilmente <code>app/bootstrap.php.cache</code> con il comando</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">php .<span style="color: #000000; font-weight: bold;">/</span>vendor<span style="color: #000000; font-weight: bold;">/</span>bundles<span style="color: #000000; font-weight: bold;">/</span>Sensio<span style="color: #000000; font-weight: bold;">/</span>Bundle<span style="color: #000000; font-weight: bold;">/</span>DistributionBundle<span style="color: #000000; font-weight: bold;">/</span>Resources<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>build_bootstrap.php</pre></div></div>

<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/520/usare-symfony2-con-subversion/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/DIApZrAmHe_lrDd23wiJTENP6kw/0/da"><img src="http://feedads.g.doubleclick.net/~a/DIApZrAmHe_lrDd23wiJTENP6kw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DIApZrAmHe_lrDd23wiJTENP6kw/1/da"><img src="http://feedads.g.doubleclick.net/~a/DIApZrAmHe_lrDd23wiJTENP6kw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=fADh0tNyveE:AFRyMbvia88:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=fADh0tNyveE:AFRyMbvia88:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=fADh0tNyveE:AFRyMbvia88:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=fADh0tNyveE:AFRyMbvia88:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=fADh0tNyveE:AFRyMbvia88:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/520/usare-symfony2-con-subversion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/520/usare-symfony2-con-subversion/</feedburner:origLink></item>
		<item>
		<title>La documentazione italiana di Symfony2</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/EVCz80wSxRY/</link>
		<comments>http://www.symfony.it/articoli/511/la-documentazione-italiana-di-symfony2/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 14:06:56 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[documentazione]]></category>
		<category><![CDATA[symfony2]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=511</guid>
		<description><![CDATA[Tradizionalmente, la nostra comunità è sempre stata molto attiva nella traduzione della documentazione. Questo ci ha permesso di avere a disposizione tutti i documenti relativi a symfony 1.x tradotta nella nostra lingua. Ora è arrivato il momento di lavorare sulla corposa documentazione di Symfony2. Le modalità, come forse saprete, sono molto cambiate rispetto al passato, [...]]]></description>
			<content:encoded><![CDATA[<p>Tradizionalmente, la nostra comunità è sempre stata molto attiva nella traduzione della documentazione. Questo ci ha permesso di avere a disposizione tutti i documenti relativi a symfony 1.x tradotta nella nostra lingua.<br />
Ora è arrivato il momento di lavorare sulla corposa documentazione di Symfony2.<br />
Le modalità, come forse saprete, sono molto cambiate rispetto al passato, soprattutto per la decisione di non ospitare sul sito ufficiale nessuna traduzione che non sia completa e aggiornata. Per questo abbiamo deciso di ospitare temporaneamente la versione nostrana qui su symfony.it, precisamente su <a href="http://docs.symfony.it" title="Documentazione italiana di Symfony2">docs.symfony.it</a>, in modo da renderla immediatamente disponibile a tutti.<br />
Qualunque contribuito è ben accetto: la gestione del team dei traduttori è sul nostro gruppo Google, in un <a href="https://groups.google.com/d/msg/symfony-it/_jU-mv2OTi8/dET7ejoW30sJ">apposito topic</a>.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/511/la-documentazione-italiana-di-symfony2/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/IWtv3kZXc2zNE7olM-KBmdSQ4mw/0/da"><img src="http://feedads.g.doubleclick.net/~a/IWtv3kZXc2zNE7olM-KBmdSQ4mw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IWtv3kZXc2zNE7olM-KBmdSQ4mw/1/da"><img src="http://feedads.g.doubleclick.net/~a/IWtv3kZXc2zNE7olM-KBmdSQ4mw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=EVCz80wSxRY:wpSASgvEFJE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=EVCz80wSxRY:wpSASgvEFJE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=EVCz80wSxRY:wpSASgvEFJE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=EVCz80wSxRY:wpSASgvEFJE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=EVCz80wSxRY:wpSASgvEFJE:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/511/la-documentazione-italiana-di-symfony2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/511/la-documentazione-italiana-di-symfony2/</feedburner:origLink></item>
		<item>
		<title>Symfony 2.0, finalmente!</title>
		<link>http://feedproxy.google.com/~r/Symfony-it/~3/ZX6a6puQj6s/</link>
		<comments>http://www.symfony.it/articoli/507/symfony-2-0-finalmente/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 15:35:46 +0000</pubDate>
		<dc:creator>Massimiliano Arione</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[symfony2]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.symfony.it/?p=507</guid>
		<description><![CDATA[Dopo un parto veramente travagliato, è finalmente nato oggi Symfony 2.0! L&#8217;annuncio è stato dato sul blog ufficiale, al quale rimandiamo per i numerosi dettagli. Ora sarebbe quasi il caso di riprendere la traduzione in Italiano del manuale, che era stata volenterosamente avviata alcuni mesi fa e poi purtroppo abbandonata. Ogni contributo è ben accetto.]]></description>
			<content:encoded><![CDATA[<p>Dopo un parto veramente travagliato, è finalmente nato oggi Symfony 2.0!<br />
L&#8217;annuncio è stato dato sul <a href="http://symfony.com/blog/symfony-2-0">blog ufficiale</a>, al quale rimandiamo per i numerosi dettagli.<br />
Ora sarebbe quasi il caso di riprendere la <a href="https://github.com/symfony/symfony-docs">traduzione in Italiano del manuale</a>, che era stata volenterosamente avviata alcuni mesi fa e poi purtroppo abbandonata. Ogni contributo è ben accetto.</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://www.symfony.it/articoli/507/symfony-2-0-finalmente/' layout='default' show_faces='true' width='400' action='like' colorscheme='light' send='false' /></div>
<p><a href="http://feedads.g.doubleclick.net/~a/olG9zjUV1whGEvLEBcv5icR809s/0/da"><img src="http://feedads.g.doubleclick.net/~a/olG9zjUV1whGEvLEBcv5icR809s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/olG9zjUV1whGEvLEBcv5icR809s/1/da"><img src="http://feedads.g.doubleclick.net/~a/olG9zjUV1whGEvLEBcv5icR809s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ZX6a6puQj6s:rtaombXaFZ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Symfony-it?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ZX6a6puQj6s:rtaombXaFZ8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=ZX6a6puQj6s:rtaombXaFZ8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Symfony-it?a=ZX6a6puQj6s:rtaombXaFZ8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Symfony-it?i=ZX6a6puQj6s:rtaombXaFZ8:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.symfony.it/articoli/507/symfony-2-0-finalmente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.symfony.it/articoli/507/symfony-2-0-finalmente/</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->

