<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Studio Canaria</title><link>http://www.studiocanaria.com/</link><description /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/studiocanaria" type="application/rss+xml" /><feedburner:emailServiceId>studiocanaria</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>CakePHP Quick Tip: $html-&gt;clearCrumbs</title><link>http://feedproxy.google.com/~r/studiocanaria/~3/kdRIa0Hm5Ww/cakephp_quick_tip_html_clearcrumbs</link><guid isPermaLink="false">http://www.studiocanaria.com/articles/cakephp_quick_tip_html_clearcrumbs</guid><description>&lt;p&gt;Hi All&lt;/p&gt;

&lt;p&gt;As part of an ongoing project, I was using the &lt;em&gt;CakePHP's&lt;/em&gt; htmlHelper to generate breadcrumbs.&lt;/p&gt;

&lt;p&gt;Now combined with the &lt;strong&gt;tree behavior's&lt;/strong&gt; getpath function, the &lt;strong&gt;$html-&gt;addCrumb()&lt;/strong&gt; and &lt;strong&gt;$html-&gt;getCrumbs()&lt;/strong&gt; functions are great and a real time saver, but...&lt;/p&gt;

&lt;p&gt;...for this particular page I actually want to show two or more different bread crumb trails, one for location, and one or more for categories, and that's where I hit a snag, as it stands the htmlhelper allows you to keep adding crumbs and displaying the trail so far, but has no way of clearing the protected _crumbs array, should you need to make more than one trail.&lt;/p&gt;

&lt;h3&gt;AppHelper to the rescue&lt;/h3&gt;

&lt;p&gt;Since the app_helper file was added to CakePHP you now have the facility to add additional functionality to built in helpers so by adding the following code to app_helper.php:&lt;/p&gt;

&lt;pre class="brush:php"&gt;
    /**
     * enhancement to htmlHelper which allows the crumbs protected array
     * to be cleared so that more than one set of crumbs can be generated in the same view.
     * 
     * @author Peter Butler &lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#x70;e&amp;#116;&amp;#101;&amp;#114;&amp;#x40;&amp;#x73;&amp;#x74;&amp;#x75;d&amp;#105;&amp;#111;&amp;#99;&amp;#97;&amp;#x6e;&amp;#x61;&amp;#x72;&amp;#x69;&amp;#97;&amp;#46;&amp;#99;&amp;#111;&amp;#x6d;"&gt;&amp;#x70;e&amp;#116;&amp;#101;&amp;#114;&amp;#x40;&amp;#x73;&amp;#x74;&amp;#x75;d&amp;#105;&amp;#111;&amp;#99;&amp;#97;&amp;#x6e;&amp;#x61;&amp;#x72;&amp;#x69;&amp;#97;&amp;#46;&amp;#99;&amp;#111;&amp;#x6d;&lt;/a&gt;
     * @return void
     * @access public
     */
    function clearCrumbs(){
        $this-&gt;_crumbs = array();
    }
&lt;/pre&gt;

&lt;p&gt;You can now use &lt;strong&gt;$html-&gt;clearCrumbs()&lt;/strong&gt; to clear down and build a second, third or however many breadcrumb trails you need.&lt;/p&gt;

&lt;p&gt;Hope you find this usefull,&lt;/p&gt;

&lt;p&gt;till the next time.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=Xf89YlrV"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=Xf89YlrV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=Yqrdxn7I"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=Yqrdxn7I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=94fAadDm"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=94fAadDm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=ZDBXBXCt"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=GmYErQv0"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=7wLNTbJ6"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=sEb9PZ9K"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/studiocanaria/~4/kdRIa0Hm5Ww" height="1" width="1"/&gt;</description><author>Peter Butler - Studio Canaria</author><pubDate>Thu, 16 Oct 2008 10:17:07 -0700</pubDate><feedburner:origLink>http://www.studiocanaria.com/articles/cakephp_quick_tip_html_clearcrumbs</feedburner:origLink></item><item><title>CakePHP 1.2.0.7692 RC3</title><link>http://feedproxy.google.com/~r/studiocanaria/~3/Ec3hyqqlilY/cakephp_1_2_0_7692_rc3</link><guid isPermaLink="false">http://www.studiocanaria.com/articles/cakephp_1_2_0_7692_rc3</guid><description>&lt;p&gt;Hi all,&lt;/p&gt;

&lt;p&gt;Just a quick post to help spread the word, cakePHP RC3 is finally here, and according to &lt;a href="http://bakery.cakephp.org/articles/view/release-cakephp-rc3-the-rc-of-triumph"&gt;Nate's latest post at the bakery&lt;/a&gt;, this will be the final release candidate before they finalise the 1.2 version.&lt;/p&gt;

