<?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>Hello World:</title>
	<atom:link href="http://razorblade.netsons.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://razorblade.netsons.org</link>
	<description>Programmazione web e oltre: php5, Zend Framework, jQuery, Actionscript 3.0, Sandy 3D Engine e altro</description>
	<lastBuildDate>Fri, 28 Aug 2009 18:23:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Neobazaar annunci gratuiti: esempio di una applicazione sviluppata con Zend Framework</title>
		<link>http://razorblade.netsons.org/2009/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework/</link>
		<comments>http://razorblade.netsons.org/2009/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 18:09:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[neobazar]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend_cache]]></category>
		<category><![CDATA[zend_lucene]]></category>
		<category><![CDATA[zend_route]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=88</guid>
		<description><![CDATA[<h1>Nasce Neobazaar.com, annunci gratuiti in Italia: interamente sviluppato con Zend Framework</h1>
<p>E' un po' che non scrivo più su questo mio blog, purtroppo negli ultimi mesi non ho avuto tempo per scrivere nuovi articoli e/o tutorial. Uno dei progetti che più mi ha tenuto impegnato è <a href='http://www.neobazaar.com' title='Neobazaar.com: annunci gratuiti in Italia'>Neobazaar.com</a>, che allo stato attuale dei lavori si può considerare ad un buon 95% di completamento </p><a href="http://razorblade.netsons.org/2009/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework">[...] Continua</a>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/' rel='bookmark' title='Permanent Link: Zend Framework: gestione dei moduli ed esempio modulo di amministrazione'>Zend Framework: gestione dei moduli ed esempio modulo di amministrazione</a> <small>Come usare Zend_Layout per la gestione dei moduli In quest'articolo...</small></li><li><a href='http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/' rel='bookmark' title='Permanent Link: Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )'>Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )</a> <small>Trasformiamo il nostro bootstrap in una classe php Il codice...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h1>Nasce Neobazaar.com, annunci gratuiti in Italia: interamente sviluppato con Zend Framework</h1>
<p>E&#8217; un po&#8217; che non scrivo più su questo mio blog, purtroppo negli ultimi mesi non ho avuto tempo per scrivere nuovi articoli e/o tutorial. Uno dei progetti che più mi ha tenuto impegnato è <a href='http://www.neobazaar.com' title='Neobazaar.com: annunci in Italia'>Neobazaar.com</a>, che allo stato attuale dei lavori si può considerare ad un buon 95% di completamento.</p>
<p><a href='http://www.neobazaar.com' title='Neobazaar.com: annunci in Italia'>Neobazaar.com</a> è il classico sito di annunci gratuiti, chiunque può inserire un annuncio, e se lo si desidera, ci si iscrive, con la possibilità di poter gestire i propri annunci tramite un pannello di controllo.</p>
<p>L&#8217;annuncio rimane online per i 30 giorni successivi alla pubblicazione, dopodichè viene eliminato automaticamente.</p>
<p>In questo articolo voglio descrivervi alcune delle caratteristiche tecniche presenti in questo mio progetto, ed eventualmente rispondere alle vostre domande/consigli/critiche in merito.</p>
<h2>SEO: search engine optimization</h2>
<p>Sono diversi gli aspetti a cui ho posto attenzione per quanto riguarda l&#8217;ottimizzazione per i motori di ricerca, una della quali è la risposta alle richieste da parte del server, ovvero facendo in modo che il tempo di attesa per la restituzione del documento html sia il minore possibile.</p>
<p>A questo scopo sono due i componenti di Zend Framework che si sono resi molto utili: <strong>Zend_Search_Lucene</strong> e <strong>Zend_Cache</strong>.</p>
<p><strong>Zend_Search_Lucene</strong>, come già descritto in altri articoli in questo blog, è un motore di ricerca su filesystem, che ci permette di liberare dall&#8217;onere delle ricerche il nostro database, ma non solo, possiamo recuperare i dati dei nostri documenti direttamente da esso.</p>
<p><strong>Zend_Cache</strong> è un altro utilissimo componente di Zend Framework, la sua utilità è di immagazzinare dei dati, presumibilmnete risultato di pesanti query o algoritmi, e riutilizzarli nelle successive richieste per tutto il tempo da noi indicato.</p>
<p>L&#8217;utilizzo combinato di questi due componenti nell&#8217;applicazione rende la restituzione del codice html estremamente veloce, caratteristica che oltre ad essere <u>potenzialmente</u> utile al fine dell&#8217;indicizzazione, è sicuramente gradita agli utenti ( che quindi non chiuderanno la pagina dopo il terzo secondo di vana attesa <img src='http://razorblade.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p><strong>Generazione dinamica dei tag title e description</strong>: come saprete, al fine dell&#8217;ottimizzazione, bisogna fare in modo di inserire in cima al documento le parole di maggior rilievo, ed ecco l&#8217;importanza del tag title. In neobazaar.com il contenuto del tag title è generato dinamicamente, dipendentemente dalla query ricercata, dalla categoria selezionata e dalla location in cui ci si trova. Il suo contenuto è ovviamente coerente al contenuto generale del documento. </p>
<p>Per quanto riguarda il tag description anch&#8217;esso è dinamico: sappiamo però che i meta, molto probabilmente, sono &#8216;ignorati&#8217; dai motori di ricerca al fine del posizionamento nelle serp, ma &#8216;description&#8217; è comunque utile, in quanto il suo contenuto sarà visualizzato nella serp dei motori di ricerca, ed avrà l&#8217;arduo compito di convincere l&#8217;utente a cliccare il proprio sito piuttosto che un altro.</p>
<p><strong>Routing</strong>: bisogna fare molta attenzione alle url del nostro sito internet, in quanto, pare sia uno degli elementi che i motori di ricerca esaminano al fine dell&#8217;indicizzazione e del posizionamento. Queste devono avere principalmente due caratteristiche: devono essere &#8217;statiche&#8217; e devono contenere le principali keyworks identificative del documento. </p>
<p>In <a href='http://www.neobazaar.com' title='Neobazaar.com: annunci in Italia'>Neobazaar.com</a>  ho posto molta attenzione al contenuto delle url: queste infatti sono sempre statiche ( dove per statiche si intendono senza variabili successive al carattere &#8216;?&#8217; e che magari terminino per &#8216;.html&#8217; ), sia che si effettui una ricerca, sia che si visiti una categoria o si visiti una pagina di contenuto.</p>
<p>Sulla questione delle &#8216;location&#8217; bisogna scrivere due righe: infatti <a href='http://www.neobazaar.com' title='Neobazaar.com: annunci in Italia'>Neobazaar.com</a> permette il filtraggio degli annunci al livello nazionale ( di default ), a livello regionale, provinciale e persino comunale ( questa caratteristica è tuttavia attualmente non disponibile ). </p>
<p>Il filtraggio è dato dal routing, la location è data dal nome del sottodominio: questo risultato è stato raggiunto concatenando la route di default di Zend Framework ( una Module Route ) con una Hostname Route</p>
<p>Inoltre il layout è oviamente, completamente tableless&#8230;</p>
<h2>Conclusioni</h2>
<p>E&#8217; ovvio che non ho elencato tutte le caratteristiche di <a href='http://www.neobazaar.com' title='Neobazaar.com: annunci in Italia'>Neobazaar.com</a>. Ho scritto questo post proprio per permettere a chi fosse interessato, di farmi delle domande, ed ovviamente, anche per fare un po&#8217; di sana pubblicità a questo sito in modo da poterlo testare con un minimo di traffico <img src='http://razorblade.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p>Quindi, spero di ricevere al più presto una vostra visita nonchè i vostri commenti qui di seguito!</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/' rel='bookmark' title='Permanent Link: Zend Framework: gestione dei moduli ed esempio modulo di amministrazione'>Zend Framework: gestione dei moduli ed esempio modulo di amministrazione</a> <small>Come usare Zend_Layout per la gestione dei moduli In quest'articolo...</small></li><li><a href='http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/' rel='bookmark' title='Permanent Link: Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )'>Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )</a> <small>Trasformiamo il nostro bootstrap in una classe php Il codice...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8.2 disponibile</title>
		<link>http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/</link>
		<comments>http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:17:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[1.8.2]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=87</guid>
		<description><![CDATA[La notizia è di 2 giorni fa, in ogni caso è disponibile la nuova versione di Zend Framework, qui di seguito il changelog completo:


    [ZF-6800]: testExceptionClassMap(Zend_Amf_TypeloaderTest)    

    [ZF-6799]: testAmf0TypedObjecDeserializedToNativePHPObjectException(Zend_Amf_RequestTest)    

    [ZF-6601]: Unable to send ArrayCollection as input argument from flex [...]


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/' rel='bookmark' title='Permanent Link: Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )'>Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )</a> <small>Trasformiamo il nostro bootstrap in una classe php Il codice...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>La notizia è di 2 giorni fa, in ogni caso è disponibile la nuova versione di Zend Framework, qui di seguito il changelog completo:</p>
<ul class="listato">
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6800"><br />
    [ZF-6800]</a>: testExceptionClassMap(Zend_Amf_TypeloaderTest)    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6799"><br />
    [ZF-6799]</a>: testAmf0TypedObjecDeserializedToNativePHPObjectException(Zend_Amf_RequestTest)    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6601"><br />
    [ZF-6601]</a>: Unable to send ArrayCollection as input argument from flex    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-5391"><br />
    [ZF-5391]</a>: Flash Media Server 3 &#8211; Zend Amf    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6609"><br />
    [ZF-6609]</a>: testInitializationShouldSkipModulesWithoutBootstraps(Zend_Application_Resource_ModulesTest) and testShouldReturnExecutedBootstrapsWhenComplete(Zend_Application_Resource_ModulesTest)    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6608"><br />
    [ZF-6608]</a>: Problem if /tmp Dir not readable    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6770"><br />
    [ZF-6770]</a>: Move the Table, Row, &amp; Rowset files for Zend_Db_Table unit tests into the _files directory    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6762"><br />
    [ZF-6762]</a>: wrong order in PHPDoc of _quoteIdentifierAs()    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-6662"><br />
    [ZF-6662]</a>: misspelling in Zend_Db_Adapter_Abstract: Zend_Db_Statment instead of Zend_Db_Statement    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-1816"><br />
    [ZF-1816]</a>: PostgreSQL: Incorrect sequence name quoting    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-5342"><br />
    [ZF-5342]</a>: Mysqli::__connect() forget to reset internal mysqli _connection object when connection failed    </li>
<li><a href="http://framework.zend.comhttp://framework.zend.com/issues/browse/ZF-3984"><br />
    [ZF-3984]</a>: connection control not sufficient in case of &#8220;Too many open links&#8221;.    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-2925"><br />
    [ZF-2925]</a>: Problem using join in Zend_Db_Table    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-5970"><br />
    [ZF-5970]</a>: Optimize Zend_Db_Table::find();    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-4167"><br />
    [ZF-4167]</a>: Zend_Db_Table_Row_Abstract does not properly rely on autoloading    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-3991"><br />
    [ZF-3991]</a>: Add possibility to change loader class    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-2798"><br />
    [ZF-2798]</a>: JOIN requires FROM otherwise it acts just like FROM    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6780"><br />
    [ZF-6780]</a>: Zend_Filter_Input doesn&#8217;t collect validation messages for different values in the specified field    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6765"><br />
    [ZF-6765]</a>: Zend_Filter_Input::_validateRule() iterates through provided fields when it&#8217;s not necessary    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6761"><br />
    [ZF-6761]</a>: Zend_Filter_Input does nothing if field is required and default values are provided for other fields but not for this field.    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6711"><br />
    [ZF-6711]</a>: Zend_Filter_Input skips ALLOW_EMPTY metacommand processing if rule refers several fields.    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6710"><br />
    [ZF-6710]</a>: Describe an ability to provide messages array for all specified validator    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6709"><br />
    [ZF-6709]</a>: Zend_Filter_Input doesn&#8217;t process messages -&gt; validators mapping correctly    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6708"><br />
    [ZF-6708]</a>: Zend_Filter_Input skips ALLOW_EMPTY metacommand processing if any validator is applied to the field    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-1912"><br />
    [ZF-1912]</a>: Message concurrency between options notEmptyMessage and  Zend_Validate_Alpha::STRING_EMPTY    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6714"><br />
    [ZF-6714]</a>: Zend_Decorator not exists.    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6607"><br />
    [ZF-6607]</a>: Problem with Zend_Soap_Wsdl class loading    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-3151"><br />
    [ZF-3151]</a>: The ZF is not able to use user-defined autoloaders for user-defined classes    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-2533"><br />
    [ZF-2533]</a>: Zend internally doesn&#8217;t use user-defined class loader    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6619"><br />
    [ZF-6619]</a>: Invalid @return value for getLanguage()    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6639"><br />
    [ZF-6639]</a>: Typo in file arrray (should be array)    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6730"><br />
    [ZF-6730]</a>: Zend_Service_Amazon_Abstract unit test missing    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6669"><br />
    [ZF-6669]</a>: Amazon S3 Stream Wrapper &#8211; Upload &amp; Uri    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6648"><br />
    [ZF-6648]</a>: Amazon S3 StreamWrapper &#8211; is_dir Funktion    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6477"><br />
    [ZF-6477]</a>: Zend_Service_Amazon_S3 : Does not work for buckets located in EU    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6643"><br />
    [ZF-6643]</a>: Signature version should be upgraded ASAP    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6483"><br />
    [ZF-6483]</a>: Zend_Service_Amazon_Ec2 describe() won&#8217;t work for european instances    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6072"><br />
    [ZF-6072]</a>: $_singleInstances are not cleaned up with namespaceUnset()    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-2060"><br />
    [ZF-2060]</a>: missing method Zend_Session::getOption / getOptions    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6417"><br />
    [ZF-6417]</a>: Zend_Db_Table createRow() call Zend_Loader::loadClass unconditionally    </li>
<li><a href="http://framework.zend.com/issues/browse/ZF-6016"><br />
    [ZF-6016]</a>: Zend_* ignoring my Zend_Loader::registerAutoload()    </li>
</ul>
<p><a href="http://framework.zend.com/download/current/">Download Zend Framework</a></p>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/' rel='bookmark' title='Permanent Link: Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )'>Un bootstrap object oriented per Zend Framework ( applicazione reale Zend Framework p.12 )</a> <small>Trasformiamo il nostro bootstrap in una classe php Il codice...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8.1 disponibile</title>
		<link>http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/</link>
		<comments>http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/#comments</comments>
		<pubDate>Wed, 13 May 2009 06:55:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend Framework 1.8.1]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=86</guid>
		<description><![CDATA[<p>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione di Zend Framework, la 1.8.1. Nonostante siano passati solo 13 giorni dal rilascio della serie 1.8, questa nuova versione corregge ben 68 problemi segnalati dalla community.</p>
<p>Potete scaricarlo da <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a>.</p>
<p>Qui di seguito un breve riepilogo:<a href="http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/' rel='bookmark' title='Permanent Link: Rilasciato Zend Framework 1.8.0'>Rilasciato Zend Framework 1.8.0</a> <small>E' stata rilasciata oggi la versione definitiva di Zend Framework...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Lo Zend Framework Team annuncia l&#8217;immediata disponibilità della nuova versione di Zend Framework, la 1.8.1. Nonostante siano passati solo 13 giorni dal rilascio della serie 1.8, questa nuova versione corregge ben 68 problemi segnalati dalla community.</p>
<p>Potete scaricarlo da <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a>.</p>
<p>Qui di seguito un breve riepilogo:</p>
<p>  * Zend_Loader::registerAutoload() now proxies to<br />
    Zend_Loader_Autoloader, and marks the instance as a fallback<br />
    autoloader. This will ensure equivalent functionality, and reduces<br />
    the number of deprecation notices emitted to one.</p>
<p>  * Many bugfixes and improvements to Zend_Application.</p>
<p>  * Addition of module generation capabilities to Zend_Tool</p>
<p>  * Addition of strong object typing capabilities to Zend_Amf</p>
<p>  * Many more manual translations!</p>
<p>For a full list of resolved issues, please visit:</p>
<p>    <a href="http://short.ie/zf1-8-1-issues">http://short.ie/zf1-8-1-issues</a></p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/' rel='bookmark' title='Permanent Link: Rilasciato Zend Framework 1.8.0'>Rilasciato Zend Framework 1.8.0</a> <small>E' stata rilasciata oggi la versione definitiva di Zend Framework...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare un progetto Zend Framework 1.8.0 con Zend_Tool e Wamp Server</title>
		<link>http://razorblade.netsons.org/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server/</link>
		<comments>http://razorblade.netsons.org/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server/#comments</comments>
		<pubDate>Wed, 06 May 2009 10:45:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[create project]]></category>
		<category><![CDATA[variabili di ambiente]]></category>
		<category><![CDATA[Zend_Tool]]></category>
		<category><![CDATA[ZF 1.8.0]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=84</guid>
		<description><![CDATA[<p>Sono numerose le novità portate dalla nuova versione 1.8.0 di Zend Framework, come per esempio la possibilità di generare un progetto base utilizzando il componente Zend_Tool e lanciare un semplice comando da terminale. Premetto che il tutorial è scritto per gli utenti windows.</p>

<p>Per far ciò abbiamo prima la necessità di apportare alcune modifiche al nostro sistema operativo, niente di complicato, solo aggiungere alcune variabili d'ambiente. Ma andiamo con ordine.</p>

<p>Recatevi a questo indirizzo <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a> e scaricate la versione di zend framework 'Zend Framework 1.8.0 Minimal'. Create quindi <a href="http://razorblade.netsons.org/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2008/11/15/creare-un-virtual-host-su-windows-xp-con-wampserver/' rel='bookmark' title='Permanent Link: Creare un virtual host su windows XP con wampserver'>Creare un virtual host su windows XP con wampserver</a> <small>Cos'è un virtual host? Con il termine virtual hosting si...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Sono numerose le novità portate dalla nuova versione 1.8.0 di Zend Framework, come per esempio la possibilità di generare un progetto base utilizzando il componente Zend_Tool e lanciare un semplice comando da terminale. Premetto che il tutorial è scritto per gli utenti windows.</p>
<p>Per far ciò abbiamo prima la necessità di apportare alcune modifiche al nostro sistema operativo, niente di complicato, solo aggiungere alcune variabili d&#8217;ambiente. Ma andiamo con ordine.</p>
<p>Recatevi a questo indirizzo <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a> e scaricate la versione di zend framework &#8216;Zend Framework 1.8.0 Minimal&#8217;. Create quindi una directory all&#8217;interno di Program Files e chiamatela ZendFrameworkCli, dovreste quindi avere il percorso C:\Program Files\ZendFrameworkCli sul vostro computer.</p>
<p>A questo punto estraete le directories &#8216;bin&#8217; e &#8216;library&#8217; dall&#8217;archivio scaricato all&#8217;interno di C:\Program Files\ZendFrameworkCli. Quindi al suo interno dovreste avere &#8216;bin&#8217; e &#8216;library&#8217;.</p>
<p>A questo punto recatevi su Pannello di Controllo -> Sistema, label &#8216;Avanzate&#8217;, cliccate sul bottone &#8216;Variabili d&#8217;ambiente&#8217;. Cercate quindi la voce &#8216;Path&#8217; sotto il riquadro &#8216;Variabili di sistema&#8217; ( quello in basso ). Selezionatelo e cliccate &#8216;Modifica&#8217;. Alla fine della stringa aggiungete &#8216;;C:\Program Files\ZendFrameworkCli\bin&#8217; , mi raccomando al ; iniziale, è importante in quanto serve a terminare l&#8217;ultima path precedentemente inclusa da qualche altra installazione.</p>
<p>Se utilizzate php con wampserver avrete la necessità di aggiungere una variabile di sistema per la locazione dell&#8217;eseguibile di php. Usando l&#8217;ultima versione di wamp server dovreste aggiungere questa &#8216;;C:\wamp\bin\php\php5.2.9-2&#8242; ovviamente vi consiglio di controllare se php.exe si trova effettivamente in quella posizione nel vostro computer.</p>
<p>Quindi <b>Riavviate</b>, le nuove modifiche saranno attive.</p>
<p>A questo punto andate su start -> esegui, inserite cmd e date invio: se tutto ha funzionato come si deve, scrivendo &#8216;zf show version&#8217; vi dovrebbe essere restituito &#8216;Zend Framework Version: 1.8.0&#8242;.</p>
<p>Possiamo quindi creare il nostro progetto, date il comando &#8216;zf create project zfproject&#8217;, dove &#8216;zfproject&#8217; sarà il nome della directory in cui il vostro progetto sarà creato, potete sostituirlo con quello che volete. Appena il comando avrà terminato di creare il progetto vi comunicherà dove questo è stato salvato, di default all&#8217;interno dela vostra cartella documenti.</p>
<p>Per comodità ho preferito spostare la directory creata da Zend_Tool su C:/wamp/ ( o comunque una directory superiore a www ). All&#8217;interno della directory contenente il progetto creato abbiamo la cartella &#8216;public&#8217;. Questa sarà da rinominare a vostro piacimento ed inserire nella parte pubblica del vostro webserver.</p>
<p>Se lo ritenete opportuno potete creare un virtual host per la vostra applicazione di prova con zf1.8.0, come spiegato in <a href="http://razorblade.netsons.org/2008/11/15/creare-un-virtual-host-su-windows-xp-con-wampserver/"<questo articolo</a>.</a></p>
<h2>Problemi riscontrati</h2>
<p>Ho incontrato qualche problema nel file index.php pubblico creato da zend tool, le costanti generate tramite l&#8217;utilizzo della funzione realpath risultavano stranamente vuote, ho apportato quindi alcune modifiche al file, che posto qui di seguito:</p>
<pre name="code" class="php">

  // Define container to application directory
  defined('DS')
      || define('DS',
                (DIRECTORY_SEPARATOR ? DIRECTORY_SEPARATOR
                                           : '/'));   

  // Define container to application directory
  defined('CONTAINER_DIR')
      || define('CONTAINER_DIR',
                (getenv('CONTAINER_DIR') ? getenv('CONTAINER_DIR')
                                           : 'zend'));  

  // Define application directory
  defined('APPLICATION_DIR')
      || define('APPLICATION_DIR',
                (getenv('APPLICATION_DIR') ? getenv('APPLICATION_DIR')
                                           : 'application'));

  // Define library directory
  defined('LIBRARY_DIR')
      || define('LIBRARY_DIR',
                (getenv('LIBRARY_DIR') ? getenv('LIBRARY_DIR')
                                           : 'library'));

  // Define condiguration directory
  defined('CONFIGS_DIR')
      || define('CONFIGS_DIR',
                (getenv('CONFIGS_DIR') ? getenv('CONFIGS_DIR')
                                           : 'configs'));

  // Define path to application directory
  defined('APPLICATION_PATH')
      || define('APPLICATION_PATH',
                dirname(dirname(dirname(__FILE__))).DS.CONTAINER_DIR.DS.APPLICATION_DIR.DS);

  // Define path to library directory
  defined('LIBRARY_PATH')
      || define('LIBRARY_PATH',
                dirname(APPLICATION_PATH).DS.LIBRARY_DIR.DS);

  // Define path to library directory
  defined('CONFIGS_PATH')
      || define('CONFIGS_PATH',
                APPLICATION_PATH.CONFIGS_DIR.DS);

  // Define application environment
  defined('APPLICATION_ENV')
      || define('APPLICATION_ENV',
                (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV')
                                           : 'production'));

  // Typically, you will also want to add your library/ directory
  // to the include_path, particularly if it contains your ZF install
  set_include_path(implode(PATH_SEPARATOR, array(
      LIBRARY_PATH,
      get_include_path(),
  )));

  //echo get_include_path();
  //exit;

  /** Zend_Application */
  require_once 'Zend/Application.php';

  // Create application, bootstrap, and run
  $application = new Zend_Application(
      APPLICATION_ENV,
      CONFIGS_PATH.'application.ini'
  );

  $application->bootstrap()
              ->run();
</pre>
<p>Alcune costanti come potete vedere, prendono un valore se lo trovano all&#8217;interno dell&#8217;htaccess, altrimenti ne utilizzano uno di default. Le uniche due costanti che hanno la necessità di essere specificate sono:</p>
<pre name="code" class="php">
SetEnv APPLICATION_ENV development
SetEnv CONTAINER_DIR zfproject
</pre>
<p>Le linee di codice qui sopra dovranno essere inserite in cima all&#8217;.htaccess.</p>
<p>Richiamando l&#8217;indirizzo locale dove avete inserito la parte pubblica ( o richiamando il vhost creato ), otterrete il seguente risultato</p>
<p><a href='http://razorblade.netsons.org/wp-content/zend.jpg' class="images"><img src="http://razorblade.netsons.org/wp-content/zend-300x208.jpg" alt="Zend Tool Zend Framework 1.8.0" title="zend" width="300" height="208" class="aligncenter size-medium wp-image-85" /></a></p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2008/11/15/creare-un-virtual-host-su-windows-xp-con-wampserver/' rel='bookmark' title='Permanent Link: Creare un virtual host su windows XP con wampserver'>Creare un virtual host su windows XP con wampserver</a> <small>Cos'è un virtual host? Con il termine virtual hosting si...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rilasciato Zend Framework 1.8.0</title>
		<link>http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/</link>
		<comments>http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/#comments</comments>
		<pubDate>Fri, 01 May 2009 15:18:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[zend framework 1.8.0]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=83</guid>
		<description><![CDATA[<p>E' stata rilasciata oggi la versione definitiva di Zend Framework 1.8.0 che pone rimedio a più di 200 bugs. Qui di seguito la lista dei principali novità di questa versione:</p>

<p>* Zend_Tool, contributed by Ralph Schindler
  * Zend_Application, contributed by Ben Scholzen and 
    Matthew Weier O'Phinney
  * Zend_Loader_Autoloader and Zend_Loader_Autoloader_Resource,
    contributed by Matthew Weier O'Phinney
  * Zend_Navigation, contributed by Robin Skoglund
  * Zend_CodeGenerator, by Ralph Schindler<a href="http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>E&#8217; stata rilasciata oggi la versione definitiva di Zend Framework 1.8.0 che pone rimedio a più di 200 bugs. Qui di seguito la lista dei principali novità di questa versione:</p>
<p>* Zend_Tool, contributed by Ralph Schindler<br />
  * Zend_Application, contributed by Ben Scholzen and<br />
    Matthew Weier O&#8217;Phinney<br />
  * Zend_Loader_Autoloader and Zend_Loader_Autoloader_Resource,<br />
    contributed by Matthew Weier O&#8217;Phinney<br />
  * Zend_Navigation, contributed by Robin Skoglund<br />
  * Zend_CodeGenerator, by Ralph Schindler<br />
  * Zend_Reflection, Ralph Schindler and Matthew Weier O&#8217;Phinney<br />
  * Zend Server backend for Zend_Cache, contributed by<br />
    Alexander Veremyev<br />
  * Zend_Service_Amazon_Ec2, contributed by Jon Whitcraft<br />
  * Zend_Service_Amazon_S3, Justin Plock and Stas Malyshev<br />
  * Incorporated Dojo 1.3<br />
  * Added support for arbitrary Dojo Dijits via view helpers<br />
  * Zend_Filter_Encrypt, contributed by Thomas Weidner<br />
  * Zend_Filter_Decrypt, contributed by Thomas Weidner<br />
  * Zend_Filter_LocalizedToNormalized and _NormalizedToLocalized,<br />
    contributed by Thomas Weidner<br />
  * Support for file upload progress support in Zend_File_Transfer,<br />
    contributed by Thomas Weidner<br />
  * Translation-aware routes, contributed by Ben Scholzen<br />
  * Route chaining capabilities, contributed by Ben Scholzen<br />
  * Zend_Json expression support, contributed by Benjamin Eberlei and<br />
    Oscar Reales<br />
  * Zend_Http_Client_Adapter_Curl, contributed by Benjamin Eberlei<br />
  * SOAP input and output header support, contributed by<br />
    Alexander Veremyev<br />
  * Support for keyword field search using query strings, contributed by<br />
    Alexander Veremyev<br />
  * Support for searching across multiple indexes in Zend_Search_Lucene,<br />
    contributed by Alexander Veremyev<br />
  * Significant improvements for Zend_Search_Lucene search result match<br />
    highlighting capabilities, contributed by Alexander Veremyev<br />
  * Support for page scaling, shifting and skewing in Zend_Pdf,<br />
    contributed by Alexander Veremyev<br />
  * Zend_Tag_Cloud, contributed by Ben Scholzen<br />
  * Locale support in Zend_Validate_Int and Zend_Validate_Float,<br />
    contributed by Thomas Weidner<br />
  * Phonecode support in Zend_Locale, contributed by Thomas Weidner<br />
  * Zend_Validate_Db_RecordExists and _RecordNotExists, contributed by<br />
    Ryan Mauger<br />
  * Zend_Validate_Iban, contributed by Thomas Weidner<br />
  * Zend_Validate_File_WordCount, contributed by Thomas Weidner</p>
<p>Potete scaricarlko da <a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a></p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8 Beta 1 disponibile'>Zend Framework 1.8 Beta 1 disponibile</a> <small>Zend Framework 1.8 Beta 1 is available at: http://framework.zend.com/download/latest Questa...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Luke: Lucene Index Toolbox di Andrzej Bialecki per Zend_Search_Lucene</title>
		<link>http://razorblade.netsons.org/2009/04/24/luke-lucene-index-toolbox-di-andrzej-bialecki-per-zend_search_lucene/</link>
		<comments>http://razorblade.netsons.org/2009/04/24/luke-lucene-index-toolbox-di-andrzej-bialecki-per-zend_search_lucene/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 06:48:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Andrzej Bialecki]]></category>
		<category><![CDATA[Lucene Index]]></category>
		<category><![CDATA[Luke]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Zend_Search_Lucene]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=78</guid>
		<description><![CDATA[<h2>Verificare il contenuto dell'indice di Lucene</h2>

<p>Se avete seguito <a href="http://razorblade.netsons.org/2008/09/30/zend-search-lucene-applicazione-reale-zend-framework-p10/">questo articolo</a> o comunque state lavorando con un'applicazione fatta con Zend Framework che utilizzi il componente Zend_Search_Lucene, potrebbe essere di grande utilità comprendere esattamente cosa include il vostro Search Index.</p>

<p>A questo scopo vi presento un'utilissima applicazione, Luke, un browser per l'indice di Lucene, che potete recuperare da <a href="http://www.getopt.org/luke/">http://www.getopt.org/luke/</a> o direttamente da <a href="http://www.getopt.org/luke/luke.jnlp">qui</a> (NOTA: richiede Java 1.5 o successivo )<a href="http://razorblade.netsons.org/2009/04/24/luke-lucene-index-toolbox-di-andrzej-bialecki-per-zend_search_lucene">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/' rel='bookmark' title='Permanent Link: Zend Framework: gestione dei moduli ed esempio modulo di amministrazione'>Zend Framework: gestione dei moduli ed esempio modulo di amministrazione</a> <small>Come usare Zend_Layout per la gestione dei moduli In quest'articolo...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Verificare il contenuto dell&#8217;indice di Lucene</h2>
<p>Se avete seguito <a href="http://razorblade.netsons.org/2008/09/30/zend-search-lucene-applicazione-reale-zend-framework-p10/">questo articolo</a> o comunque state lavorando con un&#8217;applicazione fatta con Zend Framework che utilizzi il componente Zend_Search_Lucene, potrebbe essere di grande utilità comprendere esattamente cosa include il vostro Search Index.</p>
<p>A questo scopo vi presento un&#8217;utilissima applicazione, Luke, un browser per l&#8217;indice di Lucene, che potete recuperare da <a href="http://www.getopt.org/luke/">http://www.getopt.org/luke/</a> o direttamente da <a href="http://www.getopt.org/luke/luke.jnlp">qui</a> (NOTA: richiede Java 1.5 o successivo )</p>
<p><a href='http://razorblade.netsons.org/wp-content/luke_lucene_index_browser.jpg'><img src="http://razorblade.netsons.org/wp-content/luke_lucene_index_browser-300x237.jpg" alt="luke_lucene_index_browser" title="luke_lucene_index_browser" width="300" height="237" class="aligncenter size-medium wp-image-79" /></a></p>
<p>Lo screenshot di sopra rappresenta la schermata iniziale, dove vi sarà richiesto di inserire il percorso dove l&#8217;indice di Lucene è salvato. Una volta inserito, vi si presenterà la seguente schermata:</p>
<p><a href='http://razorblade.netsons.org/wp-content/luke_lucene_index_browser_3.jpg'><img src="http://razorblade.netsons.org/wp-content/luke_lucene_index_browser_3-300x253.jpg" alt="luke_lucene_index_browser" title="luke_lucene_index_browser" width="300" height="253" class="aligncenter size-medium wp-image-81" /></a></p>
<h2>Utilizzo</h2>
<p>Vi illustrerò brevemente alcuni possibili utilizzi. Cliccando su un termine rappresentante un campo del vostro indice ( la griglia in basso a sinistra ) e cliccando successivamente il tasto &#8216;Show top terms&#8217;, la griglia alla vostra destra visualizzerà esclusivamente il contenuto del campo selezionato per ogni record, vedi screenshot:</p>
<p><a href='http://razorblade.netsons.org/wp-content/luke_lucene_index_browser_4.jpg'><img src="http://razorblade.netsons.org/wp-content/luke_lucene_index_browser_4-300x253.jpg" alt="luke_lucene_index_browser" title="luke_lucene_index_browser_4" width="300" height="253" class="aligncenter size-medium wp-image-82" /></a></p>
<p>Selezionando la tab &#8216;Documents&#8217; potrete vedere in dettaglio il contenuto dei vostri documenti ed il tipo di indicizzazione usato. Tramite la tab &#8216;Search&#8217; potrete effettuare le ricerche, che presumibilmente daranno lo stesso risultato della vostra applicazione.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/' rel='bookmark' title='Permanent Link: Zend Framework: gestione dei moduli ed esempio modulo di amministrazione'>Zend Framework: gestione dei moduli ed esempio modulo di amministrazione</a> <small>Come usare Zend_Layout per la gestione dei moduli In quest'articolo...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/04/24/luke-lucene-index-toolbox-di-andrzej-bialecki-per-zend_search_lucene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8 Beta 1 disponibile</title>
		<link>http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/</link>
		<comments>http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 02:28:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[zend framework 1.8.0]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=77</guid>
		<description><![CDATA[<p>Zend Framework 1.8 Beta 1 is available at: </p>
 
<p><a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a></p>

<p>Questa nuova versione è comunque ancora in beta, alcuni bug potrebbero presentarsi ed alcuni problemi sono presenti, quindi il team di Zend Framework ne sconsiglia l'utilizzo in produzione.</p>

<p>Numerosi sono i componenti aggiunti e migliorati in questa versione, ecco il listato completo qui di seguito:</p>

  * Zend_Tool, contributed by Ralph Schindler
  
  * Zend_Application, contributed by Ben Scholzen and 
    Matthew Weier O'Phinney
  
  * Zend_Loader_Autoloader and Zend_Loader_Autoloader_Resource,
    contributed by Matthew Weier O'Phinney<a href="http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile">[...] Continua</a>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/' rel='bookmark' title='Permanent Link: Rilasciato Zend Framework 1.8.0'>Rilasciato Zend Framework 1.8.0</a> <small>E' stata rilasciata oggi la versione definitiva di Zend Framework...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Zend Framework 1.8 Beta 1 is available at: </p>
<p><a href="http://framework.zend.com/download/latest">http://framework.zend.com/download/latest</a></p>
<p>Questa nuova versione è comunque ancora in beta, alcuni bug potrebbero presentarsi ed alcuni problemi sono presenti, quindi il team di Zend Framework ne sconsiglia l&#8217;utilizzo in produzione.</p>
<p>Numerosi sono i componenti aggiunti e migliorati in questa versione, ecco il listato completo qui di seguito:</p>
<p>  * Zend_Tool, contributed by Ralph Schindler</p>
<p>  * Zend_Application, contributed by Ben Scholzen and<br />
    Matthew Weier O&#8217;Phinney</p>
<p>  * Zend_Loader_Autoloader and Zend_Loader_Autoloader_Resource,<br />
    contributed by Matthew Weier O&#8217;Phinney</p>
<p>  * Zend_Navigation, contributed by Robin Skoglund</p>
<p>  * Zend_CodeGenerator, by Ralph Schindler</p>
<p>  * Zend_Reflection, Ralph Schindler and Matthew Weier O&#8217;Phinney</p>
<p>  * Zend Server backend for Zend_Cache, contributed by Alexander Veremyev</p>
<p>  * Zend_Service_Amazon_Ec2, contributed by Jon Whitcraft</p>
<p>  * Zend_Service_Amazon_S3, Justin Plock and Stas Malyshev</p>
<p>  * Zend_Filter_Encrypt, contributed by Thomas Weidner</p>
<p>  * Zend_Filter_Decrypt, contributed by Thomas Weidner</p>
<p>  * Support for file upload progress support in Zend_File_Transfer,<br />
    contributed by Thomas Weidner</p>
<p>  * Translation-aware routes, contributed by Ben Scholzen</p>
<p>  * Zend_Json expression support, contributed by Benjamin Eberlei and<br />
    Oscar Reales</p>
<p>  * Zend_Http_Client_Adapter_Curl, contributed by Benjamin Eberlei</p>
<p>  * SOAP input and output header support, contributed by Alexander<br />
    Veremyev</p>
<p>  * Support for keyword field search using query strings,<br />
    contributed by Alexander Veremyev</p>
<p>  * Support for searching across multiple indexes in Zend_Search_Lucene,<br />
    contributed by Alexander Veremyev</p>
<p>  * Support for page scaling, shifting and skewing in Zend_Pdf,<br />
    contributed by Alexander Veremyev</p>
<p>  * Locale support in Zend_Validate_Int and Zend_Validate_Float,<br />
    contributed by Thomas Weidner</p>
<p>  * Phonecode support in Zend_Locale, contributed by Thomas Weidner</p>
<p>  * Zend_Validate_Iban, contributed by Thomas Weidner</p>
<p>  * Zend_Validate_File_WordCount, contributed by Thomas Weidner</p>
<p>  * Zend_Validate_LocalizedToNormalized and NormalizedToLocalized,<br />
    contributed by Thomas Weidner</p>
<p>  * Zend_Validate_Db_RecordExists and NoRecordExists, contributed<br />
    by Ryan Mauger</p>
<p>  * Zend_Tag_Cloud, contributed by Ben Scholzen</p>
<p>La versione 1.8.0 definitiva dovrebbe vedere la luce la prossima settimana.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/05/01/rilasciato-zend-framework-180/' rel='bookmark' title='Permanent Link: Rilasciato Zend Framework 1.8.0'>Rilasciato Zend Framework 1.8.0</a> <small>E' stata rilasciata oggi la versione definitiva di Zend Framework...</small></li><li><a href='http://razorblade.netsons.org/2009/05/13/zend-framework-181-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.1 disponibile'>Zend Framework 1.8.1 disponibile</a> <small>Lo Zend Framework Team annuncia l'immediata disponibilità della nuova versione...</small></li><li><a href='http://razorblade.netsons.org/2009/05/31/zend-framework-182-disponibile/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.2 disponibile'>Zend Framework 1.8.2 disponibile</a> <small>La notizia è di 2 giorni fa, in ogni caso...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/04/23/zend-framework-18-beta-1-disponibile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generare sitemap coerente con le specifiche di Google per il proprio sito web con Php e SimpleXML</title>
		<link>http://razorblade.netsons.org/2009/04/18/generare-sitemap-coerente-con-le-specifiche-di-google-per-il-proprio-sito-web-con-php-e-simplexml/</link>
		<comments>http://razorblade.netsons.org/2009/04/18/generare-sitemap-coerente-con-le-specifiche-di-google-per-il-proprio-sito-web-con-php-e-simplexml/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 11:06:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Xml]]></category>
		<category><![CDATA[generatore sitemap]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[indicizzazione]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[SimpleXml]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=74</guid>
		<description><![CDATA[<h2>Rendiamo il nostro sito indicizzabile dai motori di ricerca</h2>

<p>Oggi vedremo come creare una sitemap in xml usando l'oggetto Php SimpleXML. Per chi non lo conoscesse SimpleXML è una classe built in del linguaggio Php dalla versione 5 e per chi invece leggerà queste righe perchè cercava quale utilità ha o che cos'è una sitemap, possiamo dire che è un file XML dove sono listate tutte le url del nostro sito, utile ai motori di ricerca come Google, Yahoo, MSN ecc.. al fine dell'indicizzazione.</p>

<p>Grazie a SimpleXML leggere e scrivere file XML con php è veramente uno scherzo, in quanto sono necessarie poche righe di codice per fare tutto ciò di cui abbiamo bisogno. In questo tutorial costruiremo da zero una classe, che chiameremo Sitemap, che ci permetterà di fare tutto quello di cui abbiamo bisogno in maniera ordinata e semplice.<a href="http://razorblade.netsons.org/2009/04/18/generare-sitemap-coerente-con-le-specifiche-di-google-per-il-proprio-sito-web-con-php-e-simplexml">[...] Continua</a></p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<h2>Rendiamo il nostro sito indicizzabile dai motori di ricerca</h2>
<p>Oggi vedremo come creare una sitemap in xml usando l&#8217;oggetto Php SimpleXML. Per chi non lo conoscesse SimpleXML è una classe built in del linguaggio Php dalla versione 5 e per chi invece leggerà queste righe perchè cercava quale utilità ha o che cos&#8217;è una sitemap, possiamo dire che è un file XML dove sono listate tutte le url del nostro sito, utile ai motori di ricerca come Google, Yahoo, MSN ecc.. al fine dell&#8217;indicizzazione.</p>
<p>Grazie a SimpleXML leggere e scrivere file XML con php è veramente uno scherzo, in quanto sono necessarie poche righe di codice per fare tutto ciò di cui abbiamo bisogno. In questo tutorial costruiremo da zero una classe, che chiameremo Sitemap, che ci permetterà di fare tutto quello di cui abbiamo bisogno in maniera ordinata e semplice.</p>
<h2>Il protocollo di Google</h2>
<p>Visitando <a href="http://www.google.it/support/webmasters/bin/answer.py?answer=34657&#038;topic=13452">questa pagina</a> possiamo vedere come deve essere costruito il file xml per rispettare il protocollo di google, qui di seguito brevemente riassunto</p>
<p><b>Sitemap.php</b></p>
<pre name='code' class="php">

// Il file deve iniziare con questa linea
&lt;?xml version="1.0" encoding="UTF-8"?&gt;

// Deve contenere il tag urlset, che conterra al suo interno le varie url
&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;

// Un esempio di url, loc è richiesto, il resto è opzionale
&lt;url&gt;
    &lt;loc&gt;http://www.example.com/&lt;/loc&gt;
    &lt;lastmod&gt;2005-01-01&lt;/lastmod&gt;
    &lt;changefreq&gt;monthly&lt;/changefreq&gt;
    &lt;priority&gt;0.8&lt;/priority&gt;
&lt;/url&gt; 

// Chiusura del tag urlset
&lt;/urlset&gt;
</pre>
<h2>Il listato della classe Sitemap.php</h2>
<pre name='code' class="php">
  class Sitemap
  {
    private $xml;
    private $sitemap;

    public function __construct(){
      $this->sitemap = 'percorso_fisico_alla_sitemap/sitemap.xml';
      $this->xml = $this->read($this->sitemap);
    }

    function read($file){
      if (file_exists($file)){
        try{
          return simplexml_load_file($file);
        }catch (Exception $e){
          throw new Exception("Errore nel caricamento del file");
        }
      }else{
        throw new Exception("File xml inesistente");
      }
    }

    function add($data){
      try{
        $node = $this->xml->addChild("url");
        $node->addChild("loc", $data['loc']);
        $node->addChild("lastmod", $this->datetime(isset($data['date']) &#038;&#038; !empty($data['date']) &#038;&#038; trim($data['date']) != '' ? $data['date'] : NULL));
        $node->addChild("changefreq", $data['changefreq']);
        $node->addChild("priority", $data['priority']);
      }catch(Exception $e){
        throw new Exception("Errore in add... i dati erano un array?");
      }
    }

    function get($couple){
      foreach($this->xml->url as $node){
        if ($node->$couple['node'] == $couple['value']){
          return $node;
        }
      }
      return NULL;
    }

    function edit($couple, $data){
      $node = $this->get($couple);
      $node->loc = $data['loc'];
      $node->lastmod = $this->datetime(isset($data['date']) &#038;&#038; !empty($data['date']) ? $data['date'] : NULL);
      $node->changefreq = $data['changefreq'];
      $node->priority = $data['priority'];
    }

    function timestamp($data){
      try{
        $data = explode(" ", $data);
        list($y, $m, $d) = explode("-", trim($data[0]));
        list($h, $mi, $sc) = explode(":", trim($data[1]));
        return mktime($h,$mi,$sc,$d,$m,$y);
      }catch(error $e){
        throw new Exception("Errore in timestamp");
      }
    }

    function datetime($date = NULL){
      try{
        $mktime = $date === NULL &#038;&#038; empty($date) ? mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")) : $this->timestamp($date);
        //return date(DATE_ATOM,$mktime);
        $offset = date("O",$mktime);
        return date("Y-m-d\TH:i:s",$mktime).substr($offset,0,3).":".substr($offset,-2);
      }catch(Exception $e){
        throw new Exception("Errore in datetime");
      }
    }

    function save(){
      //file_put_contents($this->sitemap, $this->xml->asXML());
      $this->xml->asXML($this->sitemap);
    }

    function delete($couple){
      $node = $this->get($couple);
      if ($node != NULL){
        unset($node[0][0]);
      }
    }

    function erase(){
      unset($this->xml->url);
    }
  }
  </pre>
<p>La classe possiede due proprietà private, $xml e $sitemap, che conterranno rispettivamente l&#8217;oggetto SimpleXML e la path fisica, completa di nome, della nostra sitemap. Alla sitemap dovranno essere impostati i permessi di scrittura. Vediamo qui di seguito una veloce spiegazione di ogni metodo.</p>
<p><b>Il Costruttore</b></p>
<pre name="code" class="php">
    public function __construct(){
      $this->sitemap = 'percorso_fisico_alla_sitemap/sitemap.xml';
      $this->xml = $this->read($this->sitemap);
    }
</pre>
<p>Il costruttore si occupa di attribuire i valori alle proprietà private, quindi istanzia SimpleXML tramite la chiamata al metodo read().</p>
<p><b>Il metodo read()</b></p>
<pre name="code" class="php">
    function read($file){
      if (file_exists($file)){
        try{
          return simplexml_load_file($file);
        }catch (Exception $e){
          throw new Exception("Errore nel caricamento del file");
        }
      }else{
        throw new Exception("File xml inesistente");
      }
    }
</pre>
<p>Questo metodo prova a creare l&#8217;oggetto SimpleXML tramire la chiamata alla funzione simplexml_load_file() a cui viene passato come argomento il file da leggere. Se la lettura ha successo ritorna l&#8217;oggetto SimpleXML.</p>
<p><b>Il metodo add()</b></p>
<pre name="code" class="php">
    function add($data){
      try{
        $node = $this->xml->addChild("url");
        $node->addChild("loc", $data['loc']);
        $node->addChild("lastmod", $this->datetime(isset($data['date']) &#038;&#038; !empty($data['date']) &#038;&#038; trim($data['date']) != '' ? $data['date'] : NULL));
        $node->addChild("changefreq", $data['changefreq']);
        $node->addChild("priority", $data['priority']);
      }catch(Exception $e){
        throw new Exception("Errore in add... i dati erano un array?");
      }
    }
</pre>
<p>Add() aggiunge un nodo <b>url</b> alla <b>urlset</b>. L&#8217;argomento da passare ad add() è un array che deve contenere necessariamente le chiavi &#8216;loc&#8217;, &#8216;changefreq&#8217; e &#8216;priority&#8217;. Può contenere anche la chiave &#8216;date&#8217; ( che diverrà il valore di &#8216;lastmod&#8217;), omettendolo il valore di &#8216;lastmod&#8217; equivarrà alla data attuale.</p>
<p><b>Il metodo get()</b></p>
<pre name="code" class="php">
    function get($couple){
      foreach($this->xml->url as $node){
        if ($node->$couple['node'] == $couple['value']){
          return $node;
        }
      }
      return NULL;
    }
</pre>
<p>Get() è un metodo utile alla ricerca di un nodo. Particolare ( credo ) il fatto di passare ad argomento un array che deve contenere la chiavi &#8216;node&#8217; e &#8216;value&#8217;: il valore di &#8216;node&#8217; sarà uno dei nodi contenuti in url ( quindi loc, lastmod, changefreq o priority ),  &#8216;value&#8217; sarà il valore da ricercare. Da sottolineare che il nodo ritornato è esclusivamente il primo trovato.</p>
<p><b>Il metodo edit()</b></p>
<pre name="code" class="php">
    function edit($couple, $data){
      $node = $this->get($couple);
      $node->loc = $data['loc'];
      $node->lastmod = $this->datetime(isset($data['date']) &#038;&#038; !empty($data['date']) ? $data['date'] : NULL);
      $node->changefreq = $data['changefreq'];
      $node->priority = $data['priority'];
    }
</pre>
<p>Edit() modifica i valori di un nodo esistente. Internamente utilizza il metodo get() per trovare il nodo da modificare. Gli argomenti da passare sono l&#8217;array per la ricerca e l&#8217;array con i dati che andranno a sostituirsi nel nodo trovato.</p>
<p><b>Il metodo timestamp()</b></p>
<pre name="code" class="php">
    function timestamp($data){
      try{
        $data = explode(" ", $data);
        list($y, $m, $d) = explode("-", trim($data[0]));
        list($h, $mi, $sc) = explode(":", trim($data[1]));
        return mktime($h,$mi,$sc,$d,$m,$y);
      }catch(error $e){
        throw new Exception("Errore in timestamp");
      }
    }
</pre>
<p>Timestamp è più che altro una utility, ritorna un timestamp da una data passata in formato dd/mm/yyyy hh/MM/ss. E&#8217; utilizzata in datetime()</p>
<p><b>Il metodo datetime()</b></p>
<pre name="code" class="php">
    function datetime($date = NULL){
      try{
        $mktime = $date === NULL &#038;&#038; empty($date) ? mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")) : $this->timestamp($date);
        //return date(DATE_ATOM,$mktime);
        $offset = date("O",$mktime);
        return date("Y-m-d\TH:i:s",$mktime).substr($offset,0,3).":".substr($offset,-2);
      }catch(Exception $e){
        throw new Exception("Errore in datetime");
      }
    }
</pre>
<p>Datetime() ritorna il corretto formato data da inserire nella sitemap rispetto al protocollo. Da notare che la riga commentata (return date(DATE_ATOM,$mktime);) è un metodo alternativo che ritorna lo stesso risultato delle 2 successive.</p>
<p><b>Il metodo save()</b></p>
<pre name="code" class="php">
    function save(){
      //file_put_contents($this->sitemap, $this->xml->asXML());
      $this->xml->asXML($this->sitemap);
    }
</pre>
<p>Save() salva le modifiche effettuate alla sitemap. La riga commentata è un metodo alternativo per salvare.</p>
<p><b>Il metodo delete()</b></p>
<pre name="code" class="php">
    function delete($couple){
      $node = $this->get($couple);
      if ($node != NULL){
        unset($node[0][0]);
      }
    }
</pre>
<p>Delete() elimina il nodo trovato. L&#8217;oggetto SimpleXML non possiede un metodo nativo per eliminare un nodo, a questo scopo utilizziamo la funzione unset() di php. Delete utilizza internamente get(), quindi per eliminare un nodo bisogna passare l&#8217;array utile alla sua ricerca.</p>
<p><b>Il metodo erase()</b></p>
<pre name="code" class="php">
    function erase(){
      unset($this->xml->url);
    }
</pre>
<p>Erase() elimina tutte le url della urlset. Utile per la reindicizzazione di tutte le url.</p>
<h2>Esempio di utilizzo</h2>
<p>Utilizare la classe è semplice, la si istanzia, si effettuano le varie modifiche, quindi si chiama il metodo save().</p>
<pre name="code" class="php">
  // Istanziare la classe
  $map = new Sitemap();

  // esempi di aggiunta nodi
  $map->add(array(
    'loc'=>'http://www.miosito.com/uno/',
    'changefreq'=>'monthly',
    'priority'=>'0.2'
  ));
  $map->add(array(
    'loc'=>'http://www.miosito.com/due/',
    'changefreq'=>'monthly',
    'priority'=>'0.2'
  ));

  // Esempio di eliminazione nodo
  $map->delete(array('node'=>'loc','value'=>'http://www.miosito.com/uno/'));

  // Salviamo la sitemap. Da chiamare dopo aver effettuato le modifiche
  $map->save();
</pre>
<p>Si conclude qui il tutorial, spero che sia utile a qualcuno, mi raccomando i commenti <img src='http://razorblade.netsons.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/04/18/generare-sitemap-coerente-con-le-specifiche-di-google-per-il-proprio-sito-web-con-php-e-simplexml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Header 301 Redirect &#8211; Moved Permanently, redirezione con Php</title>
		<link>http://razorblade.netsons.org/2009/04/06/php-header-301-redirect-moved-permanently-redirezione-con-php/</link>
		<comments>http://razorblade.netsons.org/2009/04/06/php-header-301-redirect-moved-permanently-redirezione-con-php/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 17:54:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[Moved Permanently]]></category>
		<category><![CDATA[Redirect]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=73</guid>
		<description><![CDATA[<p>Per vari motivi si ha la necessità di dover cambiare nome del dominio utilizzato dal proprio sito, per esempio il passaggio da un hosting free ad un dominio a pagamento di primo livello. Uno dei problemi a cui porre particolare attenzione è far effettuare correttamente il redirect dal vecchio al nuovo indirizzo, in modo da non perdere eventuali pagerank o buone posizioni nelle serp, comunicando al motore di ricerca che il sito si è trasferito.</p>

<p>A questo scopo utilizzeremo, come potete immaginare la funzione header, ma prima di effettuare la redirezione vera e propria comunicheremo al client che si tratta di un codice 301, ovvero pagina trasferita in modo permanente ( Header 301 Redirect - Moved Permanently ), in questo modo:<a href="http://razorblade.netsons.org/2009/04/06/php-header-301-redirect-moved-permanently-redirezione-con-php">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/01/17/php-warning-cannot-modify-header-information-headers-already-sent/' rel='bookmark' title='Permanent Link: PHP Warning: Cannot modify header information &#8211; headers already sent'>PHP Warning: Cannot modify header information &#8211; headers already sent</a> <small>Eliminare per sempre questo errore dai vostri script. Uno degli...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Per vari motivi si ha la necessità di dover cambiare nome del dominio utilizzato dal proprio sito, per esempio il passaggio da un hosting free ad un dominio a pagamento di primo livello. Uno dei problemi a cui porre particolare attenzione è far effettuare correttamente il redirect dal vecchio al nuovo indirizzo, in modo da non perdere eventuali pagerank o buone posizioni nelle serp, comunicando al motore di ricerca che il sito si è trasferito.</p>
<p>A questo scopo utilizzeremo, come potete immaginare la funzione header, ma prima di effettuare la redirezione vera e propria comunicheremo al client che si tratta di un codice 301, ovvero pagina trasferita in modo permanente ( Header 301 Redirect &#8211; Moved Permanently ), in questo modo:</p>
<pre name="code" class="php">
$location = // il vostro codice per ricavare l'indirizzo di destinazione
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$location);
</pre>
<p>Si conclude qui questo breve articolo, probabilmente potrà tornare utile a molti.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>


<p>Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/01/17/php-warning-cannot-modify-header-information-headers-already-sent/' rel='bookmark' title='Permanent Link: PHP Warning: Cannot modify header information &#8211; headers already sent'>PHP Warning: Cannot modify header information &#8211; headers already sent</a> <small>Eliminare per sempre questo errore dai vostri script. Uno degli...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/04/06/php-header-301-redirect-moved-permanently-redirezione-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E&#8217; arrivato CADIE ( Cognitive Autoheuristic Distributed-Intelligence Entity )</title>
		<link>http://razorblade.netsons.org/2009/04/01/e-arrivato-cadie-cognitive-autoheuristic-distributed-intelligence-entity/</link>
		<comments>http://razorblade.netsons.org/2009/04/01/e-arrivato-cadie-cognitive-autoheuristic-distributed-intelligence-entity/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 07:59:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Social Network]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[CADIE]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Pesce d'aprile]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=72</guid>
		<description><![CDATA[<p>Questo post è un po' fuori dagli schemi, volevo solo far notare ai miei visitatori che da Google ci devono tenere davvero molto al 1° Aprile, ecco infatti che oggi viene alla luce la <b><a href="http://www.google.it/intl/it/landing/cadie/index.html">tecnologia CADIE ( Cognitive Autoheuristic Distributed-Intelligence Entity )</a></b>, una sorta di applicazione che scansiona il web per <b><a href="http://cadiesingularity.blogspot.com/">crearsi un blog</a></b>... ehehe bello scherzo... o sarà tutto vero?</p>


No related posts.

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Questo post è un po&#8217; fuori dagli schemi, volevo solo far notare ai miei visitatori che da Google ci devono tenere davvero molto al 1° Aprile, ecco infatti che oggi viene alla luce la <b><a href="http://www.google.it/intl/it/landing/cadie/index.html">tecnologia CADIE ( Cognitive Autoheuristic Distributed-Intelligence Entity )</a></b>, una sorta di applicazione che scansiona il web per <b><a href="http://cadiesingularity.blogspot.com/">crearsi un blog</a></b>&#8230; ehehe bello scherzo&#8230; o sarà tutto vero?</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://razorblade.netsons.org/2009/04/01/e-arrivato-cadie-cognitive-autoheuristic-distributed-intelligence-entity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
