<?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>About Web Development by Activo &#187; PHP</title>
	<atom:link href="http://www.activoinc.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.activoinc.com/blog</link>
	<description>Web Development in a Web 2.0 World</description>
	<lastBuildDate>Fri, 29 Jan 2010 17:16:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area</title>
		<link>http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/</link>
		<comments>http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 14:00:20 +0000</pubDate>
		<dc:creator>Ron Peled</dc:creator>
				<category><![CDATA[ZenCart]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.activoinc.com/blog/?p=357</guid>
		<description><![CDATA[Yes, I do have some clients that still use ZenCart. In fact, some ZenCart stores are doing very well in terms of SEO and more importantly, sales. This morning, I ran a routine yum update command on one of my clients servers. To my surprise, after rebooting the admin was inaccessible. I&#8217;ll share with you [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I do have some clients that still use ZenCart. In fact, some ZenCart stores are doing very well in terms of SEO and more importantly, sales. This morning, I ran a routine yum update command on one of my clients servers. To my surprise, after rebooting the admin was inaccessible. I&#8217;ll share with you the symptoms so you can identify it and the solution that worked for me.</p>
<p><img class="aligncenter size-full wp-image-358" title="zencart-1.3.8-php-5.2.11-bug" src="http://www.activoinc.com/blog/wp-content/uploads/2009/10/zencart-1.3.8-php-5.2.11-bug.jpg" alt="zencart-1.3.8-php-5.2.11-bug" width="500" height="200" /></p>
<p><strong>The symptoms:</strong></p>
<ol>
<li>Not able to login to Admin panel. More importantly, when you try to login it doesn&#8217;t show any error message.</li>
<li>No admin is able to login, in other words, the problem is global.</li>
<li>If you look in the php log files, you&#8217;ll find a similar line:<br />
<strong>PHP Fatal error:  Class &#8216;queryFactory&#8217; not found in /var/www/html/includes/functions/sessions.php on line 54, referer: http://www.securepersonalcare.com/admin/login.php</strong></li>
</ol>
<p><strong>What is happening:</strong></p>
<p>While I am not sure exactly, <a href="http://www.zen-cart.com/forum/showthread.php?p=786640">this post in the ZenCart forums</a> gave up a clue: it was something in PHP 5.2.11. Now, it may be a new bug in this new version or a bug that got resolved and as a result it broke something in the old ZenCart. Note that as of this writing, ZenCart 1.3.8 is about a year and nine months old. In internet time this is a significant amount of time.</p>
<p><strong>The solution that </strong></p>
<p>Once I had an assumption for what the problem is, I worked on reverting the PHP version to an older one. However, when I tried to revert using the Atomic repository &#8211; it did not work because while they do make old versions of php available, the php-common is not. I ended up removing the atomic repository and using CentOS repositories which provide PHP ver 5.1.6 something. Reinstalled, restarted apache, and vuala!</p>
<p>Now, only if the ZenCart team will get off their butts (or maybe get on their butts) and finish up what they call the next release of this eCommerce application!! What is the next version 1.4, 1.6, 2.0, 2.5? of ZenCart, well that is another discussion altogether.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>August 25, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/" title="Looking Ahead: ZenCart ver 1.4">Looking Ahead: ZenCart ver 1.4</a> (3)</li><li>August 1, 2009 -- <a href="http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/" title="PHP SimpleXML Rules!">PHP SimpleXML Rules!</a> (0)</li><li>June 25, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/" title="Method Overloading Workaround in PHP5">Method Overloading Workaround in PHP5</a> (0)</li><li>June 18, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/18/the-case-for-zencart-supporting-the-long-tail-of-ecommerce/" title="The Case for ZenCart: Supporting the Long Tail of eCommerce">The Case for ZenCart: Supporting the Long Tail of eCommerce</a> (2)</li><li>February 16, 2009 -- <a href="http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/" title="Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!">Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!</a> (1)</li><li>September 22, 2008 -- <a href="http://www.activoinc.com/blog/2008/09/22/zencart-and-magento-for-ecommerce/" title="ZenCart and Magento for eCommerce">ZenCart and Magento for eCommerce</a> (2)</li><li>September 21, 2008 -- <a href="http://www.activoinc.com/blog/2008/09/21/3-steps-to-increase-your-website-traffic-with-popular-keywords/" title="3 Steps to Increase Your Website&#8217;s Traffic with Popular Keywords">3 Steps to Increase Your Website&#8217;s Traffic with Popular Keywords</a> (0)</li><li>August 21, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/21/authorizenet-changes-transaction-id-field-zencart-passes-tests/" title="Authorize.net changes Transaction ID field &#8211; ZenCart passes tests">Authorize.net changes Transaction ID field &#8211; ZenCart passes tests</a> (0)</li><li>May 26, 2008 -- <a href="http://www.activoinc.com/blog/2008/05/26/zencart-develop-an-advanced-plugin-without-overwriting-core-files/" title="ZenCart: Develop an Advanced Plugin Without Overwriting Core Files">ZenCart: Develop an Advanced Plugin Without Overwriting Core Files</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP SimpleXML Rules!</title>
		<link>http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/</link>
		<comments>http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 20:12:37 +0000</pubDate>
		<dc:creator>Ron Peled</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SimpleXML]]></category>

		<guid isPermaLink="false">http://www.activoinc.com/blog/?p=280</guid>
		<description><![CDATA[Last week I was debugging an xml parsing utility in PHP. Debugging can be enjoyable when it goes well but in my case it just wasn&#8217;t happening. It felt like chewing mud. The issue was actually a bug within the libxml library which is a native PHP extension. Apparently it was a bug that was [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was debugging an xml parsing utility in PHP. Debugging can be enjoyable when it goes well but in my case it just wasn&#8217;t happening. It felt like chewing mud. The issue was actually a bug within the libxml library which is a native PHP extension. Apparently it was a bug that was introduced in PHP version 5.2.6 and was addressed in version 5.2.8 or 5.2.9. The bug presented itself when using the xml_parser methods which are built into the PHP. It is the old way of parsing XML with PHP, the new way is using SimpleXML, SimpleXMLElement, or XMLReader objects.</p>
<p>Now, once I read over the documentation I realized how easy it is to use the new SimpleXML. Additionally, I reduced my XML related code size from 100+ lines to less than 20. Fun!</p>
<p>Here is a short example of how to use it, let&#8217;s say we have the following XML structure:</p>
<pre>&lt;webservers&gt;
 &lt;webserver&gt;
 &lt;hostname&gt;dev1&lt;/hostname&gt;
 &lt;purpose&gt;eCommerce LAMP Development&lt;/purpose&gt;
 &lt;os&gt;CentOS&lt;/os&gt;
 &lt;applications&gt;
 &lt;application isInstalled="1"&gt;Apache&lt;/application&gt;
 &lt;application isInstalled="1"&gt;MySQL&lt;/application&gt;
 &lt;application isInstalled="1"&gt;PHP&lt;/application&gt;
 &lt;/applications&gt;
 &lt;/webserver&gt;
&lt;/webservers&gt;</pre>
<p>Now lets observe how to use the SimpleXML class:</p>
<pre>//We'll assume that the above xml is represented as a string and located inside $xmlDoc
//Here we create the SimpleXML object named $xml from the xmlDoc shown above
$xml = simplexml_load_string($xmlDoc);

//Now we can loop through the nodes
//Notice how the node translates to a property of the object)
foreach($xml-&gt;webservers-&gt;webserver as $webserver)
{
  //Here we can use $webserver as a sub-node
  echo "My Web Server Info:\n";
  echo "Hostname: " . $webserver-&gt;hostname . "\n";
  echo "Purpose: " . $webserver-&gt;purpose . "\n";
  echo "OS: ". $webserver-&gt;os . "\n";
  //Now we'll see how we can use the xml node attributes
  foreach($webserver-&gt;applications as $application)
  {
    echo "Application: ". $application;
    echo ($application['isInstalled'] == 1 ? " is installed" : " is not installed");
    echo "\n";
  }
}</pre>
<p>That is it! easy right? I thought so. At least it is much easier than working directly with the old xml_parser methods which turns to be buggy in recent versions of PHP.</p>
<p>A word of caution: I found it is necessary to join the values of the SimpleXML object to a string, sometimes even to an empty string in case that I am sending it to a function. In other words, i had to use:</p>
<pre>myFunction($webserver-&gt;hostname."");</pre>
<p>instead of simply:</p>
<pre>myFunction($webserver-&gt;hostname);</pre>
<p>and the reason is that otherwise PHP would pass a copy of the object instead of triggering the toString() method. By adding the empty string we force PHP to first convert it to string and then send it to the function or method.</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>October 15, 2009 -- <a href="http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/" title="ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area">ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area</a> (3)</li><li>June 25, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/" title="Method Overloading Workaround in PHP5">Method Overloading Workaround in PHP5</a> (0)</li><li>February 16, 2009 -- <a href="http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/" title="Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!">Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!</a> (1)</li><li>August 25, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/" title="Looking Ahead: ZenCart ver 1.4">Looking Ahead: ZenCart ver 1.4</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Method Overloading Workaround in PHP5</title>
		<link>http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/</link>
		<comments>http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 03:35:50 +0000</pubDate>
		<dc:creator>Ron Peled</dc:creator>
				<category><![CDATA[PHP/MySQL]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[method overloading]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.activoinc.com/blog/?p=237</guid>
		<description><![CDATA[This past week I had the need to use overloaded methods in PHP 5. Overloading a method in object oriented design is especially helpful when trying to achieve the same operation while the code needs to be triggered from different states of the application or even different locations of the application. In my case, I [...]]]></description>
			<content:encoded><![CDATA[<p>This past week I had the need to use overloaded methods in PHP 5. Overloading a method in object oriented design is especially helpful when trying to achieve the same operation while the code needs to be triggered from different states of the application or even different locations of the application. In my case, I needed an overloaded constructor to a PHP class. Yes, constructors are also a bit different in PHP 5 but still workable.</p>
<p><img class="alignnone size-full wp-image-239" title="overload_cargo" src="http://www.activoinc.com/blog/wp-content/uploads/2009/06/overload_cargo.jpg" alt="overload_cargo" width="700" height="406" /></p>
<p>To make a long story short, in PHP 5 there is no real way to overload a method like you can with Java. However, it seems like the developers of PHP 5 did have overloading methods in mind and allowed some form of it. It seems like allowing a real method overloads in PHP would be a special case of what the core developers actually allowed to do. The reason behind the current syntax is beyound me. I even tried to look for a PHP roadmap and see if proper method overloading will be introduced in the future but I could not find anything relevant.</p>
<p>A user with the name Noel has posted on DZone a little <a href="http://snippets.dzone.com/posts/show/3237">snippet of code that shows exactly how method overloading in PHP5</a> can be achieved.</p>
<p>Do you know of any intentions on including real method overloading in PHP6?</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>August 25, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/" title="Looking Ahead: ZenCart ver 1.4">Looking Ahead: ZenCart ver 1.4</a> (3)</li><li>October 15, 2009 -- <a href="http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/" title="ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area">ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area</a> (3)</li><li>August 1, 2009 -- <a href="http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/" title="PHP SimpleXML Rules!">PHP SimpleXML Rules!</a> (0)</li><li>February 16, 2009 -- <a href="http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/" title="Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!">Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Studio 6.1: Wrong Way to Enhance a PHP IDE!</title>
		<link>http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/</link>
		<comments>http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 06:24:57 +0000</pubDate>
		<dc:creator>Ron Peled</dc:creator>
				<category><![CDATA[PHP/MySQL]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPEd]]></category>
		<category><![CDATA[Zend Studio]]></category>

		<guid isPermaLink="false">http://www.activoinc.com/blog/?p=185</guid>
		<description><![CDATA[In the past two weeks I have been doing some serious PHP development. Unlike .NET development where Microsoft&#8217;s Visual Studio is second to none, in PHP there was never a clear winner. So, I have decided to take the latest Zend Studio, version 6.1 on eclipse, for a spin.

As always, I give Zend, the company [...]]]></description>
			<content:encoded><![CDATA[<p>In the past two weeks I have been doing some serious PHP development. Unlike .NET development where Microsoft&#8217;s Visual Studio is second to none, in PHP there was never a clear winner. So, I have decided to take the latest <a href="http://www.zend.com/en/products/studio/">Zend Studio</a>, version 6.1 on eclipse, for a spin.</p>
<p><img class="alignnone size-full wp-image-186" title="zend-studio-wrong-way" src="http://www.activoinc.com/blog/wp-content/uploads/2009/02/zend-studio-wrong-way.jpg" alt="" width="474" height="213" /></p>
<p>As always, I give Zend, the company who created PHP a lot of respect. But with my usage of the Zend Studio IDE I have found more annoyances than features that helped me gain productivity. Here are some of the bad items I could not resist but rant about:</p>
<p>1. The entire solution now seems &#8216;gummy&#8217;. Where are the days when we can go through multiple PHP projects, and multiple PHP files in a few clicks and the IDE still feels &#8216;light&#8217;? Well, it doesn&#8217;t. In fact the more I use it the more this new IDE feels &#8216;yuck&#8217;.</p>
<p>2. My experience with the file/project manager on the left hand side was poor at best. If you have some scripts that update a file with fopen(), fwrite() &#8211; I had to force refresh on the parent folder of the updated file otherwise the IDE shows an error message when I try to open the updated file. What?</p>
<p>3. Auto complete is a little wierd. Ok, maybe a lot wierd. I really miss the auto complete that Zend Studio 5.5 used to have. While it is evident that the algorithms are trying their best to be smart, the whole user experience with the location of the auto complete windows, tabs vs enter keys to confirm the selection, and some inconsitencies in UI brings my frustration to uncharted levels. Dear Zend Develop team, can you please download and try Visual Studio and copy the ease of use? not hard to do.</p>
<p>4. Do I really need to create a new project, give it a name, choose a folder if all I want is a new PHP file? really? Do you ask your online users to fill out a 20 field form for a simple contact inquery? I DONT THINK SO.</p>
<p>5. Two files that I need my IDE to handle well: XML and SQL. All I ask for is to show me the text, dress it up with color, and handle nice any auto completion in a smart way. In this new versin of Zend Studio I was simply not able to open some XML files or the rigid editing of it made it impossible to work within the IDE, Notepad served nice in those cases. But this means failure to the IDE&#8217;s interface.</p>
<p><strong>Conclusion<br />
</strong>I do not know what made Zend decide on choosing a wrong turn with the latest version of Zend Studio (6.1). But it seems like the Zend team have decided to sacrifice a lot of functionality in order to cut on development efforts that the eclipse IDE supposedly provides. The only problem here is that eclipse&#8217;s features are weak and not good enough to be considered a good starting point for any PHP IDE who wishes to be claimed the best.</p>
<p>Time to try something new, the buzz seems to favor the latest PHP IDE by <a href="http://www.nusphere.com/">NuSphere: PHPEd</a>.</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>October 15, 2009 -- <a href="http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/" title="ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area">ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area</a> (3)</li><li>August 1, 2009 -- <a href="http://www.activoinc.com/blog/2009/08/01/php-simplexml-rules/" title="PHP SimpleXML Rules!">PHP SimpleXML Rules!</a> (0)</li><li>June 25, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/" title="Method Overloading Workaround in PHP5">Method Overloading Workaround in PHP5</a> (0)</li><li>August 25, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/" title="Looking Ahead: ZenCart ver 1.4">Looking Ahead: ZenCart ver 1.4</a> (3)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.activoinc.com/blog/2009/02/16/zend-studio-61-wrong-way-to-enhance-a-php-ide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Looking Ahead: ZenCart ver 1.4</title>
		<link>http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/</link>
		<comments>http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 09:06:56 +0000</pubDate>
		<dc:creator>Ron Peled</dc:creator>
				<category><![CDATA[PHP/MySQL]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ZenCart]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[MPTT]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[osCommerce]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ZenCart Performance]]></category>
		<category><![CDATA[ZenCart Roadmap]]></category>

		<guid isPermaLink="false">http://www.activoinc.com/blog/?p=32</guid>
		<description><![CDATA[The ZenCart developer team seems to be hard at work and preparing to deliver a new version of ZenCart: ver 1.4. The core developers posted a roadmap brief for version 1.4 back in September of 2007. Recently, additional entries have been posted in the forums describing in more detail the upcoming changes and signaling a [...]]]></description>
			<content:encoded><![CDATA[<p>The ZenCart developer team seems to be hard at work and preparing to deliver a new version of ZenCart: ver 1.4. The core developers posted a roadmap brief for version 1.4 back in September of 2007. Recently, additional entries have been posted in the forums describing in more detail the upcoming changes and signaling a new release is to be expected soon.</p>
<p><img class="alignnone size-full wp-image-33" title="zencart-version-1.4 (future)" src="http://www.activoinc.com/blog/wp-content/uploads/2008/08/zencart-version-1-4.jpg" alt="" width="470" height="101" /></p>
<p><strong>The currently described updates to ZenCart are done all around the DB, its architecture, and improving its performance. To summarise from the ZenCart forums:</strong></p>
<blockquote><p><span style="text-decoration: underline;">New Database Driver Layer</span><br />
Extremely light/flexible drivers make it easier to support other Database Types<br />
Preliminary support for innodb and mysql transactions</p>
<p><span style="text-decoration: underline;">Sql Caching system rewritten</span><br />
Much easier to add new caching types<br />
Preliminary Support for Memcache</p>
<p><span style="text-decoration: underline;">Use of MPTT for category structure</span><br />
Reduces number of queries needed to &#8216;describe&#8217; the category structure<br />
Improves user experience thru reduced page load times</p>
<p><span style="text-decoration: underline;">Supporting Classes to reduce query load</span><br />
Hugely reduces queries needed<br />
Reuses queries using Cache to further improve performance</p></blockquote>
<p><strong>The roadmap for ZenCart ver 1.4 promises the following updates to the code (summarized):</strong></p>
<ul>
<li>Better usage of PHP 5.2 features. This also means 5.2 will be the new minimum requirement.</li>
<li>More Object Oriented code, less of the old osCommerce code.</li>
<li>Lots of DB improvements (some is described above, seems more is yet to come).</li>
<li>Category structure converted to MPTT format. MPTT stands for Modified Preorder Tree Traversal (<a href="http://www.wallpaperama.com/forums/mptt-modified-pre-order-tree-transversal-php-tree-menu-script-t5713.html" target="_blank">explanation of MPTT</a>).</li>
<li>Performance improvements for sites with lots of product attributes.</li>
<li>More function libraries converted to classes.</li>
<li>Duplicate components shared between admin and catalog.</li>
<li>Template system enhancements: less tables and more admin control.</li>
<li>Additional notifiers for the observer system.</li>
<li>Transaction support with InnoDB. Also mentioned as initial stage according to the recent posts of the updates that were done so far.</li>
<li>SwiftMailer instead of phpMailer.</li>
<li>Stock and SKU per product attribute.</li>
<li>Security enhancements.</li>
</ul>
<p>Keep up the good work!</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li>June 18, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/18/the-case-for-zencart-supporting-the-long-tail-of-ecommerce/" title="The Case for ZenCart: Supporting the Long Tail of eCommerce">The Case for ZenCart: Supporting the Long Tail of eCommerce</a> (2)</li><li>September 22, 2008 -- <a href="http://www.activoinc.com/blog/2008/09/22/zencart-and-magento-for-ecommerce/" title="ZenCart and Magento for eCommerce">ZenCart and Magento for eCommerce</a> (2)</li><li>January 28, 2009 -- <a href="http://www.activoinc.com/blog/2009/01/28/open-source-ecommerce-the-good-the-bad-and-the-ugly/" title="Open Source eCommerce: the Good, the Bad, and the Ugly!">Open Source eCommerce: the Good, the Bad, and the Ugly!</a> (1)</li><li>October 15, 2009 -- <a href="http://www.activoinc.com/blog/2009/10/15/zencart-1-3-8-and-php-5-2-11-bug-problem-login-to-admin-area/" title="ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area">ZenCart 1.3.8 and PHP 5.2.11 Bug: problem login to admin area</a> (3)</li><li>June 25, 2009 -- <a href="http://www.activoinc.com/blog/2009/06/25/method-overloading-workaround-in-php5/" title="Method Overloading Workaround in PHP5">Method Overloading Workaround in PHP5</a> (0)</li><li>December 7, 2008 -- <a href="http://www.activoinc.com/blog/2008/12/07/a-list-of-cms-ecommerce-and-blogging-systems-that-officially-support-jquery/" title="A list of CMS and eCommerce systems that officially support jQuery">A list of CMS and eCommerce systems that officially support jQuery</a> (2)</li><li>October 29, 2008 -- <a href="http://www.activoinc.com/blog/2008/10/29/is-magento-commerce-the-new-joomla/" title="Is Magento Commerce the new Joomla?">Is Magento Commerce the new Joomla?</a> (1)</li><li>August 21, 2008 -- <a href="http://www.activoinc.com/blog/2008/08/21/authorizenet-changes-transaction-id-field-zencart-passes-tests/" title="Authorize.net changes Transaction ID field &#8211; ZenCart passes tests">Authorize.net changes Transaction ID field &#8211; ZenCart passes tests</a> (0)</li><li>May 26, 2008 -- <a href="http://www.activoinc.com/blog/2008/05/26/zencart-develop-an-advanced-plugin-without-overwriting-core-files/" title="ZenCart: Develop an Advanced Plugin Without Overwriting Core Files">ZenCart: Develop an Advanced Plugin Without Overwriting Core Files</a> (1)</li><li>October 22, 2009 -- <a href="http://www.activoinc.com/blog/2009/10/22/how-to-detect-if-the-page-is-secure-in-a-magento-template/" title="How to Detect if the Page is Secure in a Magento Template?">How to Detect if the Page is Secure in a Magento Template?</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.activoinc.com/blog/2008/08/25/zencart-ver-1-4-looking-ahead/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