&lt;p&gt;From reading through Nate's article, and &lt;a href="https://trac.cakephp.org/wiki/changelog/1.2.x.x"&gt;the change set&lt;/a&gt;, It's clear that the team have worked tirelessly on iteration after iteration of performance improvements, to make the framework faster than ever before. By itself, the bootstrap process is over 10x faster than RC2, and basic requests for static content are now about 5x faster overall.&lt;/p&gt;

&lt;p&gt;To celebrate the new release, Jeff and Nate have recorded a new episode of the live show &lt;a href="http://live.cakephp.org/"&gt;which you can listen to here&lt;/a&gt;, and you can download the code from &lt;a href="http://cakeforge.org/frs/?group_id=23&amp;amp;release_id=426"&gt;cake forge&lt;/a&gt;, or export it from the &lt;a href="https://svn.cakephp.org/repo/trunk/cake/1.2.x.x/"&gt;svn trunk&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Personally, I have just downloaded the new release and can't wait to give it a try, and a big thank you to the entire development team who make my job as a developer more enjoyable, more productive and ultimately more profitable by providing the essential tool the &lt;em&gt;cakePHP&lt;/em&gt; has become.&lt;/p&gt;

&lt;h3&gt;Happy Baking and Thank You cakePHP&lt;/h3&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=KepsZ1DK"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=KepsZ1DK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=wDGY1b4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=wDGY1b4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=v5mxK4l4"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=v5mxK4l4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=XJ44zLzd"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=7EHgrAmO"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=FOb8KVFh"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=3mO3hfVa"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/studiocanaria/~4/Ec3hyqqlilY" height="1" width="1"/&gt;</description><author>Peter Butler - Studio Canaria</author><pubDate>Thu, 02 Oct 2008 01:35:14 -0700</pubDate><feedburner:origLink>http://www.studiocanaria.com/articles/cakephp_1_2_0_7692_rc3</feedburner:origLink></item><item><title>Web Development Resources - Aptana Studio</title><link>http://feedproxy.google.com/~r/studiocanaria/~3/gdFLDrcJJng/web_development_resources_aptana_studio</link><guid isPermaLink="false">http://www.studiocanaria.com/articles/web_development_resources_aptana_studio</guid><description>&lt;div class="float-right"&gt;

&lt;p&gt;&lt;img src="/img/blog/aptana.jpg" alt="Aptana Studio" /&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;At the risk of showing my age, it's been nearly 28 years since I wrote my first line of code. Way back in the heady days of &lt;strong&gt;ZX Basic&lt;/strong&gt; on my trusty old &lt;strong&gt;ZX Spectrum&lt;/strong&gt;. Back then to get anything usefull done it was &lt;strong&gt;Z80 assembly language&lt;/strong&gt; or nothing.&lt;/p&gt;

&lt;p&gt;Over the years I've used a lot of programming languages and a lot of &lt;strong&gt;IDE's&lt;/strong&gt;, from &lt;strong&gt;Hisoft Basic&lt;/strong&gt; on my &lt;strong&gt;Atari ST&lt;/strong&gt;, through to &lt;strong&gt;Delphi&lt;/strong&gt; and &lt;strong&gt;Visual Studio&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nowadays, I tend to work extensively with both the &lt;strong&gt;.NET&lt;/strong&gt; framework using &lt;strong&gt;Visual Studio 2008&lt;/strong&gt; and &lt;strong&gt;PHP&lt;/strong&gt; using &lt;a href="http://www.aptana.com/studio/"&gt;Aptana Studio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's available both as a standalone application and as an &lt;strong&gt;Eclipse&lt;/strong&gt; plugin and I have used it both ways, I have also tried many other PHP editors including &lt;strong&gt;Komodo&lt;/strong&gt;, &lt;strong&gt;PHPEdit&lt;/strong&gt; and the &lt;strong&gt;PDE&lt;/strong&gt;  plugin for &lt;strong&gt;Eclipse&lt;/strong&gt; but in the end I always tend to come back to &lt;strong&gt;Aptana&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For todays mix of &lt;strong&gt;PHP&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt; and &lt;strong&gt;AJAX/Javascript&lt;/strong&gt;, I just find it a pleasure to work with and very intuitive.&lt;/p&gt;

&lt;p&gt;Of course, I can't write an article on my favourite &lt;strong&gt;IDE&lt;/strong&gt; and miss out &lt;strong&gt;Dreamweaver&lt;/strong&gt; which I have used right back since version 1, but since using &lt;strong&gt;Aptana&lt;/strong&gt;, I find myself almost never using &lt;strong&gt;Dreamweaver&lt;/strong&gt; at all, and best of all, you can download the community edition free of charge or for a very reasonable fee upgrade to the PRO edition.&lt;/p&gt;

