<?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: &#187; Php</title>
	<atom:link href="http://razorblade.netsons.org/category/php/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>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/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server/' rel='bookmark' title='Permanent Link: Creare un progetto Zend Framework 1.8.0 con Zend_Tool e Wamp Server'>Creare un progetto Zend Framework 1.8.0 con Zend_Tool e Wamp Server</a> <small>Sono numerose le novità portate dalla nuova versione 1.8.0 di...</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/2009/05/06/creare-un-progetto-zend-framework-180-con-zend_tool-e-wamp-server/' rel='bookmark' title='Permanent Link: Creare un progetto Zend Framework 1.8.0 con Zend_Tool e Wamp Server'>Creare un progetto Zend Framework 1.8.0 con Zend_Tool e Wamp Server</a> <small>Sono numerose le novità portate dalla nuova versione 1.8.0 di...</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/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/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>Zend Framework: gestione dei moduli ed esempio modulo di amministrazione</title>
		<link>http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/</link>
		<comments>http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 03:25:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[administration module zend framework]]></category>
		<category><![CDATA[modulo di amministrazione zend framework]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend layout plugin]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=68</guid>
		<description><![CDATA[<h2>Come usare Zend_Layout per la gestione dei moduli</h2>

<p>In quest'articolo vedremo come gestire differenti moduli con Zend Framework oltre a quello di default per creare, per esempio, un modulo di amministrazione.</p>

<p>A titolo riassuntivo, ecco un elenco di cosa abbiamo già visto di Zend Framework:</p>

<ul class="listato">
<li><a href="http://razorblade.netsons.org/2008/07/09/introduzione-a-zend-framework/" title="Introduzione a Zend Framework" rel="me">Introduzione a Zend Framework</a> con esempio pratico minimalista di utilizzo</li>
<li><a href="http://razorblade.netsons.org/2008/07/24/costruire-unapplicazione-reale-con-zend-framework-parte-1/" title="Configurazione Avanzata Zend Framework" rel="me">Configurazione Avanzata</a></li>
<li><a href="http://razorblade.netsons.org/2008/08/06/costruire-unapplicazione-reale-con-zend-framework-parte-2/" title="Two Step View Zend Framework" rel="me">Two Step View</a> per la gestione dei layouts</li>
<li><a href="http://razorblade.netsons.org/2008/08/06/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-3/" title="Implementazione di un layout complesso Two Step View Zend Framework" rel="me">Implementazione di un layout complesso</a> per la gestione dei layouts</li>
<li><a href="http://razorblade.netsons.org/2008/08/08/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-4/" title="Gestione dei modelli" rel="me">Gestione dei modelli</a> ed interazione con database</li>
<li><a href="http://razorblade.netsons.org/2008/08/15/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-5/" title="Gestione delle richieste asincrone Ajax" rel="me">Gestione delle richieste asincrone ( Ajax )</a> aiutandoci con l'utilizzo di jQuery</li>
<li><a href="http://razorblade.netsons.org/2008/08/18/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-6/" title="Gestione del database" rel="me">Gestione del database</a></li>
<li><a href="http://razorblade.netsons.org/2008/08/19/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-7/" title="Database e reference map" rel="me">Database e reference map</a></li>
<li><a href="http://razorblade.netsons.org/2008/09/13/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-8/" title="Autenticazione con Zend_Auth" rel="me">Autenticazione con Zend_Auth</a></li>
<li><a href="http://razorblade.netsons.org/2008/09/19/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-9/" title="Autorizzazione con Zend_Acl con esempio" rel="me">Autorizzazione con Zend_Acl</a> con esempio integrato al database</li>
<li><a href="http://razorblade.netsons.org/2008/09/30/zend-search-lucene-applicazione-reale-zend-framework-p10/" title="Motore di ricerca interno con Zend_Search_Lucene" rel="me">Zend Framework e Zend_Search_Lucene</a> motore di ricerca interno</li>
<li><a href="http://razorblade.netsons.org/2008/10/07/componente-zend_mail-applicazione-reale-zend-framework-p11/" title="Zend_Mail con esempio di invio email" rel="me">Zend Framework e Zend_Mail</a> con esempio di invio email</li>
<li><a href="http://razorblade.netsons.org/2008/10/27/zend-search-lucene-e-utf-8-unicode-con-zend-framework/" title="Zend Lucene e UTF8" rel="me">Zend Lucene e UTF8</a> con <b>esempio di applicazione scaricabile</b></li>
<li><a href="http://razorblade.netsons.org/2008/10/31/zend-framework-gestione-degli-errori-e-404-con-zend_log/" title="Zend_Log e gestione errore 404" rel="me">Zend_Log e gestione errore 404</a></li>
<li><a href="http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/" title="Zend Framework Bootstrap Object Oriented" rel="me">Zend Framework Bootstrap Object Oriented</a></li>
<li><a href="http://razorblade.netsons.org/2008/11/30/zend-framework-introduzione-al-componente-zend_form/" title="Form Con Zend_Form" rel="me">Form Con Zend_Form</a></li>
<li><a href="http://razorblade.netsons.org/2008/12/05/zend-framework-zend_form-con-recaptcha/" title="Recapcha Con Zend_Form" rel="me">Il componente Recapcha</a> per la sicurezza dei form</li>
</ul>

<p>Per la comprensione di questo articolo consiglio prima di leggere gli articoli a proposito della gestione di un bootstrap object oriented ma ancora prima della gestione dei layouts con Zend_Layout e two step view.<a href="http://razorblade.netsons.org/2009/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione">[...] Continua</a></p>


Related posts:<ol><li><a href='http://razorblade.netsons.org/2009/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework/' rel='bookmark' title='Permanent Link: Neobazaar annunci gratuiti: esempio di una applicazione sviluppata con Zend Framework'>Neobazaar annunci gratuiti: esempio di una applicazione sviluppata con Zend Framework</a> <small>Nasce Neobazaar.com, annunci gratuiti in Italia: interamente sviluppato con Zend...</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/2008/12/05/zend-framework-zend_form-con-recaptcha/' rel='bookmark' title='Permanent Link: Zend Framework: Zend_Form con ReCaptcha'>Zend Framework: Zend_Form con ReCaptcha</a> <small>Utilizzare il webservice ReCaptcha per validare i form ReCaptcha è...</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>Come usare Zend_Layout per la gestione dei moduli</h2>
<p>In quest&#8217;articolo vedremo come gestire differenti moduli con Zend Framework oltre a quello di default per creare, per esempio, un modulo di amministrazione.</p>
<p>A titolo riassuntivo, ecco un elenco di cosa abbiamo già visto di Zend Framework:</p>
<ul class="listato">
<li><a href="http://razorblade.netsons.org/2008/07/09/introduzione-a-zend-framework/" title="Introduzione a Zend Framework" rel="me">Introduzione a Zend Framework</a> con esempio pratico minimalista di utilizzo</li>
<li><a href="http://razorblade.netsons.org/2008/07/24/costruire-unapplicazione-reale-con-zend-framework-parte-1/" title="Configurazione Avanzata Zend Framework" rel="me">Configurazione Avanzata</a></li>
<li><a href="http://razorblade.netsons.org/2008/08/06/costruire-unapplicazione-reale-con-zend-framework-parte-2/" title="Two Step View Zend Framework" rel="me">Two Step View</a> per la gestione dei layouts</li>
<li><a href="http://razorblade.netsons.org/2008/08/06/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-3/" title="Implementazione di un layout complesso Two Step View Zend Framework" rel="me">Implementazione di un layout complesso</a> per la gestione dei layouts</li>
<li><a href="http://razorblade.netsons.org/2008/08/08/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-4/" title="Gestione dei modelli" rel="me">Gestione dei modelli</a> ed interazione con database</li>
<li><a href="http://razorblade.netsons.org/2008/08/15/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-5/" title="Gestione delle richieste asincrone Ajax" rel="me">Gestione delle richieste asincrone ( Ajax )</a> aiutandoci con l&#8217;utilizzo di jQuery</li>
<li><a href="http://razorblade.netsons.org/2008/08/18/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-6/" title="Gestione del database" rel="me">Gestione del database</a></li>
<li><a href="http://razorblade.netsons.org/2008/08/19/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-7/" title="Database e reference map" rel="me">Database e reference map</a></li>
<li><a href="http://razorblade.netsons.org/2008/09/13/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-8/" title="Autenticazione con Zend_Auth" rel="me">Autenticazione con Zend_Auth</a></li>
<li><a href="http://razorblade.netsons.org/2008/09/19/costruire-un%e2%80%99applicazione-reale-con-zend-framework-parte-9/" title="Autorizzazione con Zend_Acl con esempio" rel="me">Autorizzazione con Zend_Acl</a> con esempio integrato al database</li>
<li><a href="http://razorblade.netsons.org/2008/09/30/zend-search-lucene-applicazione-reale-zend-framework-p10/" title="Motore di ricerca interno con Zend_Search_Lucene" rel="me">Zend Framework e Zend_Search_Lucene</a> motore di ricerca interno</li>
<li><a href="http://razorblade.netsons.org/2008/10/07/componente-zend_mail-applicazione-reale-zend-framework-p11/" title="Zend_Mail con esempio di invio email" rel="me">Zend Framework e Zend_Mail</a> con esempio di invio email</li>
<li><a href="http://razorblade.netsons.org/2008/10/27/zend-search-lucene-e-utf-8-unicode-con-zend-framework/" title="Zend Lucene e UTF8" rel="me">Zend Lucene e UTF8</a> con <b>esempio di applicazione scaricabile</b></li>
<li><a href="http://razorblade.netsons.org/2008/10/31/zend-framework-gestione-degli-errori-e-404-con-zend_log/" title="Zend_Log e gestione errore 404" rel="me">Zend_Log e gestione errore 404</a></li>
<li><a href="http://razorblade.netsons.org/2008/11/19/un-bootstrap-object-oriented-per-zend-framework-applicazione-reale-zend-framework-p12/" title="Zend Framework Bootstrap Object Oriented" rel="me">Zend Framework Bootstrap Object Oriented</a></li>
<li><a href="http://razorblade.netsons.org/2008/11/30/zend-framework-introduzione-al-componente-zend_form/" title="Form Con Zend_Form" rel="me">Form Con Zend_Form</a></li>
<li><a href="http://razorblade.netsons.org/2008/12/05/zend-framework-zend_form-con-recaptcha/" title="Recapcha Con Zend_Form" rel="me">Il componente Recapcha</a> per la sicurezza dei form</li>
</ul>
<p>Per la comprensione di questo articolo consiglio prima di leggere gli articoli a proposito della gestione di un bootstrap object oriented ma ancora prima della gestione dei layouts con Zend_Layout e two step view.</p>
<h2>Il modulo default</h2>
<p>Per convenzione, il modulo di default utilizzato dalla vostra applicazione sviluppata con Zend Framework si chiama, non a caso, default. Che significa questo? Immaginiamo che voi abbiate un controller chiamato &#8217;search&#8217; all&#8217;interno della vostra applicazione, una chiamata al suddetto controller potrebbe essere effettuata tramite la url &#8216;http://www.miosito.xx/search&#8217;. Non abbiamo specificato nessun modulo, quindi, per convenzione, è come se avessimo chiamato default. Infatti, possiamo ottenere lo stesso risultato richiamando la url &#8216;http://www.miosito.xx/<b>default/</b>search&#8217;.</p>
<p>Allo stesso modo, creando una directory chiamata &#8216;default&#8217; all&#8217;interno della directory &#8216;application&#8217; ed inserendo tutto il contenuto della seconda nella prima ( tranne che il file bootstrap.php ) tutto continuerebbe a funzionare.</p>
<h2>Creiamo il modulo di amministrazione</h2>
<p>Non è strettamente necessario, ma siccome non ho scoperto nessun genere di controindicazione ed aiuta a dare all&#8217;albero dell&#8217;applicazione quel pizzico di ordine aggiuntivo, creiamo all&#8217;interno di &#8216;application&#8217; la directory &#8216;default&#8217; ed inseriamo &#8216;controllers&#8217;, &#8216;models&#8217; e &#8216;views&#8217; all&#8217;interno di essa. Creiamo all&#8217;interno di &#8216;application&#8217; la directory &#8216;admin&#8217; ed al suo interno le 3 directories &#8216;controllers&#8217;, &#8216;models&#8217; e &#8216;views&#8217;.</p>
<p>Il nuovo albero dell&#8217;applicazione dovrebbe risultare quindi come il seguente:</p>
<ul class="applicationThree">
<li>la_mia_applicazione
<ul>
<li>application
<ul>
<li><b>default</b>
<ul>
<li>controllers</li>
<li>models</li>
<li>views
<ul>
<li>scripts
<ul>
<li>index</li>
<li>error</li>
</ul>
</li>
<li>layouts</li>
<li>filters</li>
<li>helpers</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><b>admin</b>
<ul>
<li>controllers</li>
<li>models</li>
<li>views
<ul>
<li>scripts
<ul>
<li>index</li>
</ul>
</li>
<li>layouts</li>
<li>filters</li>
<li>helpers</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>db</li>
<li>library
<ul>
<li>Zend</li>
</ul>
</li>
<li>tests
<ul>
<li>controllers</li>
<li>models</li>
</ul>
</li>
</ul>
</li>
<li>web_root (www)
<ul>
<li>css</li>
<li>img</li>
<li>js</li>
</ul>
</li>
</ul>
<h2>Rendere operativo il nuovo modulo</h2>
<p>Attualmente il nostro modulo di amministrazione non è nient&#8217;altro che una directory all&#8217;interno del nostro albero dell&#8217;applicazione, e non abbiamo ancora provveduto ad effettuare nessuna modifica al codice per &#8216;dire&#8217; a Zend Framework che, quando il modulo richiamato è &#8216;admin&#8217;, di andarsi a leggere il contenuto di admin e non di default.</p>
<p>Questo è proprio il nostro problema attuale: dobbiamo riuscire a recuperare il nome del modulo richiesto prima che Zend_Layout lo renderizzi. Per questo scopo creeremo il plugin library/MiaApplicazione/Layout/Controller/Plugin/<b>Layout.php</b></p>
<pre name="code" class="php">

  class MiaApplicazione_Layout_Controller_Plugin_Layout extends Zend_Layout_Controller_Plugin_Layout
  {
    public function preDispatch(Zend_Controller_Request_Abstract $request){
      switch ($request->getModuleName()){
        case 'admin':
          $this->_moduleChange('admin');
        }
      }

    protected function _moduleChange($moduleName){
      $basePath = dirname(dirname(dirname($this->getLayout()->getLayoutPath())));
      $this->getLayout()->setLayoutPath($basePath.DIRECTORY_SEPARATOR.$moduleName.'/views/layout');
      $this->getLayout()->setLayout($moduleName);
    }
  }
</pre>
<p>Il passo successivo è rendere operativo questo plugin. Per far ciò dobbiamo modificare il bootstrap modificando l&#8217;array passato ad argomento alla chiamata di Zend_Layout::startMvc.</p>
<pre name="code" class="php">
    public static function setupView(){
      $view = new Zend_View;
      $view->setEncoding('UTF-8');
      $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
      Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
      Zend_Layout::startMvc(
        array(
          'layoutPath' => ROOT_DIR.'/application/default/views/layouts',
          'layout' => 'layout',
          'pluginClass' => 'MiaApplicazione_Layout_Controller_Plugin_Layout'
        )
      );
    }
</pre>
<p>Inoltre dovremo apportare la seguente modifica al metodo setupFrontController per quanto riguarda l&#8217;assegnazione della directory dei controllers:</p>
<pre name="code" class="php">
    public static function setupFrontController(){
      self::$frontController = Zend_Controller_Front::getInstance();
      self::$frontController->throwExceptions((bool)self::$registry->config->front->throwExceptions);
      self::$frontController->returnResponse((bool)self::$registry->config->front->returnResponse);
      self::$frontController->registerPlugin(new Zend_Controller_Plugin_ErrorHandler());
      self::$frontController->setControllerDirectory(
        array(
          'default' => ROOT_DIR.'/application/default/controllers',
          'admin' => ROOT_DIR.'/application/admin/controllers'
        )
      );
    }
</pre>
<h2>Il layout di amministrazione</h2>
<p>Creiamo il file admin.phtml, che sarà il layout del modulo di amministrazione. Questo file dovrà trovarsi all&#8217;interno di application/admin/views/layout.</p>
<pre name="code" class="php">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"&gt;
    &lt;head&gt;
      &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
      &lt;title&gt;Amministrazione &lt;?php echo $this-&gt;escape($this-&gt;pageTitle); ?&gt;&lt;/title&gt;
    &lt;/head&gt;
  &lt;body&gt;
    &lt;!-- start container --&gt;
    &lt;div id="container"&gt;

      &lt;!-- start subContainer --&gt;
      &lt;div id="subContainer"&gt;

        &lt;!-- start header --&gt;
        &lt;div id="header"&gt;&lt;?php //echo $this-&gt;layout()-&gt;header;?&gt;&lt;/div&gt;
        &lt;!-- end header --&gt;

        &lt;!-- start content --&gt;
        &lt;div id="content"&gt;&lt;?php echo $this-&gt;layout()-&gt;content;?&gt;&lt;/div&gt;
        &lt;!-- end content --&gt;

        &lt;!-- start footer --&gt;
        &lt;div id="footer"&gt;&lt;?php //echo $this-&gt;layout()-&gt;footer;?&gt;&lt;/div&gt;
        &lt;!-- end footer --&gt;

      &lt;/div&gt;
      &lt;!-- end subContainer --&gt;

    &lt;/div&gt;
    &lt;!-- end container --&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Infine avremo bisogno del file della view index.phtml che dovrà trovarsi all&#8217;interno di admin/views/script/index.</p>
<pre name="code" class="php">
&lt;h2&gt;Modulo di amministrazione&lt;/h2&gt;
</pre>
<p>Fatto ciò siete pronti per richiamare la url &#8216;http://www.miosito.xx/admin/&#8217; e contemplare il risultato del vostro lavoro.</p>
<h2>Riferimenti</h2>
<p><a href="http://blog.astrumfutura.com/archives/358-An-Example-Zend-Framework-Blog-Application-Part-5-Creating-Models-with-Zend_Db-and-adding-an-Administration-Module.html">blog.astrumfutura.com</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/08/28/neobazaar-annunci-gratuiti-esempio-di-una-applicazione-sviluppata-con-zend-framework/' rel='bookmark' title='Permanent Link: Neobazaar annunci gratuiti: esempio di una applicazione sviluppata con Zend Framework'>Neobazaar annunci gratuiti: esempio di una applicazione sviluppata con Zend Framework</a> <small>Nasce Neobazaar.com, annunci gratuiti in Italia: interamente sviluppato con Zend...</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/2008/12/05/zend-framework-zend_form-con-recaptcha/' rel='bookmark' title='Permanent Link: Zend Framework: Zend_Form con ReCaptcha'>Zend Framework: Zend_Form con ReCaptcha</a> <small>Utilizzare il webservice ReCaptcha per validare i form ReCaptcha è...</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/02/02/zend-framework-gestione-dei-moduli-ed-esempio-modulo-di-amministrazione/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Inviare email PHP in modo semplice e veloce usando la classe PhpMailer</title>
		<link>http://razorblade.netsons.org/2009/01/19/inviare-email-php-in-modo-semplice-e-veloce-usando-la-classe-phpmailer/</link>
		<comments>http://razorblade.netsons.org/2009/01/19/inviare-email-php-in-modo-semplice-e-veloce-usando-la-classe-phpmailer/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 19:40:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[allegati phpmailer]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email con allegati]]></category>
		<category><![CDATA[email con php]]></category>
		<category><![CDATA[PhpMailer]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://razorblade.netsons.org/?p=65</guid>
		<description><![CDATA[<h2>In formato testo semplice o HTML, con o senza allegati</h2>

<p>PHPMailer è un'utilissima classe che rende l'invio di email con PHP davvero semplice. Potete scaricare gratuitamente questa classe dal sito <a href="http://phpmailer.codeworxtech.com/">http://phpmailer.codeworxtech.com/</a> o scaricarla direttamente da <a href="http://sourceforge.net/project/showfiles.php?group_id=26031&#038;package_id=252700">sourceforge</a>.</p>

<p>Per poter utilizzare PHPMailer dovrete scompattare il contenuto dell'archivio scaricato ed inserire la directory 'phpmailer' ( restituita dopo la scompattazione ) all'interno del vostro progetto. Quindi, per utilizzarla nel vostro script, dovrete istanziare  PHPMailer in questo modo:<a href="http://razorblade.netsons.org/2009/01/19/inviare-email-php-in-modo-semplice-e-veloce-usando-la-classe-phpmailer">[...] 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>In formato testo semplice o HTML, con o senza allegati</h2>
<p>PHPMailer è un&#8217;utilissima classe che rende l&#8217;invio di email con PHP davvero semplice. Potete scaricare gratuitamente questa classe dal sito <a href="http://phpmailer.codeworxtech.com/">http://phpmailer.codeworxtech.com/</a> o scaricarla direttamente da <a href="http://sourceforge.net/project/showfiles.php?group_id=26031&#038;package_id=252700">sourceforge</a>.</p>
<p>Per poter utilizzare PHPMailer dovrete scompattare il contenuto dell&#8217;archivio scaricato ed inserire la directory &#8216;phpmailer&#8217; ( restituita dopo la scompattazione ) all&#8217;interno del vostro progetto. Quindi, per utilizzarla nel vostro script, dovrete istanziare  PHPMailer in questo modo:</p>
<pre name="code" class="php">
&lt;?php
require("class.phpmailer.php");
$mail = new PHPMailer();
?&gt;
</pre>
<p>Provate a richiamare il vostro script contenente queste sole righe di codice, se non ottenete nessun errore la classe è stata correttamente installata ed istanziata e il nuovo oggetto $mail è pronto per essere utilizzato.</p>
<p>Tramite PHPMailer possiamo inviare email usando Sendmail ( solo su ambienti unix, corrisponde all&#8217;uso della funzione buil in mail() ), SMTP E qmail. Nel seguente esempio vedremo come inviare utilizzando SMTP, quello di cui avremo bisogno quindi sarà un account email valido. Se possedete un dominio di primo livello con la possibilità di creare account email vi consiglio di farlo, in caso contrario ( per esempio nel caso voleste inviare email lavorando in locale ) potreste utilizzare un account email free.</p>
<pre name="code" class="php">
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();  // diciamo alla classe di usare SMTP
$mail->Host     = "smtp.example.com"; // SMTP server, questo valore è da modificare!

$mail->From     = "from@example.com"; // L'account email che state utilizzando
$mail->AddAddress("myfriend@example.net"); // L'indirizzo email di destinazione

$mail->Subject  = "First PHPMailer Message"; // L'oggetto della email
$mail->Body     = "Hi! \n\n This is my first e-mail sent through PHPMailer."; // Il corpo del messaggio
$mail->WordWrap = 50;

if(!$mail->Send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}
</pre>
<h2>Inviare email con allegati</h2>
<p>Basicamente esistono due possibilità per inviare un allegato</p>
<ul class="listato">
<li>Specificando un file da un percorso fisico</li>
<li>Inserendo l&#8217;allegato in formato binario in una variabile</li>
</ul>
<p>L&#8217;invio di un allegato, grazie a PHPMailer, si riduce all&#8217;inserimento si una semplice linea di codice:</p>
<pre name="code" class="php">
$mail->AddAttachment($path,$name,$encoding,$type);
</pre>
<p>Questa dovrà essere inserita dopo aver instanziato la classe ed ovviamente prima di aver inviato la mail tramite il metodo send().</p>
<p>AddAttachment ha un unico parametro obbligatorio, $path, parametro che dovrà equivalere al percorso fisico del file da inviare come allegato.</p>
<p>Gli altri parametri non sono obbligatori, ma vediamo nel dettaglio a che cose servono.</p>
<ul class="listato">
<li><b>$name</b>: è il nome che vogliamo attribuire all&#8217;allegato. L&#8217;utente destinatario visualizzerà questo nome come nome dell&#8217;allegato in alternativa al nome d&#8217;origine.</li>
<li><b>$encoding</b>: questo parametro è decisamente più tecnico, di default è base64, ma può assumere i valori di 7bit, 8bit, binary &#038; quoted-printable. Se specificheremo un valore che il mailserver non può gestire, questo convertirà l&#8217;encoding passato a parametro con un encoding gestibile.</li>
<li><b>$type</b>: questo parametro corrisponde al MIME type per il file allegato, ovvero determina il tipo del file ( se è una immagine JPG, GIF o se è un file audio MP3, WAV o quant&#8217;altro ). Il valore di default, valido per qualsiasi genere di file è application/octet-stream.</li>
</ul>
<ul>
<h2>Inviare email in formato HTML</h2>
<p>PHPMailer ci da la possibilità di inviare email usando il formato HTML in maniera estremamente semplice. Basterà inserire, anche in questo caso, una semplice linea di codice, prima della chiamata a send():</p>
<pre name="code" class="php">
$mail->IsHTML(true);
</pre>
<p>Il codice HTML della email dovrà essere specificato per il body:</p>
<pre name="code" class="php">
$mail->Body = "Hello, <b>my friend</b>! \n\n This message uses HTML entities!";
</pre>
<p>PHPMailer ci offre alcune altre possibilità avanzate per la gestione degli allegati ( per esempio inline attachment ), potete leggere di più a riguardo nella <a href="http://phpmailer.codeworxtech.com/index.php?pg=tutorial">documentazione ufficiale</a>.</p>
<h2>Estendere PHPMailer</h2>
<p>Nel caso aveste bisogno di inviare email in più parti della vostra applicazione, senza dover specificare ogni volta i parametri di connessione all&#8217;account SMTP, la soluzione è estendere la classe.</p>
<pre name="code" class="php">

require("class.phpmailer.php");

class MyMailer extends PHPMailer {
    // Set default variables for all new objects
    var $From     = "from@email.com";
    var $FromName = "Mailer";
    var $Host     = "smtp1.site.com;smtp2.site.com";
    var $Mailer   = "smtp";                         // Alternative to IsSMTP()
    var $WordWrap = 75;
}
</pre>
<p>Fatto ciò, bisognerà fare attenzione ad utilizzare istanze della nuova classe creata e non direttamente di PHPMailer, come nel seguente esempio </p>
<pre name="code" class="php">
$mail = new MyMailer();
</pre>
<p>$mail, istanza di MyMailer, conterrà al suo interno già tutte le variabili di configurazione, quindi non ci resterà che inserire destinatari, eventualmente degli allegati ed inviare.</p>
<p>Per saperne di più potete consultare <a href="http://phpmailer.codeworxtech.com/index.php?pg=examples">questo link al sito del produttore</a>.</p>
<div class="ratings">Note: There is a rating embedded within this post, please visit this post to rate it.</div>
</ul>


<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/01/19/inviare-email-php-in-modo-semplice-e-veloce-usando-la-classe-phpmailer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
