[Melbourne-pm] Ext.Direct

scottp at dd.com.au scottp at dd.com.au
Mon Aug 24 17:21:23 PDT 2009


Hey Dudes 

For those who use ExtJS 3.0, the new Direct (basically RPC) is excellent, but there was no Perl backend. Now there is: 

http://scott.dd.com.au/wiki/Ext.Direct 

It is pretty basic. There is a simple CGI version and a modperl version. 

http://github.com/scottp/extjs-direct-perl/blob/master/modperl/Apache/RPC/ExtDirect.pm 

I have only spent a few hours on it so far, so there is hardly any testing, a few features missing and no security. Currently it is good as a reference implementation, but I am working on two CPAN releases: RPC::ExtDirect - a perl module useful for calling from CGI. I would also like to use that (directly or as a reference) for a Catalyst module or similar. AND Apache::RPC::ExtDirect which is currently fully working, including preloading of classes (& optional instantiation), but still needs documentation, more testing and better configuraiton before release. 

So a quick how do you use it? 

Write your module 
package RealDemo; 
use JSON; 
sub doTest { 
my ($class, $in) = @_; 
if ($in =~ /cott/) { 
return "You can not use 'Scott' in your name"; 
} 
return JSON::true; 
} 
1; 
Write your configuration file: 
{ 
Demo => { 
Class => 'RealDemo', 
Methods => { 
doTest => { params => 1 }, 
}, 
}, 
} 
Load your apache config 
PerlModule Apache::RPC::ExtDirect 
<Location /data> 
SetHandler modperl 
PerlResponseHandler Apache::RPC::ExtDirect 
</Location> 
After loading your javascript, you can just call the method. 
e.g. 
Demo.doTest('Call the function'); 
but you need a callback to get the results. 
Demo.doTest('Call the function', function(result) { 
alert("We got: " + result); 
}); 

Enjoy. 

Scott 
-- 
http://scott.dd.com.au/ 
scottp at dd.com.au 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/melbourne-pm/attachments/20090824/d1257e5b/attachment.html>


More information about the Melbourne-pm mailing list