&lt;h3&gt;How about you?&lt;/h3&gt;

&lt;p&gt;Just for the record, why not use the comments section below to tell me about your &lt;strong&gt;IDE&lt;/strong&gt; of choice.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=CgQTuzph"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=CgQTuzph" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=7ihIpFj9"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=7ihIpFj9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=ZCcs2tNL"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=ZCcs2tNL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=YXATlQlw"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=YpKFkyrj"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=IAtwALLA"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=VMnOGeSA"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/studiocanaria/~4/gdFLDrcJJng" height="1" width="1"/&gt;</description><author>Peter Butler - Studio Canaria</author><pubDate>Thu, 11 Sep 2008 12:34:38 -0700</pubDate><feedburner:origLink>http://www.studiocanaria.com/articles/web_development_resources_aptana_studio</feedburner:origLink></item><item><title>Quicktips: Finding all the actions in your controller</title><link>http://feedproxy.google.com/~r/studiocanaria/~3/VtSRolp9T4I/quicktips_finding_all_the_actions_in_your_controller</link><guid isPermaLink="false">http://www.studiocanaria.com/articles/quicktips_finding_all_the_actions_in_your_controller</guid><description>&lt;p&gt;Hi All,&lt;/p&gt;

&lt;p&gt;Thought I'd share a quick tip today for how to automatically detect all the action names within a given controller.&lt;/p&gt;

&lt;p&gt;This follows on from &lt;a href="http://www.studiocanaria.com/articles/quicktips_finding_all_the_controllers_in_your_cakephp_application"&gt;my last quicktip, describing how to detect all the controllers in your application&lt;/a&gt; and is usefull from witin navigation code or admin back ends.&lt;/p&gt;

&lt;pre class="brush:php"&gt;
$actions = get_class_methods($this);
&lt;/pre&gt;

&lt;p&gt;This returns an array where each element is the name of a method within the current controller.&lt;/p&gt;

&lt;h3&gt;Filtering your results&lt;/h3&gt;

&lt;p&gt;You can make this more usefull by filtering the actions, for example to remove all the inherited actions from &lt;strong&gt;app_controller&lt;/strong&gt; use:&lt;/p&gt;

&lt;pre class="brush:php"&gt;
$ignore = get_class_methods('Controller');
foreach($actions as $key=&gt;$action){
            if(in_array($action, $ignore)){
                unset($actions[$key]);
                continue;
            }
}
&lt;/pre&gt;

&lt;p&gt;and this can be extended further to remove any private or protected methods with:&lt;/p&gt;

&lt;pre class="brush:php"&gt;
$ignore = get_class_methods('Controller');
foreach($actions as $key=&gt;$action){
            if(in_array($action, $ignore)){
                unset($actions[$key]);
                continue;
            }
            if(strpos($action, '_', 0) === 0){
                unset($actions[$key]);
                continue;
            }
}
&lt;/pre&gt;

&lt;p&gt;That's it for today, hope some of you find this helpfull, see you all soon.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=Kvo4lUyC"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=Kvo4lUyC" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=fUL5xxVh"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=fUL5xxVh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=dTgUqKBa"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=dTgUqKBa" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=QhXN9u7S"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=sK9SppVO"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=PhLR8nzD"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=t2DtUl3B"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/studiocanaria/~4/VtSRolp9T4I" height="1" width="1"/&gt;</description><author>Peter Butler - Studio Canaria</author><pubDate>Thu, 11 Sep 2008 00:53:12 -0700</pubDate><feedburner:origLink>http://www.studiocanaria.com/articles/quicktips_finding_all_the_actions_in_your_controller</feedburner:origLink></item><item><title>CakePHP WhoIs Component</title><link>http://feedproxy.google.com/~r/studiocanaria/~3/8SqHarKdG2Y/cakephp_whois_component</link><guid isPermaLink="false">http://www.studiocanaria.com/articles/cakephp_whois_component</guid><description>&lt;p&gt;Here's one for all you aspiring web hosting ressellers out there, a fast and flexible &lt;strong&gt;whois&lt;/strong&gt; class all wrapped up as a &lt;strong&gt;CakePHP&lt;/strong&gt; component.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;component&lt;/strong&gt; makes use of the excellent &lt;strong&gt;phpWhoIs&lt;/strong&gt; class which you will need to download, unzip and place in APP/vendors/phpwhois in order for the component to work.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sourceforge.net/project/downloading.php?group_id=31207&amp;amp;use_mirror=heanet&amp;amp;filename=phpwhois-4.1.3.tar.gz&amp;amp;15106317"&gt;Click here to download phpWhoIs&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;phpWhoIs - a brief description&lt;/h3&gt;

