<?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>stoimen.com/blog &#187; zend framework</title>
	<atom:link href="http://www.stoimen.com/blog/category/a-framework-i-like/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stoimen.com/blog</link>
	<description>web developing</description>
	<lastBuildDate>Wed, 28 Jul 2010 15:07:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Zend_Validate_Db_RecordExists in Zend Framework 1.10+</title>
		<link>http://www.stoimen.com/blog/2010/07/22/zend_validate_db_recordexists-in-zend-framework-1-10/</link>
		<comments>http://www.stoimen.com/blog/2010/07/22/zend_validate_db_recordexists-in-zend-framework-1-10/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 11:24:46 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Column]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Data modeling]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[Row]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web application frameworks]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1809</guid>
		<description><![CDATA[Zend_Validate_Db_RecodExists is an extremely useful validator in Zend Framework when you&#8217;d like to be sure that a give row exists. Now it seems to be even better. Before you could check for a specific row by only comparing a value to the specified column: $validator = new Zend_Validate_Db_RecordExists&#40;'db_table_name', 'column_name'&#41;; if &#40;$validator-&#62;isValid&#40;122&#41;&#41; &#123; ... &#125; which [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/01/25/using-zend-framework-validators-zend_validate_db_recordexists/' rel='bookmark' title='Permanent Link: Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists'>Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists</a></li>
<li><a href='http://www.stoimen.com/blog/2010/04/26/mysql-expressions-in-zend-framework/' rel='bookmark' title='Permanent Link: MySQL Expressions in Zend Framework'>MySQL Expressions in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/' rel='bookmark' title='Permanent Link: Zend Framework: Cache Database Table Schemes'>Zend Framework: Cache Database Table Schemes</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Zend_Validate_Db_RecodExists is an extremely useful validator in Zend Framework when you&#8217;d like to be sure that a give row exists. Now it seems to be even better. Before you could check for a specific row by only comparing a value to the specified column:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$validator</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Validate_Db_RecordExists<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'db_table_name'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'column_name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$validator</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isValid</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">122</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #339933;">...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>which made it useless when you&#8217;d like to compare by more than one column. Now this is changed and you can even exclude given rows by adding an exclude clause.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$validator</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Validate_Db_NoRecordExists<span style="color: #009900;">&#40;</span>
    <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
        <span style="color: #0000ff;">'table'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'field'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'username'</span><span style="color: #339933;">,</span>
        <span style="color: #0000ff;">'exclude'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'field'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'id'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'value'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$user_id</span>
        <span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/01/25/using-zend-framework-validators-zend_validate_db_recordexists/' rel='bookmark' title='Permanent Link: Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists'>Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists</a></li>
<li><a href='http://www.stoimen.com/blog/2010/04/26/mysql-expressions-in-zend-framework/' rel='bookmark' title='Permanent Link: MySQL Expressions in Zend Framework'>MySQL Expressions in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/' rel='bookmark' title='Permanent Link: Zend Framework: Cache Database Table Schemes'>Zend Framework: Cache Database Table Schemes</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/22/zend_validate_db_recordexists-in-zend-framework-1-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting Up Global Cache in Zend Framework</title>
		<link>http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/</link>
		<comments>http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:17:48 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer programming]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[Front Controller pattern]]></category>
		<category><![CDATA[Human Interest]]></category>
		<category><![CDATA[large scale web application]]></category>
		<category><![CDATA[PHP For Applications]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software framework]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Zend Technologies]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1830</guid>
		<description><![CDATA[In a large scale web application, especially based on Zend Framework, there are lot&#8217;s of components that support built in cache support. Such are Zend_Db, Zend_Translate, Zend_Date, etc. Also you may need cache support wherever in the app, so my advice is to setup a cache instance in the &#8220;beginning&#8221;, into the bootstrap.php or even [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/' rel='bookmark' title='Permanent Link: Zend Framework: Cache Database Table Schemes'>Zend Framework: Cache Database Table Schemes</a></li>
<li><a href='http://www.stoimen.com/blog/2010/01/27/theory-of-caching-zend_cache-zend-optimizer/' rel='bookmark' title='Permanent Link: Theory of caching. Zend_Cache &#038; Zend Optimizer.'>Theory of caching. Zend_Cache &#038; Zend Optimizer.</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/' rel='bookmark' title='Permanent Link: Zend Framework: Simple Acl Front Controller Plugin'>Zend Framework: Simple Acl Front Controller Plugin</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In a large scale web application, especially based on Zend Framework, there are lot&#8217;s of components that support built in cache support. Such are <a href="http://framework.zend.com/manual/en/zend.db.html">Zend_Db</a>, <a href="http://zendframework.com/manual/en/zend.translate.html">Zend_Translate</a>, <a href="http://framework.zend.com/manual/en/zend.date.html">Zend_Date</a>, etc. Also you may need cache support wherever in the app, so my advice is to setup a cache instance in the &#8220;beginning&#8221;, into the bootstrap.php or even better &#8211; into a front controller plugin, and to store it into the Zend_Registry. Thus you&#8217;ve to change only the lifetime for specific needs:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> CacheInit <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Plugin_Abstract
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$frontendOptions</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'automatic_serialization'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'lifetime'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">60</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$backendOptions</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'cache_dir'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">realpath</span><span style="color: #009900;">&#40;</span>APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/../cache'</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$cache</span> <span style="color: #339933;">=</span> Zend_Cache<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Core'</span><span style="color: #339933;">,</span>
                                     <span style="color: #0000ff;">'File'</span><span style="color: #339933;">,</span>
                                     <span style="color: #000088;">$frontendOptions</span><span style="color: #339933;">,</span>
                                     <span style="color: #000088;">$backendOptions</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        Zend_Registry<span style="color: #339933;">::</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'cache'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cache</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Than add it as a front controller plugin:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// cache plugin</span>
<span style="color: #000088;">$frontController</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerPlugin</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> CacheInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/' rel='bookmark' title='Permanent Link: Zend Framework: Cache Database Table Schemes'>Zend Framework: Cache Database Table Schemes</a></li>
<li><a href='http://www.stoimen.com/blog/2010/01/27/theory-of-caching-zend_cache-zend-optimizer/' rel='bookmark' title='Permanent Link: Theory of caching. Zend_Cache &#038; Zend Optimizer.'>Theory of caching. Zend_Cache &#038; Zend Optimizer.</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/' rel='bookmark' title='Permanent Link: Zend Framework: Simple Acl Front Controller Plugin'>Zend Framework: Simple Acl Front Controller Plugin</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Connect MySQL</title>
		<link>http://www.stoimen.com/blog/2010/07/20/zend-framework-connect-mysql/</link>
		<comments>http://www.stoimen.com/blog/2010/07/20/zend-framework-connect-mysql/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 11:12:45 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Adapter pattern]]></category>
		<category><![CDATA[Applied mathematics]]></category>
		<category><![CDATA[Bootstrapping]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[MySQL Americas Inc.]]></category>
		<category><![CDATA[Resampling]]></category>
		<category><![CDATA[Software design patterns]]></category>
		<category><![CDATA[Statistical inference]]></category>
		<category><![CDATA[Statistics]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1832</guid>
		<description><![CDATA[There are so many tutorials about that, but let me add it one more time. You&#8217;ve to use the PDO_MYSQL adapter: // where params include adapter, host // username, password and dbname $db = new Zend_Db_Adapter_Pdo_Mysql&#40;$params&#41;; and set the default adapter Zend_Db_Table::setDefaultAdapter&#40;$db&#41;; That can be done in the bootstrap or into a front controller plugin! [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2009/06/19/zend-framework-quick-tutorial-part-3-front-controller-plugins/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins'>Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2009/10/27/zend-framework-custom-urls/' rel='bookmark' title='Permanent Link: Zend Framework custom URLs'>Zend Framework custom URLs</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>There are so many tutorials about that, but let me add it one more time. You&#8217;ve to use the PDO_MYSQL adapter:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// where params include adapter, host</span>
<span style="color: #666666; font-style: italic;">// username, password and dbname</span>
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Db_Adapter_Pdo_Mysql<span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>and set the default adapter</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Zend_Db_Table<span style="color: #339933;">::</span><span style="color: #004000;">setDefaultAdapter</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>That can be done in the bootstrap or into a front controller plugin!</p>


<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2009/06/19/zend-framework-quick-tutorial-part-3-front-controller-plugins/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins'>Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2009/10/27/zend-framework-custom-urls/' rel='bookmark' title='Permanent Link: Zend Framework custom URLs'>Zend Framework custom URLs</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/20/zend-framework-connect-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Cache Database Table Schemes</title>
		<link>http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/</link>
		<comments>http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 11:03:04 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer programming]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software framework]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1834</guid>
		<description><![CDATA[If you&#8217;re familiar with Zend Framework, you should know how to turn your database tables into models. Simply extend the Zend_Db_Table class. This is the very general example. There are lots of variations how to name the model classes and what member variables they can have. &#60;? class User extends Zend_Db_Table &#123;&#125; The question is [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/04/26/mysql-expressions-in-zend-framework/' rel='bookmark' title='Permanent Link: MySQL Expressions in Zend Framework'>MySQL Expressions in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/01/25/using-zend-framework-validators-zend_validate_db_recordexists/' rel='bookmark' title='Permanent Link: Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists'>Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re familiar with Zend Framework, you should know how to turn your database tables into models. Simply extend the <a title="Zend Db Table" href="http://framework.zend.com/manual/en/zend.db.table.html" target="_blank">Zend_Db_Table</a> class. This is the very general example. There are lots of variations how to name the model classes and what member variables they can have.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000000; font-weight: bold;">class</span> User <span style="color: #000000; font-weight: bold;">extends</span> Zend_Db_Table
<span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span></pre></div></div>

<h2>The question is &#8230;</h2>
<p>The question is how the framework knows what columns there are in a given table. That&#8217;s done by PHP on every call of the class, and the question is: isn&#8217;t that too slow? Yes it is and there&#8217;s a solution &#8211; to cache the table&#8217;s schema:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Zend_Db_Table_Abstract<span style="color: #339933;">::</span><span style="color: #004000;">setDefaultMetadataCache</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cache</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h2>Is there any problem?</h2>
<p>Why it isn&#8217;t a default behavior when it&#8217;s so good? Because you&#8217;ve first to setup the cache, which is not always permitted &#8211; at least you&#8217;ve to have writing permissions. And on the second place if you&#8217;re rapidly developing the system and you change the database schema too frequently, you&#8217;ve to clear the cache every time. So it&#8217;s a good solution for the production server, but you can skip it while developing.</p>


<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/04/26/mysql-expressions-in-zend-framework/' rel='bookmark' title='Permanent Link: MySQL Expressions in Zend Framework'>MySQL Expressions in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/01/25/using-zend-framework-validators-zend_validate_db_recordexists/' rel='bookmark' title='Permanent Link: Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists'>Using Zend Framework validators &#8211; Zend_Validate_Db_RecordExists</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/19/zend-framework-cache-database-table-schemes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Mail with GMail</title>
		<link>http://www.stoimen.com/blog/2010/07/18/zend_mail-with-gmail/</link>
		<comments>http://www.stoimen.com/blog/2010/07/18/zend_mail-with-gmail/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 11:39:20 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer-mediated communication]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Cross-platform software]]></category>
		<category><![CDATA[E-mail]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Gmail interface]]></category>
		<category><![CDATA[Human Interest]]></category>
		<category><![CDATA[Simple Mail Transfer Protocol]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[World Wide Web]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1817</guid>
		<description><![CDATA[You know how to setup Zend_Mail with SMTP, but you don&#8217;t know how to set it up with GMail! Here&#8217;s how to do it. Just follow the instructions $mailTransport = new Zend_Mail_Transport_Smtp&#40;'smtp.gmail.com', array&#40; 'auth' =&#62; 'login', 'username' =&#62; 'xxxxxx@gmail.com', 'password' =&#62; 'passxxxxx', 'port' =&#62; '587', 'ssl' =&#62; 'tls', &#41;&#41;; Zend_Mail::setDefaultTransport&#40;$mailTransport&#41;; Related posts:Send Mail with Zend [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/03/25/send-mail-with-zend-framework/' rel='bookmark' title='Permanent Link: Send Mail with Zend Framework'>Send Mail with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/17/send-html-mails-with-zend_mail/' rel='bookmark' title='Permanent Link: Send Html Mails with Zend_Mail'>Send Html Mails with Zend_Mail</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/28/send-authenticated-post-request-with-zend_http_client/' rel='bookmark' title='Permanent Link: Send Authenticated POST Request with Zend_Http_Client'>Send Authenticated POST Request with Zend_Http_Client</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stoimen.com/blog/wp-content/uploads/2010/07/zend_mail_gmail.jpg"><img src="http://www.stoimen.com/blog/wp-content/uploads/2010/07/zend_mail_gmail.jpg" alt="Zend_Mail and GMail" title="zend_mail_gmail" width="250" height="370" class="aligncenter size-full wp-image-1821" /></a><br />
You know how to setup Zend_Mail with SMTP, but you don&#8217;t know how to set it up with GMail! Here&#8217;s how to do it. Just follow the instructions <img src='http://www.stoimen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$mailTransport</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Mail_Transport_Smtp<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'smtp.gmail.com'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'auth'</span>     <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'login'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'username'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'xxxxxx@gmail.com'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'passxxxxx'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'port'</span>     <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'587'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'ssl'</span>      <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'tls'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Zend_Mail<span style="color: #339933;">::</span><span style="color: #004000;">setDefaultTransport</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mailTransport</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/03/25/send-mail-with-zend-framework/' rel='bookmark' title='Permanent Link: Send Mail with Zend Framework'>Send Mail with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/17/send-html-mails-with-zend_mail/' rel='bookmark' title='Permanent Link: Send Html Mails with Zend_Mail'>Send Html Mails with Zend_Mail</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/28/send-authenticated-post-request-with-zend_http_client/' rel='bookmark' title='Permanent Link: Send Authenticated POST Request with Zend_Http_Client'>Send Authenticated POST Request with Zend_Http_Client</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/18/zend_mail-with-gmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send Html Mails with Zend_Mail</title>
		<link>http://www.stoimen.com/blog/2010/07/17/send-html-mails-with-zend_mail/</link>
		<comments>http://www.stoimen.com/blog/2010/07/17/send-html-mails-with-zend_mail/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 11:31:47 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[E-mail]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Spamming]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[web system]]></category>
		<category><![CDATA[World Wide Web]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1815</guid>
		<description><![CDATA[Typically you&#8217;d never like to send a non-html formatted mail from your web system. It&#8217;s ugly and it&#8217;s difficult to read. Instead of sending pure text, you&#8217;d like to add some images and styles. The way you can do it with Zend_Mail is simple enough. Replace the setBody method with setBodyHtml. Isn&#8217;t that natural? // [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/03/25/send-mail-with-zend-framework/' rel='bookmark' title='Permanent Link: Send Mail with Zend Framework'>Send Mail with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/18/zend_mail-with-gmail/' rel='bookmark' title='Permanent Link: Zend_Mail with GMail'>Zend_Mail with GMail</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/28/send-authenticated-post-request-with-zend_http_client/' rel='bookmark' title='Permanent Link: Send Authenticated POST Request with Zend_Http_Client'>Send Authenticated POST Request with Zend_Http_Client</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stoimen.com/blog/wp-content/uploads/2010/07/mails.jpg"><img src="http://www.stoimen.com/blog/wp-content/uploads/2010/07/mails.jpg" alt="Zend_Mail" title="mails" width="430" height="276" class="aligncenter size-full wp-image-1822" /></a><br />
Typically you&#8217;d never like to send a non-html formatted mail from your web system. It&#8217;s ugly and it&#8217;s difficult to read. Instead of sending pure text, you&#8217;d like to add some images and styles. The way you can do it with Zend_Mail is simple enough. Replace the setBody method with setBodyHtml. Isn&#8217;t that natural?</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// before</span>
<span style="color: #000088;">$mail</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Mail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'utf-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFrom</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sender@example.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Sender Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBody</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message in Html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addTo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'recipient@example.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Recepient Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setSubject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Subject'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// after</span>
<span style="color: #000088;">$mail</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Mail<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'utf-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFrom</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'sender@example.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Sender Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBodyHtml</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message in Html'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addTo</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'recipient@example.com'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Recepient Name'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setSubject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Subject'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mail</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">send</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/03/25/send-mail-with-zend-framework/' rel='bookmark' title='Permanent Link: Send Mail with Zend Framework'>Send Mail with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/18/zend_mail-with-gmail/' rel='bookmark' title='Permanent Link: Zend_Mail with GMail'>Zend_Mail with GMail</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/28/send-authenticated-post-request-with-zend_http_client/' rel='bookmark' title='Permanent Link: Send Authenticated POST Request with Zend_Http_Client'>Send Authenticated POST Request with Zend_Http_Client</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/17/send-html-mails-with-zend_mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Media RSS and ZF &#8211; Part 2</title>
		<link>http://www.stoimen.com/blog/2010/07/14/media-rss-and-zf-part-2/</link>
		<comments>http://www.stoimen.com/blog/2010/07/14/media-rss-and-zf-part-2/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:05:15 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer file formats]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Software architecture]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software framework]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web application frameworks]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1803</guid>
		<description><![CDATA[Here&#8217;s the promised chunk of code making the most simple bridge between Zend Framework and Media RSS. Step 1 Just add a simple action in a controller: class IndexController extends Zend_Controller_Action &#123; public function indexAction&#40;&#41; &#123; $this-&#62;getResponse&#40;&#41;-&#62;setHeader&#40;'Content-Type', 'application/xml'&#41;; $this-&#62;view-&#62;somevar = 'some value'; &#160; echo $this-&#62;view-&#62;render&#40;'index/index.xml'&#41;; &#160; $this-&#62;_helper-&#62;layout&#40;&#41;-&#62;disableLayout&#40;&#41;; $this-&#62;_helper-&#62;viewRenderer-&#62;setNoRender&#40;true&#41;; &#125; &#125; Step 2 After you&#8217;ve setup [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/13/zend-framework-and-media-rss/' rel='bookmark' title='Permanent Link: Zend Framework and Media RSS'>Zend Framework and Media RSS</a></li>
<li><a href='http://www.stoimen.com/blog/2010/05/25/download-files-with-zend-framework/' rel='bookmark' title='Permanent Link: Download Files with Zend Framework'>Download Files with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/10/json-and-zend-framework-zend_json/' rel='bookmark' title='Permanent Link: JSON and Zend Framework? &#8211; Zend_Json'>JSON and Zend Framework? &#8211; Zend_Json</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the promised chunk of code making the most simple bridge between Zend Framework and Media RSS.</p>
<h2>Step 1</h2>
<p>Just add a simple action in a controller:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> IndexController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> indexAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getResponse</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setHeader</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-Type'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'application/xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">somevar</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'some value'</span><span style="color: #339933;">;</span>
&nbsp;
	    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">render</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index/index.xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_helper<span style="color: #339933;">-&gt;</span><span style="color: #004000;">layout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">disableLayout</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span>_helper<span style="color: #339933;">-&gt;</span><span style="color: #004000;">viewRenderer</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setNoRender</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Step 2</h2>
<p>After you&#8217;ve setup the xml file as a view script &#8211; you can simply access it as a normal Zend Framework view:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;rss</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.0&quot;</span> <span style="color: #000066;">xmlns:media</span>=<span style="color: #ff0000;">&quot;http://search.yahoo.com/mrss/&quot;</span> <span style="color: #000066;">xmlns:av</span>=<span style="color: #ff0000;">&quot;http://www.searchvideo.com/schemas/av/1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;?php</span> echo $this-<span style="color: #000000; font-weight: bold;">&gt;</span></span>somevar ?&gt;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   ...
   other media rss elements
   ...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/13/zend-framework-and-media-rss/' rel='bookmark' title='Permanent Link: Zend Framework and Media RSS'>Zend Framework and Media RSS</a></li>
<li><a href='http://www.stoimen.com/blog/2010/05/25/download-files-with-zend-framework/' rel='bookmark' title='Permanent Link: Download Files with Zend Framework'>Download Files with Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/10/json-and-zend-framework-zend_json/' rel='bookmark' title='Permanent Link: JSON and Zend Framework? &#8211; Zend_Json'>JSON and Zend Framework? &#8211; Zend_Json</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/14/media-rss-and-zf-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework and Media RSS</title>
		<link>http://www.stoimen.com/blog/2010/07/13/zend-framework-and-media-rss/</link>
		<comments>http://www.stoimen.com/blog/2010/07/13/zend-framework-and-media-rss/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 19:23:32 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer file formats]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Content syndication markup language]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[possible solutions]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend Technologies]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1795</guid>
		<description><![CDATA[The Problem Since native RSS format is not designed to deliver media content, there is a need for newer format supporting video and audio. There is such format &#8211; Media RSS introduced by Yahoo! in 2004. Actually now RSS supports some king of pseudo audio and video with the enclosure tag. Although there is a [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/14/media-rss-and-zf-part-2/' rel='bookmark' title='Permanent Link: Media RSS and ZF &#8211; Part 2'>Media RSS and ZF &#8211; Part 2</a></li>
<li><a href='http://www.stoimen.com/blog/2010/04/28/zend_datesetoptions-and-format_type-in-zend-framework-1-10-3/' rel='bookmark' title='Permanent Link: Zend_Date::setOptions and format_type in Zend Framework 1.10.3'>Zend_Date::setOptions and format_type in Zend Framework 1.10.3</a></li>
<li><a href='http://www.stoimen.com/blog/2010/05/25/download-files-with-zend-framework/' rel='bookmark' title='Permanent Link: Download Files with Zend Framework'>Download Files with Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2>The Problem</h2>
<p>Since native RSS format is not designed to deliver media content, there is a need for newer format supporting video and audio. There is such format &#8211; <a title="Media Rss Yahoo!" href="http://video.search.yahoo.com/mrss" target="_blank">Media RSS</a> introduced by Yahoo! in 2004. Actually now RSS supports some king of pseudo audio and video with the enclosure tag.</p>
<p><a href="http://www.stoimen.com/blog/wp-content/uploads/2010/07/radio-media.jpeg"><img class="aligncenter size-full wp-image-1804" title="Radio Set" src="http://www.stoimen.com/blog/wp-content/uploads/2010/07/radio-media.jpeg" alt="Inserting Media In RSS with Media RSS" width="430" height="322" /></a></p>
<p>Although there is a standardized format, there is not a Zend Framework native module. There is however a <a title="Zend Framework and Media RSS" href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Feed_Writer_Extension_MediaRSS+-+Justin+Hart" target="_blank">proposal</a>, but that&#8217;s far not enough.</p>
<h2>Possible Solutions</h2>
<p>For me there are two possible solutions. The first is writing Zend_Feed_Mrss and extend the <a href="http://framework.zend.com/apidoc/core/Zend_Feed/Zend_Feed_Rss.html" target="_blank">Zend_Feed_Rss</a> functionality, but that appears to be a non-trivial task. The second solution is to write custom view returning XML, which I&#8217;m choosing for now. I hope I can paste some code soon!</p>


<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/07/14/media-rss-and-zf-part-2/' rel='bookmark' title='Permanent Link: Media RSS and ZF &#8211; Part 2'>Media RSS and ZF &#8211; Part 2</a></li>
<li><a href='http://www.stoimen.com/blog/2010/04/28/zend_datesetoptions-and-format_type-in-zend-framework-1-10-3/' rel='bookmark' title='Permanent Link: Zend_Date::setOptions and format_type in Zend Framework 1.10.3'>Zend_Date::setOptions and format_type in Zend Framework 1.10.3</a></li>
<li><a href='http://www.stoimen.com/blog/2010/05/25/download-files-with-zend-framework/' rel='bookmark' title='Permanent Link: Download Files with Zend Framework'>Download Files with Zend Framework</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/13/zend-framework-and-media-rss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Default Error Handling in Zend Framework</title>
		<link>http://www.stoimen.com/blog/2010/07/07/default-error-handling-in-zend-framework/</link>
		<comments>http://www.stoimen.com/blog/2010/07/07/default-error-handling-in-zend-framework/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 09:28:59 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[Computer programming]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[Exception handling]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Technology/Internet]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1775</guid>
		<description><![CDATA[Zend_Controller_Action_Exception There&#8217;s a cool feature in Zend Framework when a controller or action doesn&#8217;t exists. That&#8217;s really useful, because you simply write an ErrorController.php in you default module and every action&#8217;s exception sends the user to this controller/action and the job is done for you. What is important here is to show the error message [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/06/16/zend-examples-get-parameters-default-value/' rel='bookmark' title='Permanent Link: Zend Examples: GET Parameters Default Value'>Zend Examples: GET Parameters Default Value</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/' rel='bookmark' title='Permanent Link: Zend Framework: Simple Acl Front Controller Plugin'>Zend Framework: Simple Acl Front Controller Plugin</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/23/bind-zend-action-with-non-default-view-part-2/' rel='bookmark' title='Permanent Link: Bind Zend Action with Non-Default View &#8211; Part 2'>Bind Zend Action with Non-Default View &#8211; Part 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2>Zend_Controller_Action_Exception</h2>
<p>There&#8217;s a cool feature in Zend Framework when a controller or action doesn&#8217;t exists. That&#8217;s really useful, because you simply write an ErrorController.php in you default module and every action&#8217;s exception sends the user to this controller/action and the job is done for you. What is important here is to show the error message at least on the development stage. Actually the request stores it as a parameter. Here&#8217;s some source:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> ErrorController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> errorAction<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$errorHandler</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRequest</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParam</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error_handler'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">/* @var $error Zend_Controller_Action_Exception */</span>
        <span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$errorHandler</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">exception</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$error</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2010/06/16/zend-examples-get-parameters-default-value/' rel='bookmark' title='Permanent Link: Zend Examples: GET Parameters Default Value'>Zend Examples: GET Parameters Default Value</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/' rel='bookmark' title='Permanent Link: Zend Framework: Simple Acl Front Controller Plugin'>Zend Framework: Simple Acl Front Controller Plugin</a></li>
<li><a href='http://www.stoimen.com/blog/2010/06/23/bind-zend-action-with-non-default-view-part-2/' rel='bookmark' title='Permanent Link: Bind Zend Action with Non-Default View &#8211; Part 2'>Bind Zend Action with Non-Default View &#8211; Part 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/07/default-error-handling-in-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework: Simple Acl Front Controller Plugin</title>
		<link>http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/</link>
		<comments>http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 19:00:59 +0000</pubDate>
		<dc:creator>Stoimen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[micro tutorial]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[access control list]]></category>
		<category><![CDATA[Computer programming]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[Front Controller pattern]]></category>
		<category><![CDATA[PHP programming language]]></category>
		<category><![CDATA[Software design patterns]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web application frameworks]]></category>

		<guid isPermaLink="false">http://www.stoimen.com/blog/?p=1771</guid>
		<description><![CDATA[Almost every web site need some abstraction over the access control list (ACL) to grant access of its users. As usual Zend Framework has quite good mechanism to deal with this &#8211; Zend_Acl. Out in the web there are a lot of resources about Zend_Acl&#8217;s usage, so I ain&#8217;t going to cover it one more [...]


Related posts:<ol><li><a href='http://www.stoimen.com/blog/2009/06/19/zend-framework-quick-tutorial-part-3-front-controller-plugins/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins'>Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/07/default-error-handling-in-zend-framework/' rel='bookmark' title='Permanent Link: Default Error Handling in Zend Framework'>Default Error Handling in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stoimen.com/blog/wp-content/uploads/2010/07/access.jpg"><img class="aligncenter size-full wp-image-1776" title="access" src="http://www.stoimen.com/blog/wp-content/uploads/2010/07/access.jpg" alt="access with Zend_Acl" width="430" height="286" /></a></p>
<p>Almost every web site need some abstraction over the access control list (ACL) to grant access of its users. As usual Zend Framework has quite good mechanism to deal with this &#8211; <a title="Zend_Acl" href="http://framework.zend.com/manual/en/zend.acl.html" target="_blank">Zend_Acl</a>.</p>
<p>Out in the web there are a lot of resources about Zend_Acl&#8217;s usage, so I ain&#8217;t going to cover it one more time, but simply copy/paste a very small front controller plugin implementing the basic usage of Zend_Acl.</p>
<p>Note that instead of defining the __construct() here is called preDispatch where the request is passed as a parameter. However only by copy pasting not every answer will be given. That&#8217;s why I&#8217;m going to write more about Zend_Acl in my future posts, for now only the source code:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> AclInit <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Plugin_Abstract
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> preDispatch<span style="color: #009900;">&#40;</span>Zend_Controller_Request_Abstract <span style="color: #000088;">$request</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// create new acl object</span>
        <span style="color: #000088;">$acl</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Acl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// define resources. typically there are</span>
        <span style="color: #666666; font-style: italic;">// only four resources from the CRUD functionality</span>
        <span style="color: #666666; font-style: italic;">// but there can be added more resources</span>
        <span style="color: #000088;">$acl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Resource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Resource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'create'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Resource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'read'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Resource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'update'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Resource<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'delete'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// define roles</span>
        <span style="color: #000088;">$acl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">addRole</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Role<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'guest'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">addRole</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Acl_Role<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'admin'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// define privileges</span>
        <span style="color: #000088;">$acl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">allow</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'guest'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'read'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #339933;">-&gt;</span><span style="color: #004000;">allow</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'admin'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// setup acl in the registry for more</span>
        Zend_Registry<span style="color: #339933;">::</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'acl'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$acl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">// check permissions</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$acl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">isAllowed</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'guest'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActionName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setControllerName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setActionName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>



<p>Related posts:<ol><li><a href='http://www.stoimen.com/blog/2009/06/19/zend-framework-quick-tutorial-part-3-front-controller-plugins/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins'>Zend Framework &#8211; quick tutorial (part 3) &#8211; front controller plugins</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/07/default-error-handling-in-zend-framework/' rel='bookmark' title='Permanent Link: Default Error Handling in Zend Framework'>Default Error Handling in Zend Framework</a></li>
<li><a href='http://www.stoimen.com/blog/2010/07/21/setting-up-global-cache-in-zend-framework/' rel='bookmark' title='Permanent Link: Setting Up Global Cache in Zend Framework'>Setting Up Global Cache in Zend Framework</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.stoimen.com/blog/2010/07/06/zend-framework-simple-acl-front-controller-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
