contents/articles/14.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
-----
title: "CakePHP hybrids"
content-type: article
timestamp: 1145001300
tags: "cakephp|webdevelopment|php"
-----
<p>When I first talked to gwoo, CakePHP's project manager, I asked him if Cake had any potential
<em>limitations</em>. I asked him – I was kidding actually – wether it would be possible to build an
application like Gmail using the framework and he – very seriously – simply said <em>“yes, why
not?”</em>. <br />
I repeat myself when I say that CakePHP leaves plenty of freedom to developers within the bounds of its <span
class="caps">MVC</span> structure: once you grasp the basic logic behind it, your possibilities are endless. I
don't want to act as a Ruby on Rails fanatic and boast that <em>you can do anything with CakePHP</em> and
things like that, but I can certainly say that CakePHP can be <em>extended</em> and <em>integrated</em> with other
collections of scripts, frameworks and projects. With limitations, of course: you probably don't want to force
an integration between CakePHP and another <span class="caps">MVC</span>/Event Driven/Whatever framework, simply
because it would be rather pointless and potential conflicts may occur.
</p>
<p>What I keep finding online is other open source projects adopting CakePHP as <em>backend</em> and <em>structure</em>.
I'm sure there are many examples which could be mentioned here, but I chose two in particular: one has been
around for a few months and the other is just born.</p>
<p style="float:left;"><img src="/images/pictures/amfphp.jpg" alt="" /></p>
<p><a href="http://amfphp.org/"><span class="caps">AMFPHP</span></a> is quite an interesting project:</p>
<blockquote>
<p>“[it] is an open-source Flash Remoting gateway. It's fast, reliable, 100% free and open-source. Flash
Remoting is a technology built into the Flash player core that enables sending data between the server and the
client seemlessly.”</p>
</blockquote>
<p>In other words, it makes lifes much easier for developers who'd like to integrate their flash animations and
script more tightly into their <span class="caps">PHP</span> application. If you are curious to see some results,
head off to <span class="caps">AMFPHP</span> <a href="http://amfphp.org/showcase.html">showcase</a>.<br />
Cool, but what has this project to do with CakePHP? Well, gwoo recently created <a
href="http://cakeforge.org/projects/cakeamfphp/">CakeAMFPHP</a>, a CakeForge project which just yesterday
reached its <a href="http://rd11.com/posts/view/21">0.4.0 release</a>, and it's fully compatible with <span
class="caps">AMFPHP</span> 1.2.3 and CakePHP 0.10 final.<br />
Here's an excerpt taken from CakeAMFPHP <span class="caps">README</span>.txt file:</p>
<blockquote>
<p>“[…] <br />
1) get CakePHP 0.10 final (http://cakephp.org)<br />
2) get amfphp 1.2.3 (http://amfphp.org)<br />
3) get the <span class="caps">UFO</span> js http://www.bobbyvandersluis.com/ufo/<br />
4) put amfphp into /app/vendors<br />
5) put cakeamfphp into vendors<br />
6) put the cake_gateway.php in /app/webroot<br />
7) put the cakeamfphp.php in /app/views/helpers<br />
8) put CakeMySqlAdpater.php in /app/vendors/amfphp-core/adapters<br />
9) Voila: NetServices.setDefaultGatewayUrl( ‘http://localhost/cake_install/cake_gateway.php');<br />
Access the service browser through<br />
http://localhost/cake_install/vendors/cakeamfphp/cakebrowser/”</p>
</blockquote>
<p>The installation doesn't seem too painful at all. And – guess what – gwoo recently updated a very
informative tutorial showing how to create a simple – but still impressive – bullettin board with
CakeAMFPHP.</p>
<p><em>“Cool, but I never liked flash, what about <span class="caps">AJAX</span>?”</em></p>
<p style="float:left;"><img src="/images/pictures/qooxdoo.gif" alt="" /></p>
<p>CakePHP has a nice <span class="caps">AJAX</span> helper to be used in conjunction with <a
href="http://prototype.conio.net/">prototype</a>, but there are truly a lot of libraries, mini-frameworks,
pre-built applications to create interactive desktop-like user interfaces. Some people may already know <a
href="http://qooxdoo.oss.schlund.de/">qooxdoo</a>,</p>
<blockquote>
<p>“[…] an advanced open-source JavaScript-based <span class="caps">GUI</span> toolkit. qooxdoo
continues where simple <span class="caps">HTML</span> is not enough. This way qooxdoo can help you implement
your <span class="caps">AJAX</span>-enhanced web 2.0 application – easier than ever before.”</p>
</blockquote>
<p>In a recent <a
href="http://groups.google.com/group/cake-php/browse_thread/thread/ba219c64cd794764/1d77973293514618?lnk=raot">discussion</a>
on CakePHP user group someone suggested the possibility to integrate qooxdoo with CakePHP. Apparently qooxdoo people
were <a href="http://www.nabble.com/Re%3A-qooxdoo-PHP-framework-project-p3799302.html">evaluating</a> various <span
class="caps">MVC</span> frameworks, and Cake was obviously listed together with two other Rails clones for <span
class="caps">PHP</span>. The good news is that <a href="http://cakeforge.org/users/a100rk/">100rk</a> just
started a new project called <a href="http://cakeforge.org/projects/cqx"><span class="caps">CQX</span></a>, which
– although still in pre-alpha a development demo is already available, and it <em>shows off</em> most of
qooxdoo's features… <a href="http://cqx.100rk.org/trunk/">Take a look</a></p>
<p>Best of luck to 100rk and his brand new project, I really hope to see more of it soon!</p>
|