&lt;p&gt;This package contains a Whois (RFC954) library for PHP. It allows
a PHP program to create a Whois object, and obtain the output of
a whois query with the Lookup function.&lt;/p&gt;

&lt;p&gt;The response is an array containing, at least, an element 'rawdata',
containing the raw output from the whois request.&lt;/p&gt;

&lt;p&gt;In addition, if the domain belongs to a registrar for which a special
handler exists, the special handler will parse the output and make
additional elements available in the response. The keys of these
additional elements are described in the file HANDLERS.&lt;/p&gt;

&lt;p&gt;It fully supports IDNA (internationalized) domains names as
defined in RFC3490, RFC3491, RFC3492 and RFC3454.&lt;/p&gt;

&lt;p&gt;It also supports ip/AS whois queries which are very useful to trace
SPAM. You just only need to pass the doted quad ip address or the
AS (Autonomus System) handle instead of the domain name. Limited,
non-recursive support for Referral Whois (RFC 1714/2167) is also
provided.&lt;/p&gt;

&lt;h3&gt;The WhoIs Component&lt;/h3&gt;

&lt;p&gt;OK, if you have been following so far, you'll have downloaded &lt;strong&gt;phpWhoIs&lt;/strong&gt;, unzipped it and placed all the files in a folder called &lt;strong&gt;phpwhois&lt;/strong&gt; inside either your &lt;strong&gt;APP/vendors&lt;/strong&gt; folder or your shared &lt;strong&gt;vendors&lt;/strong&gt; folder, now to integrate it into the CakePHP framework using a component.&lt;/p&gt;

&lt;p&gt;APP/controllers/components/whois.php&lt;/p&gt;
&lt;pre class="brush:php"&gt;
&amp;lt;?php
class WhoisComponent extends Object {
    function lookup($domain,$deep_whois = true) {
        App::import('Vendor','whois',array('file'=&gt;'phpwhois'.DS.'whois.main.php'));
        $whois = new Whois();
        $whois-&gt;deep_whois = $deep_whois;
        return $whois-&gt;Lookup($domain,false);
    }
}
?&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Short and simple and does the job, basically all we are doing here is creating a wrapper to access the phpwhois class and it's lookup method.&lt;/p&gt;

&lt;h3&gt;In use&lt;/h3&gt;

&lt;p&gt;OK, you've got the phpwhois package and the component, now to use them within a controller, simply add &lt;strong&gt;Whois&lt;/strong&gt; to your &lt;strong&gt;components array&lt;/strong&gt;&lt;/p&gt;

&lt;pre class="brush:php"&gt;
var $components = array('Whois');
&lt;/pre&gt;

&lt;p&gt;Then from within any of your actions you can simply use:&lt;/p&gt;

&lt;pre class="brush:php"&gt;
$result = $this-&gt;Whois-&gt;lookup('example.com'));
&lt;/pre&gt;

&lt;h3&gt;Faster results&lt;/h3&gt;

&lt;p&gt;The whois lookup is pretty fast already, but if you don't want all the extended information and are simply interested in seeing if a domain is registered or not, then pass &lt;strong&gt;false&lt;/strong&gt; as a second parameter to the &lt;strong&gt;lookup&lt;/strong&gt; method.&lt;/p&gt;

&lt;h3&gt;Possible uses&lt;/h3&gt;

&lt;p&gt;Beside the standard whois query or domain registration check, you can also use this to process &lt;strong&gt;env('REMOTE_ADDR')&lt;/strong&gt; to give you information about the current visitors ISP, icluding country code and ISP name, which could be pretty usefull within a stats system or for auto detecting local currency. Let me know if you come up with any other uses or if you use this code in a site then let me know and I will give you a mention.&lt;/p&gt;

&lt;p&gt;Anyway, that's your lot for today, till the next time&lt;/p&gt;

&lt;h3&gt;happy baking!&lt;/h3&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=k9fTCthD"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=k9fTCthD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=q9AVozQP"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=q9AVozQP" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=U4T5Trx6"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?i=U4T5Trx6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=527ZgJh8"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=QUQcvJQS"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=q0jE4WkU"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/studiocanaria?a=cxJ63Cuo"&gt;&lt;img src="http://feeds.feedburner.com/~f/studiocanaria?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/studiocanaria/~4/8SqHarKdG2Y" height="1" width="1"/&gt;</description><author>Peter Butler - Studio Canaria</author><pubDate>Wed, 10 Sep 2008 01:34:07 -0700</pubDate><feedburner:origLink>http://www.studiocanaria.com/articles/cakephp_whois_component</feedburner:origLink></item></channel></rss>
