<?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>Md Emran Hasan &#187; Web Development</title>
	<atom:link href="http://www.phpfour.com/blog/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpfour.com/blog</link>
	<description>Emran&#039;s sharing on web technologies</description>
	<lastBuildDate>Mon, 31 May 2010 03:23:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Quick start on new Facebook PHP SDK (IFrame based)</title>
		<link>http://www.phpfour.com/blog/2010/05/quick-start-on-new-facebook-php-sdk-iframe-based/</link>
		<comments>http://www.phpfour.com/blog/2010/05/quick-start-on-new-facebook-php-sdk-iframe-based/#comments</comments>
		<pubDate>Mon, 03 May 2010 20:39:46 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Graph API]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=278</guid>
		<description><![CDATA[[UPDATE ON MAY 31] Facebook has updated their SDK last week so whoever is actively developing applications using it, should update their version. I have made some adjustments to the code presented here to match the changes. Also, there is a new preference in the Migration tab in your application settings that you will need [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<div class="attention"><strong>[UPDATE ON MAY 31]</strong> Facebook has updated their SDK last week so whoever is actively developing applications using it, should update their version. I have made some adjustments to the code presented here to match the changes. Also, there is a new preference in the <strong>Migration</strong> tab in your application settings that you will need to enable to utilize the full potential of the new PHP and JavaScript SDKs.</div>
<p>The new <a href="http://developers.facebook.com/docs/" target="_blank">Facebook API</a> has already spread over the application developers and if you&#8217;re like me, you&#8217;ve already got your hands dirty to see how this new thing works. If you have tried to follow the documentation to <a href="http://developers.facebook.com/docs/guides/canvas/#auth" target="_blank">authorize/get session</a> in your canvas application, it is likely you have already hit roadblocks. Well, I am no savior but I have glued together a few clues and got it working for myself.</p>
<p>I am assuming that you have already created your application by following the <a href="http://developers.facebook.com/docs/guides/canvas/#canvas" target="_blank">Getting Started</a> section from the official documentation. Also, this is for <strong>IFrame based</strong> applications only.</p>
<p>Enough talking, let&#8217;s get some code.</p>
<p><strong><span style="text-decoration: underline;">Step 1: Get the new SDK</span></strong></p>
<p>Download the new SDK from <a href="http://github.com/facebook/php-sdk/" target="_blank">github</a>. We will only need the <strong>facebook.php</strong> file from the <strong>src</strong> folder. In our project directory, let&#8217;s create a folder called &#8220;lib&#8221; and put the file there.</p>
<p><strong><span style="text-decoration: underline;">Step 2: A configuration file</span></strong></p>
<p>Let&#8217;s now create a configuration file to store our facebook configuration. Let&#8217;s name it <strong>config.php</strong>. Here goes the source:</p>
<pre class="brush: php;">
&lt;?php

define(&quot;FACEBOOK_APP_ID&quot;, '113795715321151');
define(&quot;FACEBOOK_API_KEY&quot;, '064baf5fb98de050cd7b9a001ca1988b');
define(&quot;FACEBOOK_SECRET_KEY&quot;, '430f43c01f6dfe02c284b4545976f9ce');
define(&quot;FACEBOOK_CANVAS_URL&quot;, 'http://apps.facebook.com/emran-test-app/');
</pre>
<p><strong><span style="text-decoration: underline;">Step 3: Application Main Page</span></strong></p>
<p>This file will be the main entry point to our facebook application. It just instantiates the facebook object, sets the configuration and checks for a valid session. If it does not find a valid session, it redirects to the login page. For first time visitors, it will be the authorization page. On later requests, the operation will occur in the background &#8211; without any user interaction.</p>
<pre class="brush: php;">
&lt;?php

include_once 'lib/facebook.php';
include_once 'config.php';

$facebook = new Facebook(array(
    'appId'  =&gt; FACEBOOK_APP_ID,
    'secret' =&gt; FACEBOOK_SECRET_KEY,
    'cookie' =&gt; true,
    'domain' =&gt; 'phpfour.com'
));

$session = $facebook-&gt;getSession();

if (!$session) {

    $url = $facebook-&gt;getLoginUrl(array(
               'canvas' =&gt; 1,
               'fbconnect' =&gt; 0
           ));

    echo &quot;&lt;script type='text/javascript'&gt;top.location.href = '$url';&lt;/script&gt;&quot;;

} else {

    try {

        $uid = $facebook-&gt;getUser();
        $me = $facebook-&gt;api('/me');

        $updated = date(&quot;l, F j, Y&quot;, strtotime($me['updated_time']));

        echo &quot;Hello &quot; . $me['name'] . &quot;&lt;br /&gt;&quot;;
        echo &quot;You last updated your profile on &quot; . $updated;

    } catch (FacebookApiException $e) {

        echo &quot;Error:&quot; . print_r($e, true);

    }
}
</pre>
<p><span id="more-278"></span></p>
<p>You might be wondering &#8211; it&#8217;s pretty straight-forward, so what&#8217;s the catch ? Well, to be honest, the documentation does not have the &#8220;canvas&#8221; parameter mentioned anywhere which does the primary magic here. Also, if you do not use the javascript trick, then you end up with an authorization dialog with full facebook UI within the iframe itself (see below).</p>
<p align="center"><a href="http://www.phpfour.com/img/fb-auth-without-js.png"><img src="http://www.phpfour.com/img/fb-auth-without-js.png" alt="" title="Auth without JS redirect" width="300" height="213" class="aligncenter size-medium wp-image-281" /></a></p>
<p><strong><span style="text-decoration: underline;">CodeIgniter Version</span></strong></p>
<p>Here is the CodeIgniter version of the above example. The significance is that CodeIgniter removes the values from the $_GET super global &#8211; which is required for the library to work. We thus re-populate it on the constructor ourselves and start a session to share data among subsequent page visits.</p>
<pre class="brush: php;">
&lt;?php

include_once APPPATH . 'libraries/facebook-php-sdk/facebook.php';

class Test extends Controller
{
    private $facebook;

    public function __construct()
    {
        parent::__construct();

        parse_str($_SERVER['QUERY_STRING'], $_GET);
        session_start();
    }

    public function index()
    {
        $this-&gt;facebook = new Facebook(array(
            'appId'  =&gt; $this-&gt;config-&gt;item('facebook_app_id'),
            'secret' =&gt; $this-&gt;config-&gt;item('facebook_secret_key'),
            'cookie' =&gt; true,
            'domain' =&gt; 'phpfour.com'
        ));

        $session = $this-&gt;facebook-&gt;getSession();

        if (!$session) {

            $url = $this-&gt;facebook-&gt;getLoginUrl(array('canvas' =&gt; 1, 'fbconnect' =&gt; 0));
            echo &quot;&lt;script type='text/javascript'&gt;top.location.href = '$url';&lt;/script&gt;&quot;;

        } else {

            try {

                $uid = $this-&gt;facebook-&gt;getUser();
                $me = $this-&gt;facebook-&gt;api('/me');

                $updated = date(&quot;l, F j, Y&quot;, strtotime($me['updated_time']));

                echo &quot;Hello &quot; . $me['name'] . &quot;&lt;br /&gt;&quot;;
                echo &quot;You last updated your profile on &quot; . $updated;

            } catch (FacebookApiException $e) {

                echo &quot;Error:&quot; . print_r($e, true);

            }
        }

    }
}
</pre>
<p>Hope I am able to help a few people. </p>
<p>Cheers!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;bodytext=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;selection=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;notes=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;t=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;annotation=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;title=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;body=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F05%2Fquick-start-on-new-facebook-php-sdk-iframe-based%2F&amp;t=Quick%20start%20on%20new%20Facebook%20PHP%20SDK%20%28IFrame%20based%29&amp;s=%5BUPDATE%20ON%20MAY%2031%5D%20Facebook%20has%20updated%20their%20SDK%20last%20week%20so%20whoever%20is%20actively%20developing%20applications%20using%20it%2C%20should%20update%20their%20version.%20I%20have%20made%20some%20adjustments%20to%20the%20code%20presented%20here%20to%20match%20the%20changes.%20Also%2C%20there%20is%20a%20new%20prefe" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2010/05/quick-start-on-new-facebook-php-sdk-iframe-based/feed/</wfw:commentRss>
		<slash:comments>110</slash:comments>
		</item>
		<item>
		<title>Enterprise PHP</title>
		<link>http://www.phpfour.com/blog/2010/02/enterprise-php/</link>
		<comments>http://www.phpfour.com/blog/2010/02/enterprise-php/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 20:11:13 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[softexpo]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=273</guid>
		<description><![CDATA[I presented this talk on the Soft Expo 2010 &#8211; the largest software fair in Bangladesh. The intention was to clear some of the misconception about PHP, the growth of PHP, how it can fit in the enterprise now, etc. After these, I shed light on some topics that a company/developer should keep in mind [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>I presented this talk on the Soft Expo 2010 &#8211; the largest software fair in Bangladesh. The intention was to clear some of the misconception about PHP, the growth of PHP, how it can fit in the enterprise now, etc. </p>
<p>After these, I shed light on some topics that a company/developer should keep in mind in order to write good software in PHP. This was followed by live session on caching, mysql query optimization, use of Xdebug, etc.</p>
<p>So here goes the presentation:</p>
<div style="margin: 0pt auto; width:425px; text-align: center;" id="__ss_3176537"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=enterprisephp-100214110838-phpapp01&#038;stripped_title=enterprise-php-3176537" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=enterprisephp-100214110838-phpapp01&#038;stripped_title=enterprise-php-3176537" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p>And a big thanks to Ivo Jansch&#8217;s &#8220;<a href="http://www.slideshare.net/ijansch/php-in-the-real-world">PHP in the real wolrd</a>&#8221; presentation, from where I took inspiration.</p>
<p>Cheers!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;bodytext=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Enterprise%20PHP%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;selection=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;notes=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;t=Enterprise%20PHP" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;annotation=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;title=Enterprise%20PHP&amp;body=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2010%2F02%2Fenterprise-php%2F&amp;t=Enterprise%20PHP&amp;s=I%20presented%20this%20talk%20on%20the%20Soft%20Expo%202010%20-%20the%20largest%20software%20fair%20in%20Bangladesh.%20The%20intention%20was%20to%20clear%20some%20of%20the%20misconception%20about%20PHP%2C%20the%20growth%20of%20PHP%2C%20how%20it%20can%20fit%20in%20the%20enterprise%20now%2C%20etc.%20%0D%0A%0D%0AAfter%20these%2C%20I%20shed%20light%20on%20some" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2010/02/enterprise-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changing the default controller naming convention in CodeIgniter</title>
		<link>http://www.phpfour.com/blog/2009/09/codeigniter-controller-naming-convention-modified/</link>
		<comments>http://www.phpfour.com/blog/2009/09/codeigniter-controller-naming-convention-modified/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 06:23:04 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=265</guid>
		<description><![CDATA[CodeIgniter is one of my favorite framework and I often use it for developing application quickly. Although it is very flexible in most cases, I find its naming convention to be strict. Many times I have faced this problem when my controller&#8217;s class name and a model/library&#8217;s class names are the same &#8211; a Fatal [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>CodeIgniter is one of my favorite framework and I often use it for developing application quickly. Although it is very flexible in most cases, I find its naming convention to be strict. Many times I have faced this problem when my controller&#8217;s class name and a model/library&#8217;s class names are the same &#8211; a Fatal error is inevitable and I have to forcefully change the name of the conflicting class to something less desirable (say from Users to UsersModel). Today I wanted to end this problem.</p>
<p>So I extended the <strong>CI_Router</strong> core class and made change to the <em>_validate_request</em> method. Now I can name my controller classes in this fashion: <strong>UsersController</strong> and it resides on the file system as <strong>controllers/UsersController.php</strong>. If you&#8217;ve tried other established frameworks, you should notice that this naming convention is widely used. So, if you have the same need, then just download the MY_Router.php file and put it on your application/libraries folder. That&#8217;s it.</p>
<p>Here is how your controller would start:</p>
<pre class="brush: php;">
&lt;?php

class UsersController extends Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}
</pre>
<p><span id="more-265"></span><br />
If you&#8217;d like to have a look at the code, here is the source for quick view:</p>
<pre class="brush: php;">
&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/*
 * MY_Router
 *
 * Extended the core CI_Router class in order to force a different naming
 * convention for controllers.
 *
 */
class MY_Router extends CI_Router
{
    /*
     * Suffix in controller name
     *
     * @var String
     */
    private $_suffix = &quot;Controller&quot;;

    /*
     * Call the parent constructor
     *
     * This is a requirement for extending base CI core class. Just abiding by
     * the rules.
     *
     * @access  public
     * @return  void
     */
    public function MY_Router()
    {
        parent::CI_Router();
    }

    /**
     * Validates the supplied segments.  Attempts to determine the path to
     * the controller.
     *
     * @access   private
     * @param    array
     * @return   array
     */
    function _validate_request($segments)
    {
        // Retain the original segments
        $orgSegments = array_slice($segments, 0);

        // Add suffix to the end
        $segments[0] = ucfirst($segments[0]) . $this-&gt;_suffix;

        // Does the requested controller exist in the root folder?
        if (file_exists(APPPATH.'controllers/'.$segments[0].EXT))
        {
            return $segments;
        }

        // OK, revert to the original segment
        $segments[0] = $orgSegments[0];

        // Is the controller in a sub-folder?
        if (is_dir(APPPATH.'controllers/'.$segments[0]))
        {
            // Set the directory and remove it from the segment array
            $this-&gt;set_directory($segments[0]);
            $segments = array_slice($segments, 1);

            if (count($segments) &gt; 0)
            {
                // Add suffix to the end
                $segments[0] = ucfirst($segments[0]) . $this-&gt;_suffix;

                // Does the requested controller exist in the sub-folder?
                if ( ! file_exists(APPPATH.'controllers/'.$this-&gt;fetch_directory().$segments[0].EXT))
                {
                    show_404($this-&gt;fetch_directory().$segments[0]);
                }
            }
            else
            {
                // Add suffix to the end
                $this-&gt;default_controller = ucfirst($this-&gt;default_controller) . $this-&gt;_suffix;

                $this-&gt;set_class($this-&gt;default_controller);
                $this-&gt;set_method('index');

                // Does the default controller exist in the sub-folder?
                if ( ! file_exists(APPPATH.'controllers/'.$this-&gt;fetch_directory().$this-&gt;default_controller.EXT))
                {
                    $this-&gt;directory = '';
                    return array();
                }

            }

            return $segments;
        }

        // Can't find the requested controller...
        show_404($segments[0]);
    }
}
</pre>
<p>Cheers!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;bodytext=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;selection=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;notes=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;t=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;annotation=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;title=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;body=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F09%2Fcodeigniter-controller-naming-convention-modified%2F&amp;t=Changing%20the%20default%20controller%20naming%20convention%20in%20CodeIgniter&amp;s=CodeIgniter%20is%20one%20of%20my%20favorite%20framework%20and%20I%20often%20use%20it%20for%20developing%20application%20quickly.%20Although%20it%20is%20very%20flexible%20in%20most%20cases%2C%20I%20find%20its%20naming%20convention%20to%20be%20strict.%20Many%20times%20I%20have%20faced%20this%20problem%20when%20my%20controller%27s%20class%20" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2009/09/codeigniter-controller-naming-convention-modified/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>phpXperts &#8217;09 seminar</title>
		<link>http://www.phpfour.com/blog/2009/05/phpxperts-09-seminar-becoming-a-php-ninja/</link>
		<comments>http://www.phpfour.com/blog/2009/05/phpxperts-09-seminar-becoming-a-php-ninja/#comments</comments>
		<pubDate>Sun, 17 May 2009 20:29:25 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Workshop]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[phpxperts]]></category>
		<category><![CDATA[seminar]]></category>
		<category><![CDATA[speech]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=243</guid>
		<description><![CDATA[At last the phpXperts seminar on &#8220;Current Web Trends&#8221; have taken place and I was one of the speakers there. Among all the topics, mine was a bit suggestive and naturally a bit less exciting. I spoke about how to become a PHP ninja &#8211; what are the characteristics they posses, what are the tools [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>At last the phpXperts seminar on &#8220;Current Web Trends&#8221; have taken place and I was one of the speakers there. Among all the topics, mine was a bit suggestive and naturally a bit less exciting. I spoke about how to become a PHP ninja &#8211; what are the characteristics they posses, what are the tools they use, what are the paths they follow etc. It&#8217;s actually a follow-up of one of my blog posts: &#8220;<a href="http://www.phpfour.com/blog/2008/10/become-kick-ass-php-ninja-from-newbie-guide-tips/">Becoming a kick-ass PHP ninja</a>&#8220;.</p>
<p>Here goes the slides:</p>
<div id="__ss_1448402" style="margin: 0pt auto; width: 425px; text-align: center;"><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=becomingaphpninja-090517141544-phpapp01&amp;stripped_title=becoming-a-php-ninja" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=becomingaphpninja-090517141544-phpapp01&amp;stripped_title=becoming-a-php-ninja" /><param name="allowfullscreen" value="true" /></object></div>
<p>All the other slides, pictures, and videos are available <a href="http://slides.phpxperts.net/">here</a>.</p>
<p>Enjoy!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;bodytext=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=phpXperts%20%2709%20seminar%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;selection=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;notes=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;t=phpXperts%20%2709%20seminar" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;annotation=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;title=phpXperts%20%2709%20seminar&amp;body=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F05%2Fphpxperts-09-seminar-becoming-a-php-ninja%2F&amp;t=phpXperts%20%2709%20seminar&amp;s=At%20last%20the%20phpXperts%20seminar%20on%20%22Current%20Web%20Trends%22%20have%20taken%20place%20and%20I%20was%20one%20of%20the%20speakers%20there.%20Among%20all%20the%20topics%2C%20mine%20was%20a%20bit%20suggestive%20and%20naturally%20a%20bit%20less%20exciting.%20I%20spoke%20about%20how%20to%20become%20a%20PHP%20ninja%20-%20what%20are%20the%20char" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2009/05/phpxperts-09-seminar-becoming-a-php-ninja/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Payment Library for Paypal, Authorize.net and 2Checkout (2CO)</title>
		<link>http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/</link>
		<comments>http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 20:03:27 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Code Library]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[2checkout]]></category>
		<category><![CDATA[authorize.net]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[exciting]]></category>
		<category><![CDATA[gateway]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=207</guid>
		<description><![CDATA[If you are like me, whenever you need to work with a 3rd party API or a gateway, you&#8217;d first search in Google for a possible wrapper for it in PHP. When it comes to supporting payment gateways, you get bunch of libraries in the search results who are fundamentally different. Some of them are [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>If you are like me, whenever you need to work with a 3rd party API or a gateway, you&#8217;d first search in Google for a possible wrapper for it in PHP. When it comes to supporting payment gateways, you get bunch of libraries in the search results who are fundamentally different. Some of them are old PHP 3/4 ones, some are new, some may need PEAR, etc.</p>
<p>As they were not required together in one single project, I used them whenever needed. But in one project, I needed them all. I thoughts it&#8217;s a chance and decided to stop using them and wrote my own ones where I can use the same methods for all the gateways.</p>
<p>So, here is an abstract PaymentGateway library which is being extended to be used for three popular payment gateways (<a href="http://www.paypal.com">Paypal</a>, <a href="http://www.authorize.net">Authorize.net</a>, and <a href="http://www.2checkout.com">2Checkout</a>) in order to provide you with a similar way of using them. Note that the libraries are for basic usage only and do not contain options for recurring payments. Without much babble, let&#8217;s see a few examples of how you can use them.</p>
<blockquote class="left"><p>You can straight-away download the <strong><a target="_blank" href="http://www.phpfour.com/blog/downloads/payment" title="Download payment.zip">package</a></strong> with all the libraries, examples, and readme.</p></blockquote>
<p><strong>Paypal</strong></p>
<p>In order to process payments using Paypal, you&#8217;ll need to follow these steps:</p>
<p>1. Send the required information to Paypal (snippet 1). Be sure to specify your Paypal email where you want to receive the funds, the success and failure pages, the IPN page, and the product information. The example has the test mode ON, which you will not need in real scenario.</p>
<p>2. Create a payment success page where Paypal will send your customer after payment.</p>
<p>3. Create a payment failure page where Paypal will send your customer after failed payment.</p>
<p>4. Create a IPN page where Paypal will send payment notification in the background. Make sure you use/remove the test mode in conjunction with step 1. (snippet 2)</p>
<pre class="brush: php;">
&lt;?php

// Include the paypal library
include_once ('Paypal.php');

// Create an instance of the paypal library
$myPaypal = new Paypal();

// Specify your paypal email
$myPaypal-&gt;addField('business', 'YOUR_PAYPAL_EMAIL');

// Specify the currency
$myPaypal-&gt;addField('currency_code', 'USD');

// Specify the url where paypal will send the user on success/failure
$myPaypal-&gt;addField('return', 'http://YOUR_HOST/payment/paypal_success.php');
$myPaypal-&gt;addField('cancel_return', 'http://YOUR_HOST/payment/paypal_failure.php');

// Specify the url where paypal will send the IPN
$myPaypal-&gt;addField('notify_url', 'http://YOUR_HOST/payment/paypal_ipn.php');

// Specify the product information
$myPaypal-&gt;addField('item_name', 'T-Shirt');
$myPaypal-&gt;addField('amount', '9.99');
$myPaypal-&gt;addField('item_number', '001');

// Specify any custom value
$myPaypal-&gt;addField('custom', 'muri-khao');

// Enable test mode if needed
$myPaypal-&gt;enableTestMode();

// Let's start the train!
$myPaypal-&gt;submitPayment();
</pre>
<p><em>Snippet 1</em><br />
<span id="more-207"></span></p>
<pre class="brush: php;">

&lt;?php

// Include the paypal library
include_once ('Paypal.php');

// Create an instance of the paypal library
$myPaypal = new Paypal();

// Log the IPN results
$myPaypal-&gt;ipnLog = TRUE;

// Enable test mode if needed
$myPaypal-&gt;enableTestMode();

// Check validity and write down it
if ($myPaypal-&gt;validateIpn())
{
    if ($myPaypal-&gt;ipnData['payment_status'] == 'Completed')
    {
         file_put_contents('paypal.txt', 'SUCCESS');
    }
    else
    {
         file_put_contents('paypal.txt', &quot;FAILURE\n\n&quot; . $myPaypal-&gt;ipnData);
    }
}
</pre>
<p><em>Snippet 2</em></p>
<p><strong>Authorize.net</strong></p>
<p>In order to process payments using Authorize.net, you&#8217;ll need to follow these steps:</p>
<p>1. Send the required information to Authorize.net(snippet 3). Be sure to specify your Authorize.net login and secret key, the success/failure pages, the IPN page, and the product information. The example has the test mode ON, which you will not need in real scenario.</p>
<p>2. Create a payment success/failure page where Authorize.net will send your customer after payment.</p>
<p>3. Create a IPN page where Authorize.net will send payment notification in the background. Make sure you use/remove the test mode in conjunction with step 1. (snippet 4)</p>
<p>4. In order to set the secret key, log into your authorize.net merchant account. Go to &#8220;MD5 Hash&#8221; menu and set a secret word to desired values and use that in the &#8220;setUserInfo&#8221; function showed in the example.</p>
<pre class="brush: php;">
&lt;?php

// Include the paypal library
include_once ('Authorize.php');

// Create an instance of the authorize.net library
$myAuthorize = new Authorize();

// Specify your authorize.net login and secret
$myAuthorize-&gt;setUserInfo('YOUR_LOGIN', 'YOUR_SECRET_KEY');

// Specify the url where authorize.net will send the user on success/failure
$myAuthorize-&gt;addField('x_Receipt_Link_URL', 'http://YOUR_HOST/payment/authorize_success.php');

// Specify the url where authorize.net will send the IPN
$myAuthorize-&gt;addField('x_Relay_URL', 'http://YOUR_HOST/payment/authorize_ipn.php');

// Specify the product information
$myAuthorize-&gt;addField('x_Description', 'T-Shirt');
$myAuthorize-&gt;addField('x_Amount', '9.99');
$myAuthorize-&gt;addField('x_Invoice_num', rand(1, 100));
$myAuthorize-&gt;addField('x_Cust_ID', 'muri-khao');

// Enable test mode if needed
$myAuthorize-&gt;enableTestMode();

// Let's start the train!
$myAuthorize-&gt;submitPayment();
</pre>
<p><em>Snippet 3</em></p>
<pre class="brush: php;">

&lt;?php

// Include the paypal library
include_once ('Authorize.php');

// Create an instance of the authorize.net library
$myAuthorize = new Authorize();

// Log the IPN results
$myAuthorize-&gt;ipnLog = TRUE;

// Specify your authorize login and secret
$myAuthorize-&gt;setUserInfo('YOUR_LOGIN', 'YOUR_SECRET_KEY');

// Enable test mode if needed
$myAuthorize-&gt;enableTestMode();

// Check validity and write down it
if ($myAuthorize-&gt;validateIpn())
{
    file_put_contents('authorize.txt', 'SUCCESS');
}
else
{
    file_put_contents('authorize.txt', &quot;FAILURE\n\n&quot; . $myPaypal-&gt;ipnData);
}
</pre>
<p><em>Snippet 4</em></p>
<p><strong>2Checkout</strong></p>
<p>In order to process payments using 2Checkout, you&#8217;ll need to follow these steps:</p>
<p>1. Send the required information to 2Checkout(snippet 5). Be sure to specify your 2Checkout vendor id, the return page, and the product information. Please note that 2Checkout does not send IPN in the background, so you will need to handle the payment data in the return page. The example has the test mode ON, which you will not need in real scenario. </p>
<p>2. Create a return page where 2Checkout will send your customer after payment. This is also where you will need to retrieve and use the payment data. Make sure you use/remove the test mode in conjunction with step 1. (snippet 6)</p>
<p>3. In order to set the secret key, log into your 2checkout.com account and go to &#8220;Look and Feel&#8221; section. At the bottom enter the &#8220;Secret Word&#8221; and use it in the IPN verification process as shown in the example.</p>
<pre class="brush: php;">
&lt;?php

// Include the paypal library
include_once ('TwoCo.php');

// Create an instance of the authorize.net library
$my2CO = new TwoCo();

// Specify your 2CheckOut vendor id
$my2CO-&gt;addField('sid', 'YOUR_VENDOR_ID');

// Specify the order information
$my2CO-&gt;addField('cart_order_id', rand(1, 100));
$my2CO-&gt;addField('total', '9.99');

// Specify the url where authorize.net will send the IPN
$my2CO-&gt;addField('x_Receipt_Link_URL', 'http://YOUR_HOST/payment/twoco_ipn.php');
$my2CO-&gt;addField('tco_currency', 'USD');
$my2CO-&gt;addField('custom', 'muri-khao');

// Enable test mode if needed
$my2CO-&gt;enableTestMode();

// Let's start the train!
$my2CO-&gt;submitPayment();
</pre>
<p><em>Snippet 5</em></p>
<pre class="brush: php;">

&lt;?php

// Include the paypal library
include_once ('TwoCo.php');

// Create an instance of the authorize.net library
$my2CO = new TwoCo();

// Log the IPN results
$my2CO-&gt;ipnLog = TRUE;

// Specify your authorize login and secret
$my2CO-&gt;setSecret('YOUR_SECRET_KEY');

// Enable test mode if needed
$my2CO-&gt;enableTestMode();

// Check validity and write down it
if ($my2CO-&gt;validateIpn())
{
    file_put_contents('2co.txt', 'SUCCESS');
}
else
{
    file_put_contents('2co.txt', &quot;FAILURE\n\n&quot; . $my2CO-&gt;ipnData);
}
</pre>
<p><em>Snippet 6</em></p>
<p>Hope this will help you integrate the payment gateways in an easy manner. If you have any questions, or find any bug, have a suggestion, feel free to post them as comment here. Btw, this library is released under the MIT license.</p>
<p><strong>Cheers!</strong></p>
<h3>Download</h3>
<table cellspacing="0" cellpadding="2" border="0" width="698">
<tbody>
<tr>
<td width="42"><a target="_blank" href="http://www.phpfour.com/blog/downloads/payment" title="Download payment.zip"><img src="http://www.phpfour.com/images/download.gif" border="0" /></a></td>
<td width="650"><strong>payment.zip</strong><br/>PHP Payment Library for Paypal, Authorize.net and 2Checkout<br/>Downloaded: <strong>9068</strong> times</td>
</tr>
</tbody>
</table>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;bodytext=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;selection=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;notes=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;t=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;annotation=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;title=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;body=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fphp-payment-gateway-library-for-paypal-authorizenet-and-2checkout%2F&amp;t=PHP%20Payment%20Library%20for%20Paypal%2C%20Authorize.net%20and%202Checkout%20%282CO%29&amp;s=If%20you%20are%20like%20me%2C%20whenever%20you%20need%20to%20work%20with%20a%203rd%20party%20API%20or%20a%20gateway%2C%20you%27d%20first%20search%20in%20Google%20for%20a%20possible%20wrapper%20for%20it%20in%20PHP.%20When%20it%20comes%20to%20supporting%20payment%20gateways%2C%20you%20get%20bunch%20of%20libraries%20in%20the%20search%20results%20who%20are" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2009/02/php-payment-gateway-library-for-paypal-authorizenet-and-2checkout/feed/</wfw:commentRss>
		<slash:comments>116</slash:comments>
		</item>
		<item>
		<title>Code Updates (HTTP class, Extended CodeIgniter Model, Cross-domain AJAX transport)</title>
		<link>http://www.phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/</link>
		<comments>http://www.phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 21:27:47 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[cross-domain]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=186</guid>
		<description><![CDATA[Greetings to all the readers of my blog. Many of you have been writing to me in the last couple days when I took the site down. The main objective was to add the new theme and push a few code updates of the existing libraries. I really appreciate your concern and would like to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>Greetings to all the readers of my blog. </p>
<p>Many of you have been writing to me in the last couple days when I took the site down. The main objective was to add the new theme and push a few code updates of the existing libraries. I really appreciate your concern and would like to reassure you that the site is up and will be up as usual <img src='http://www.phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Now, besides the slightly customized theme from Elegant Themes, I have put a few code updates. They are detailed below:</p>
<h3>Extended Model for CodeIgniter</h3>
<p>The <a href="http://www.phpfour.com/blog/2008/07/extended-model-for-codeigniter/">original version</a> of the Extended Model for CodeIgniter has been serving many people well. Although most users loved the nifty functions of the Model, many (including me) didn&#8217;t like the hacking of CI core to get this functionality. With the release of CodeIgniter 1.7, we can avoid that as we can now overload the Model class of CI like the other libraries. Follow this instruction:</p>
<p>1. Download the updated version from <a href="http://www.phpfour.com/blog/downloads/model-ci-2">here</a><br />
2. Put it in your application/libraries folder<br />
3. In your model files, use it this way: <strong>class Product extends MY_Model</strong><br />
4. Everything else is same just like the <a href="http://www.phpfour.com/blog/2008/07/extended-model-for-codeigniter/">original</a> one</p>
<h3>HTTP Class</h3>
<p>There is not much update in this class except for a few bug fixes (thanks to you guys). Also, I have included a license file in the package as many of you have asked. It&#8217;s released under the MIT license. The original post is <a href="http://www.phpfour.com/blog/2008/01/php-http-class/">here</a> for reference. </p>
<p>Download the update from <a href="http://www.phpfour.com/blog/downloads/http-class">here</a> and the API reference is <a href="http://www.phpfour.com/lib/http">here</a>.</p>
<h3>Cross-domain AJAX calls using PHP</h3>
<p>A minor bug fix in the code. Thanks to a few of you who pointed them out. Original post is <a href="http://www.phpfour.com/blog/2008/03/cross-domain-ajax-using-php/">here</a>. Download the update from <a href="http://www.phpfour.com/blog/downloads/transport">here</a>.</p>
<p>I have accelerated plans for the blog in 2009 so stay tuned for some worthy posts in this month. And do <a href="http://www.phpfour.com/blog/contact-me/">write to me</a> if you feel you have any questions/ideas/suggestions.</p>
<p>Cheers!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;bodytext=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;selection=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;notes=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;t=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;annotation=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;title=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;body=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2009%2F02%2Fupdated-http-class-extended-model-codeigniter-cross-domain-ajax-php%2F&amp;t=Code%20Updates%20%28HTTP%20class%2C%20Extended%20CodeIgniter%20Model%2C%20Cross-domain%20AJAX%20transport%29&amp;s=Greetings%20to%20all%20the%20readers%20of%20my%20blog.%20%0D%0A%0D%0AMany%20of%20you%20have%20been%20writing%20to%20me%20in%20the%20last%20couple%20days%20when%20I%20took%20the%20site%20down.%20The%20main%20objective%20was%20to%20add%20the%20new%20theme%20and%20push%20a%20few%20code%20updates%20of%20the%20existing%20libraries.%20I%20really%20appreciate" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Preview release of Prothom Alo Blog</title>
		<link>http://www.phpfour.com/blog/2008/10/preview-release-of-prothom-alo-blog/</link>
		<comments>http://www.phpfour.com/blog/2008/10/preview-release-of-prothom-alo-blog/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 21:07:07 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Website Review]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[exciting]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[prothom-alo]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=171</guid>
		<description><![CDATA[It&#8217;s my greatest pleasure to introduce another social community of Bangladesh, Prothom Alo Blog, to you all. The site has been made public for a beta period on Friday, 24th October, 2008. And it is expected to be fully released in public on the first week of November. Me and Hasin has been working on [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://prothom-aloblog.com/users/base/emran"><img class="aligncenter size-full wp-image-172" title="Prothom Alo Blog" src="http://www.phpfour.com/blog/wp-content/uploads/2008/10/palo.png" alt="Prothom Alo Blog" width="560" /></a></p>
<p>It&#8217;s my greatest pleasure to introduce another social community of Bangladesh, <a href="http://prothom-aloblog.com"><strong>Prothom Alo Blog</strong></a>, to you all. The site has been made public for a beta period on Friday, 24th October, 2008. And it is expected to be fully released in public on the first week of November.</p>
<p>Me and <a href="http://hasin.wordpress.com">Hasin</a> has been working on it for a couple month, with occasional help from <a title="ajaXray" href="http://www.ajaxray.com" target="_blank">Anis</a> and <a title="A tale of Valentica" href="http://blog.valenticabd.com/" target="_blank">Jahed</a>. We&#8217;ve tried all our means to make it as user-friendly as possible, without sacrificing functionality and robustness. The blog platform hosts most of the major features of a community blogging platform, along with a few key features which are unavailable in other similar platforms in Bangla.</p>
<p>The site is fully <strong>Unicode</strong> based, with support for embedded eot font for Internet Explorer. AJAX has been used spontaneously throughout the site to decrease initial load time of primary contents, and slowly fetching secondary contents. All the sidebars of the main pages and admin panels are <strong>widget ready</strong> and hosts a number of widgets as of now. In future, users will be able to add their widgets as well.</p>
<p>In this platform, we have separated the main site and the administration panel for users. This helps the bloggers as they get a centralized panel where they can mange their posts/comments/links/feeds/moderation/profile etc easily.</p>
<p>Besides the common functionality of community blog, the platform is different in one major context: <strong>Moderation</strong>. The content from the user&#8217;s blogs won&#8217;t be moderated. In order to allow this freedom, it&#8217;s been decided that no post will appear in front-page of main site categories, until promoted by the moderators. The aim is to provide a place where everybody has freedom of their own blog, but if they want to convey to others, they have to write in a way which actually adds value and abides by the common guideline.</p>
<p>Now that it&#8217;s open, we&#8217;d like everybody&#8217;s comments and suggestions for making it the largest social platform in Bangladesh. <span style="text-decoration: line-through;">Although the registration is closed right now, you can still get into it using an invitation code.</span> The site is OPEN now for public registration, <a title="Prothom Alo Blog" href="http://prothom-aloblog.com" target="_blank">go get one</a> <img src='http://www.phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Please send me an email or Contact me using the <a href="http://www.phpfour.com/blog/contact-me/">Contact page</a> if you need <span style="text-decoration: line-through;">an invitation</span> any information/help.</p>
<p>Thanks everybody!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;bodytext=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Preview%20release%20of%20Prothom%20Alo%20Blog%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;selection=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;notes=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;t=Preview%20release%20of%20Prothom%20Alo%20Blog" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;annotation=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;title=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;body=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fpreview-release-of-prothom-alo-blog%2F&amp;t=Preview%20release%20of%20Prothom%20Alo%20Blog&amp;s=%0A%0AIt%27s%20my%20greatest%20pleasure%20to%20introduce%20another%20social%20community%20of%20Bangladesh%2C%20Prothom%20Alo%20Blog%2C%20to%20you%20all.%20The%20site%20has%20been%20made%20public%20for%20a%20beta%20period%20on%20Friday%2C%2024th%20October%2C%202008.%20And%20it%20is%20expected%20to%20be%20fully%20released%20in%20public%20on%20the%20fir" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2008/10/preview-release-of-prothom-alo-blog/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Becoming a Kick-ass PHP ninja</title>
		<link>http://www.phpfour.com/blog/2008/10/become-kick-ass-php-ninja-from-newbie-guide-tips/</link>
		<comments>http://www.phpfour.com/blog/2008/10/become-kick-ass-php-ninja-from-newbie-guide-tips/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 21:35:53 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Cake PHP]]></category>
		<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[guideline]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[kick-ass]]></category>
		<category><![CDATA[php ninja]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=106</guid>
		<description><![CDATA[Who is this for? You&#8217;ve been developing web applications using PHP for a couple months now and are finding it very enjoyable. Although you feel that you&#8217;re doing quite good, you&#8217;re not sure whether its the end. Besides, the following questions wonder you often: Where to go from here What new things to learn How [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<h3>Who is this for?</h3>
<p>You&#8217;ve been developing web applications using PHP for a couple months now and are finding it very enjoyable. Although you feel that you&#8217;re doing quite good, you&#8217;re not sure whether its the end. Besides, the following questions wonder you often:</p>
<ul>
<li>Where to go from here</li>
<li>What new things to learn</li>
<li>How to become a Kick-ass PHP Ninja</li>
</ul>
<p>If that&#8217;s the scenario, then this post if for <strong>YOU</strong>.</p>
<h3>Background</h3>
<p>A few days back, I read a number of blog <a href="http://inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer">posts</a> where people have highlighted the <a href="http://hasin.wordpress.com/2008/04/30/signs-you-are-ruining-your-career-as-a-web-app-developer/">shortcomings</a> they see in newbie developers. Some of them have gone further to narrow down the focus on <a href="http://www.boringguys.com/2008/05/20/beware-the-lone-wolf-php-developer/">PHP developers only</a> (as PHP&#8217;s nature sometimes allow developers to avoid standards). They did a great job by listing the shortcomings, but their posts missed clear way forwards (these can be inferred though). A number of readers also commented on the posts with their insight as well. So I was thinking how about compiling all these in an easy to follow list? Hence this post.</p>
<p>Btw, due to the volume, I&#8217;ve mostly touched the points here and provided few useful resource links for further study. I do have plan to elaborate a few of them in coming posts, with each point becoming a single post. Let me know which ones you&#8217;ll prefer most, by entering the poll at the bottom of the post.</p>
<h3>Part A : Technical Way Forward</h3>
<p>In the first part, let&#8217;s shed some light on how you can move forward with your technical abilities.</p>
<p><strong>1. Start using version control</strong></p>
<p>Version control is like a big UNDO button for your coding. You can go back to your previous code revisions and can compare/rollback to specific code areas anytime you see necessary. It will keep track of all your changes and will empower you to track your development changes across your work/team. Also, in a distributed development team, version control helps prevent overwriting of code by team members and keeps all the members code up to date.</p>
<p><a href="http://subversion.tigris.org">Subversion (SVN)</a> is one of the most popular open source version control system. If you&#8217;re on windows platform, you can try <a href="http://tortoisesvn.net">TortoiseSVN</a>, a client for SVN.</p>
<p><strong>2. Write code in OOP way</strong></p>
<p>If you haven&#8217;t already, it&#8217;s high time you started writing code in Object Oriented Programming (OOP) way. You may ask why? Well, OOP forces you to write code that is maintainable in nature. If properly followed, OOP code become a lot efficient than procedural code. Also, it allows you to re-use code across your project and/or multiple projects.</p>
<p>If you&#8217;re not convinced, have a <a href="http://www.phpdeveloper.org/news/5719">look</a> at <a href="http://www.php.net/oop">these</a> excellent <a href="http://www.killerphp.com/tutorials/object-oriented-php/">resources</a> for further study.</p>
<p><strong>3. Adhere to a coding standard</strong></p>
<p>Coding standards allow you to write code in a way which is easily understood by other people. When you adhere to a coding standard used by may others, you actually convey a message that you&#8217;re serious in writing code that people will be able to &#8220;get&#8221; and maintain. Keeping abbreviation type variable names, applying multiple indention types, writing meaningless function names etc will work for you in short term, maybe in personal projects. But when you move to a larger group with a number of developers, you ought to follow a standard so that everybody working with you can get along with your parts.</p>
<p>The following standards are most widely used among PHP developers around the globe:</p>
<ul>
<li><a href="http://pear.php.net/manual/en/standards.php">PEAR Coding Standards</a></li>
<li><a href="http://framework.zend.com/manual/en/coding-standard.html">Zend Framework Coding Standards</a></li>
<li><a href="http://ez.no/ezpublish/documentation/development/standards/php">eZ Publish PHP Coding Standards (depreciated)</a></li>
<li><a href="http://www.ezcomponents.org/contributing/coding_standards">eZ Components Implementation guidelines</a></li>
</ul>
<p>Although you can define a standard for your team/company, it&#8217;s always better to have close relation with what the industry follows. In my company, Right Brain Solution Ltd, we follow a slightly modified version of Zend Framework Coding Standards. You can get that one <a href="http://www.rightbrainsolution.com/php_coding_standard_rbs.pdf">here</a>.</p>
<p><strong>4. Document your code</strong></p>
<p>Documentation is a virtue of great developers &#8211; don&#8217;t get me wrong, I&#8217;m talking about code documentation, not writing user manuals <img src='http://www.phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Well documented code prevents other team members from reading each line of your code and understand them by heart. Rather, it tells them exactly what they need to know &#8211; purpose of the code, what it requires as input, what it will deliver as output, etc. If you take a look at the above mentioned coding standards, you&#8217;ll discover that most of them even specified standard for documentation as well, which is <a href="http://www.phpdoc.org/">phpDocumentor</a>. It&#8217;s the most used standard for PHP code documentation and is widely recognized.</p>
<p><strong>5. Use a good framework</strong></p>
<p>Frameworks give you good structure and helps you build web applications in a fast way, with confidence. Most of today&#8217;s popular PHP frameworks (<a href="http://framework.zend.com/">Zend Framework</a>, <a href="http://www.codeigniter.com/">CodeIgniter</a>, <a href="http://cakephp.org/">CakePHP</a>, <a href="http://www.symfony-project.org">Symfony</a>, <a href="http://kohanaphp.com">Kohana</a> etc) follow the Model-View-Controller (MVC) pattern, which itself is a strong advocate of good practice.</p>
<p>Besides structure, frameworks force you to write code in a structured way. Some of them will also require writing the code in OOP &#8211; whose benefit we already discussed above. And frameworks usually come with a number of helpful libraries and helpers, to make your life easy as a web developer.</p>
<p>Josh sharp discusses this in details <a href="http://joshsharp.com.au/blog/view/why_you_should_be_using_a_framework">here </a>and later posts a follow-up <a href="http://joshsharp.com.au/blog/view/perhaps_the_world_doesnt_need_another_framework">here</a>. Both are good reads.</p>
<p><strong>6. Re-use code/libraries</strong></p>
<p>One of the most common advice programmers get is: &#8220;Don&#8217;t re-invent the wheel&#8221;. Well, what&#8217;s the point here? It actually means that you should not spend much time on solving a problem that has already been solved, in efficient way, by others. Rather solving it out yourself, you can &#8220;google&#8221; it and see how others have done it. It will not only save your valuable time, but also will ensure stable code (assuming that people usually post things on web after doing a number of testing and user of the codes usually help iron-out any issues, etc).</p>
<p>However, keep an eye on your target use/objective. If there is not enough good solutions that solves your problem, go ahead and solve yourself. Make it good and give it back to the community so that others facing that problem won&#8217;t need to spent the time you&#8217;ve spent. The whole open source model runs on this give-give way, so be a part of it.</p>
<p><strong>7. Test your code the right way</strong></p>
<p>In order to make confidence out of your code, you&#8217;ll need to test your code the right way. Although you might be used to testing your application using debug messages and browser refreshes, in a real world scenario these won&#8217;t work. You&#8217;ll need to write unit tests which can do automated testing of your code. The power lies in that you can run these tests almost anytime and can check if anything is broken after each new change.</p>
<p><a href="http://www.phpunit.de/">PHPUnit</a> and <a href="http://www.simpletest.org/">SimpleTest</a> are the two most widely used Unit testing suite for PHP. You should also have a look on <a href="http://en.wikipedia.org/wiki/Test-driven_development">Test Driven Development (TDD)</a>, which is the way of greatly enhancing your chance of deploying application with least bugs.</p>
<h3>Part B : Personal Way Forward</h3>
<p>Now, even if you&#8217;ve improved yourself on the above mentioned points, you&#8217;ll still need to work on your personal matters to move forward. Here goes those points.</p>
<p><strong>8. Be Agile</strong></p>
<p>You need to be an agile developer if you want to move forward in your career. What does it mean to be agile? Agility is more of an attitude than a skill set. The common characteristics of agile developers are:</p>
<ul>
<li>They’re open minded and therefore willing to learn new techniques</li>
<li>They’re responsible and therefore willing to seek the help of the right person(s) for the task at hand</li>
<li>They&#8217;re willing to work closely with others, pair programming or working in small teams as appropriate</li>
<li>They&#8217;re willing to work iteratively and incrementally</li>
</ul>
<p>Further resources: <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile Software Development</a>, <a href="http://agilemanifesto.org/">The Agile Manifesto</a>.</p>
<p><strong>9. Keep yourself updated</strong></p>
<p>No matter what, keep yourself updated on whats going on in your field (in this case PHP). Subscribe to the RSS of great PHP blogs and skim over them on a regular basis. Dig into the topics that interest you most and see the author&#8217;s point. Also, keep a habit of trying new technologies every now &#038; then. It gives you an edge over others and when any discussion goes about it, you can help others understand as well as make your points.</p>
<p>Btw, if you don&#8217;t have a clue where to find good blogs, have a look at <a href="http://planet-php.org/">here</a>, <a href="http://hasin.wordpress.com/2007/07/12/list-of-rss-feeds-i-read-almost-everyday/">here</a> and <a href="http://godbit.com/article/reading-list">here</a>.</p>
<p><strong>10. Start community involvement</strong></p>
<p>Remember I told above to give your work back to the community ? How to do that ? <a href="http://wordpress.com/">Start a blog</a> of your own and start writing posts there every now &#038; then. Yes, I know you&#8217;d say &#8220;Who&#8217;s going to read my blog anyway?&#8221;, but if you share your experience, someday, somebody will find it useful. And if you can share things that others haven&#8217;t done, you&#8217;ll slowly see visitors coming on your blog increasing way.</p>
<p>Besides blog, try to participate in tech <a href="http://www.sitepoint.com/forums/">forums</a> and <a href="http://tech.groups.yahoo.com/group/phpexperts">communities</a>. Help people out in the areas you excel and at the time of your need, other people will be happy to help you out as well. These communities are also great place to learn about many unusual matters, see how situation changes from person to person, place to place, etc. You&#8217;ll also be able to make great friends who might come handy later in your life.</p>
<p>Another great way of community involvement is to contributing to <a href="https://www.ohloh.net/projects">open source projects</a>. Share some of your valuable time for an open source project and it may come handy for a huge number of people. Your work might solve the problem of somebody like you. If needed, <a href="http://www.orchidframework.com/">initiate</a> an open source project yourself and invite others to work on your vision.</p>
<p><strong>11. Use a good IDE</strong></p>
<p>With due respect to <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a>, step forward and use an IDE made for PHP. You&#8217;ll notice the difference in a few days when you&#8217;ll see that your productivity has increased in great ways. These IDEs provide great number of useful features including but not limited to: syntax highlighting, auto completion, code suggestions, code snippets, contextual help, code templates, debugging, profiling, etc.</p>
<p>The following IDEs mostly have the similar feature set and can boost your productivity in great ways:</p>
<ul>
<li><a href="http://www.nusphere.com/products/phped.htm">NuSphere PhpED</a></li>
<li><a href="http://www.mpsoftware.dk/">phpDesigner 2008</a></li>
<li><a href="http://www.zend.com/en/products/studio/">Zend Studio for Eclipse</a></li>
</ul>
<p>Personally I use <strong>NuSphere PhpED 5.2</strong> and I love it in every way. They&#8217;ve provided me with a complementary license and I am grateful to them for that. If you&#8217;re planning to buy it, let me know and I might find you a discount.</p>
<p><strong>12. Be communicative</strong></p>
<p>In your team/company, try to be as communicative as possible. It reduces a lot of confusions, makes you close to other devs so that you understand them, portrays you as a good person in front of management and overall, helps you enjoy your work. When you&#8217;re working together with others, make them feel that you&#8217;re there and ready to give whatever it takes. Create a personal brand of yourself.</p>
<h3>What&#8217;s next?</h3>
<p>Phew! It&#8217;s quite a good amount of writing in a while <img src='http://www.phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I&#8217;ve tried to cover most of the items I found to be important. However, there might be some points I&#8217;ve overlooked so feel free to post them in the comments. If this helps any one of the developers I intend it for, then I&#8217;ll take that the effort is successful.</p>
<p>Thanks everybody, Happy Eid Mubarak to you!</p>
<div style="background-color: #EAF3FA;border: 1px solid #464646;">Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.</div>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;bodytext=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Becoming%20a%20Kick-ass%20PHP%20ninja%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;selection=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;notes=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;t=Becoming%20a%20Kick-ass%20PHP%20ninja" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;annotation=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;title=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;body=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F10%2Fbecome-kick-ass-php-ninja-from-newbie-guide-tips%2F&amp;t=Becoming%20a%20Kick-ass%20PHP%20ninja&amp;s=Who%20is%20this%20for%3F%0A%0AYou%27ve%20been%20developing%20web%20applications%20using%20PHP%20for%20a%20couple%20months%20now%20and%20are%20finding%20it%20very%20enjoyable.%20Although%20you%20feel%20that%20you%27re%20doing%20quite%20good%2C%20you%27re%20not%20sure%20whether%20its%20the%20end.%20Besides%2C%20the%20following%20questions%20wonde" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2008/10/become-kick-ass-php-ninja-from-newbie-guide-tips/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Beware of the so called &#8220;Senior PHP Developers&#8221;</title>
		<link>http://www.phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/</link>
		<comments>http://www.phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:16:34 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[senior]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=108</guid>
		<description><![CDATA[With the rise of PHP developer as career, many are trying to get their share in the pie. Lately I&#8217;ve met a number of developers who have worked for more than one/two years in developing PHP applications in various companies and they consider themselves as &#8220;senior&#8221; developers. They try to emphasize that they&#8217;ve done enough [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.ok-cancel.com/comic/168.html"><img alt="A splendid illustration of similar trait in OK-Cancel strips" src="http://www.ok-cancel.com/strips/okcancel20070301.gif" class="aligncenter" width="630" height="330" /></a></p>
<p>With the rise of <a href="http://www.boringguys.com/2008/05/13/php-developer-jobs-are-the-hottest-ever/">PHP developer as career</a>, many are trying to get their share in the pie. Lately I&#8217;ve met a number of developers who have worked for more than one/two years in developing PHP applications in various companies and they consider themselves as &#8220;senior&#8221; developers. They try to emphasize that they&#8217;ve done enough raw programming and they are now in a position where they&#8217;ll only design architecture of applications.</p>
<p>When you interview them and ask about complex topics, they&#8217;ll reply: &#8220;<strong>Oh my last company didn&#8217;t allow me work with that, but I&#8217;ll be able to grab that in a day</strong>&#8220;. You trust them and think that if they get the chance, they&#8217;ll sure be able to excel. After all, they&#8217;ve got that Company X&#8217;s experience and Guru Y&#8217;s reference.<br />
<span id="more-108"></span><br />
At first everybody gets amazed with these developers employment history, the projects they&#8217;ve done, the technical jargons they can utter, the ideology/framework/pattern they talk about, etc etc. Everybody wants them in their team. The team who gets them finally are happier than ever, after all life will get easier to have such an expert in team.</p>
<p>Soon projects get rolling and everybody in his/her team is eagerly waiting to see the magics from these &#8220;senior&#8221; developers. To their disappointment, more ideas/criticism/review (e.g. &#8220;<em><strong>Pattern X is better than pattern Y. Why you&#8217;re choosing X?&#8221;, &#8220;Why are you doing Z in this way? Who taught you this?&#8221;, &#8220;Have you ever heard of DEF?&#8221;, &#8220;I have done research on DB normalization and you teach me schema?</strong></em>&#8220;) takes place but they don&#8217;t see actual code from these developers.</p>
<p>They come to office in an awkward timing, leaves early, works with personal things at office &#8211; but nobody can question their activity as people might not believe them. With much regret, the remaining team members continue to complete the work which the &#8220;senior&#8221; developer was suppose to do. Instead of a team <strong>synergy</strong>, an unintended <strong>pressure</strong> is created in the team.</p>
<p>Eventually the project misses deadline by miles, team members become unhappy as they had to do extra work each day to cover the team&#8217;s ass, company gets screwed as client is unhappy and decides not to do repeat business. Company digs down the cause of the failure, finds the responsible person, and fires them away.</p>
<p>Surprisingly, when a friend of the &#8220;senior&#8221; developer asks them in a social party: &#8220;What happened with the Company X you were working on?&#8221;, they&#8217;ll reply: &#8220;<em><strong>Oh that crap! You know, it&#8217;s a pain to work with junior developers. They don&#8217;t understand things. All they know is coding, no knowledge, no understanding of architecture. And the management is so poor, you won&#8217;t believe&#8230;&#8230;</strong></em>&#8220;.</p>
<p>Don&#8217;t include someone like them in your team and think twice or thrice if you don&#8217;t have many options. Try to find out how <a href="http://inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer">good programmer</a> they are in the interview. How senior they might be, ask them to write code in the interview. Try out <a href="http://smallbusiness.logoworks.com/newsletter/index.php/03/2007/02/14-killer-questions-to-ask-in-your-next-interview/?intsrc=n4.2&#038;lpn=Newsletter%20Landing">proven questions</a> that others have shared from their experience. Overall, make sure you&#8217;re taking the right person. The best hiring option is to hire &#8220;no one&#8221;.</p>
<p>Have you been in such situation? Share your experience here!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;bodytext=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;selection=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;notes=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;t=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;annotation=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;title=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;body=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F08%2Fbeware-of-so-called-senior-php-developers%2F&amp;t=Beware%20of%20the%20so%20called%20%22Senior%20PHP%20Developers%22&amp;s=%0A%0AWith%20the%20rise%20of%20PHP%20developer%20as%20career%2C%20many%20are%20trying%20to%20get%20their%20share%20in%20the%20pie.%20Lately%20I%27ve%20met%20a%20number%20of%20developers%20who%20have%20worked%20for%20more%20than%20one%2Ftwo%20years%20in%20developing%20PHP%20applications%20in%20various%20companies%20and%20they%20consider%20themse" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>jQuery Essentials &#8211; Round 3</title>
		<link>http://www.phpfour.com/blog/2008/03/jquery-essentials-round-3/</link>
		<comments>http://www.phpfour.com/blog/2008/03/jquery-essentials-round-3/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 13:52:15 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[essentials]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/2008/03/06/jquery-essentials-round-3/</guid>
		<description><![CDATA[I still receive a good number of hits to my first (10 jQuery Essentials) and second (jQuery Essentials &#8211; Round 2) collection of jQuery plugins. So, I have been thinking about making the next post in the series for quite some time. Time has always been the killer of ideas, along with the fact that [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;source=phpfour&amp;style=normal&amp;service=bit.ly&amp;service_api=R_fb1bb182101242116a43f27482aafdfc" height="61" width="50" /><br />
			</a>
		</div>
<p>I still receive a good number of hits to my first (<a href="http://www.phpfour.com/blog/2007/06/30/jquery-essentials/" target="_blank">10 jQuery Essentials</a>) and second (<a href="http://www.phpfour.com/blog/2007/07/28/jquery-essentials-round-2/" target="_blank">jQuery Essentials &#8211; Round 2</a>) collection of jQuery plugins. So, I have been thinking about making the next post in the series for quite some time. Time has always been the killer of ideas, along with the fact that not too many plugins found way to my list of favorites. </p>
<p>Now that I have some fresh essentials, this post was inevitable.</p>
<div style="background-color: #EAF3FA;border: 1px solid #464646;">Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.</div>
<p><a href="http://ui.jquery.com/" target="_blank">18. jQuery UI</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="102" alt="ui" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100ui-3.png" width="244" border="0"> </p>
<p>This is the official big boss with a number of core interactions (drag, dropping, sorting, selecting, resizing) and few great widgets (accordions, date pickers, dialogs, sliders, tabs) built on top of those. Although its a great collection, I somehow haven&#8217;t been able to use it in any real projects yet. It seems small plugins always get a favor than big collections <img src='http://www.phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p><a href="http://famspam.com/facebox" target="_blank">19. Facebox</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="63" alt="facebox" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100facebox-3.png" width="244" border="0"> </p>
<p>This is a cute, little plugin that shows Facebook style dialog boxes using jQuery. It supports nearly all the possible contents you might want to show in a dialog box: image, div, remote pages. It has both automatic behavior and manual invoking. Simple and fun to me.</p>
<p><span id="more-94"></span></p>
<p><a href="http://plugins.jquery.com/project/pagination" target="_blank">20. Pagination</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="56" alt="pagination" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100pagination-3.png" width="244" border="0"> </p>
<p>Although we generate pagination mostly from back-end and display them in our pages, sometimes AJAX paginations are needed. This plugin outputs a superb pagination display to be used in such cases. If you know the usability issues regarding pagination and can distinguish between bad and good paginations, then you&#8217;ll find that this one has all the good in it. Check out their demo to know what I mean.</p>
<p><a href="http://reconstrukt.com/ingrid/" target="_blank">21. Ingrid, the jQuery Datagrid</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="155" alt="ingrid" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100ingrid-3.png" width="318" border="0"> </p>
<p>&#8220;Datagrids don&#8217;t have to be difficult to use anymore &#8211; say hi to Ingrid. Ingrid is an unobtrusive jQuery component that adds Data Grid behaviors (column resizing, paging, sorting, row and column styling, and more) to your tables.&#8221; &#8211; I can&#8217;t agree more on their say. It&#8217;s truly an excellent implementation of grid. And it makes conversion of normal tables to grids very easy.</p>
<p><a href="http://bijon.rightbrainsolution.com/youtube/" target="_blank">22. jQuery Youtube</a> </p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="188" alt="youtube" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100youtube-3.png" width="244" border="0"> </p>
<p>If you have any need to retrieve and show Youtube videos in your site, this plugin will be a life-saver. Specify a few properties and this plugin will fetch the videos utilizing the new GData API from Google. And the author makes an unique display of the thumbnails, but combining it with <a href="http://www.malsup.com/jquery/block/" target="_blank">BlockUI</a> &#8211; so when you click on a retrieved video, you have it in a modal for preview.</p>
<p><a href="http://www.ndoherty.com/demos/coda-slider/1.1.1/" target="_blank">23. Coda Slider</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="coda" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100coda-3.png" width="244" border="0"> </p>
<p>I am a huge fan of Coda Slider. It&#8217;s a slider plugin for jQuery and is much better than many other sliders out there. It has a pile of properties and display options to play with. I have been able to customize and use it in every possible need, so there is a chance it helps you out also. Supports custom height, width, tabs on top/bottom, without tabs, custom arrows, &#8230; and a lot more.</p>
<p><a href="http://leandrovieira.com/projects/jquery/lightbox/" target="_blank">24. jQuery Lightbox</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="203" alt="lightbox" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100lightbox-3.png" width="244" border="0"> </p>
<p>The prototyped lightbox was very popular and I used it in a couple occasions. But since I&#8217;ve switched to jQuery, I hardly found any replacement for that. <a href="http://jquery.com/demo/thickbox/" target="_blank">Thickbox</a> and a couple other tried (and they were very good implementation), but couldn&#8217;t make me feel the same way. Suddenly I found this one and I knew its the one. A one-liner implementation and all the features from my previous fav is back. It has a number of customization also, if you need to modify the way it behaves. </p>
<p><a href="http://nodstrum.com/2007/09/19/autocompleter/" target="_blank">25. Auto Completer</a></p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="170" alt="auto" src="http://www.phpfour.com/blog/wp-content/uploads/2008/03/windowslivewriterjqueryessentialsround3-11100auto-3.png" width="244" border="0"> </p>
<p>Auto-completes have been there and I mentioned some great ones in my previous posts, but this one has also captured my attention and I like it very much. The author has gone a few extra miles and has explained the inner workings of the plugin. But if you just want to try it out, you can check the demo.</p>
<h3>Categorized jQuery Essentials</h3>
<p>A lot of people have asked me to categorize the posts so that it&#8217;s easy to pick for them. I waited for this post before doing that so I will do a categorized post of the cumulative list of plugins from the 3 posts in the series. </p>
<p>Happy jQuery !</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;bodytext=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="Digg"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203" title="DZone"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=jQuery%20Essentials%20-%20Round%203%20-%20http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F" title="Twitter"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;selection=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="Posterous"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/posterous.png" title="Posterous" alt="Posterous" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203" title="Reddit"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;notes=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="del.icio.us"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203" title="StumbleUpon"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F" title="Technorati"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;t=jQuery%20Essentials%20-%20Round%203" title="Facebook"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;annotation=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="Google Bookmarks"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;source=Md+Emran+Hasan+Emran%26%23039%3Bs+sharing+on+web+technologies&amp;summary=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="LinkedIn"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203" title="Simpy"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;title=jQuery%20Essentials%20-%20Round%203&amp;body=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="Ping.fm"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.phpfour.com%2Fblog%2F2008%2F03%2Fjquery-essentials-round-3%2F&amp;t=jQuery%20Essentials%20-%20Round%203&amp;s=I%20still%20receive%20a%20good%20number%20of%20hits%20to%20my%20first%20%2810%20jQuery%20Essentials%29%20and%20second%20%28jQuery%20Essentials%20-%20Round%202%29%20collection%20of%20jQuery%20plugins.%20So%2C%20I%20have%20been%20thinking%20about%20making%20the%20next%20post%20in%20the%20series%20for%20quite%20some%20time.%20Time%20has%20always%20bee" title="Tumblr"><img src="http://www.phpfour.com/blog/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.phpfour.com/blog/2008/03/jquery-essentials-round-3/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
