CakePHP Digest #7 - The Rise of the Plugin
News
CakePHP has really cool, and underutilized plugin system. It looks like the underutilized part is starting to change as there are some neat examples of the power of plugins coming out lately.
First there is a new CakePHP API and the plugin that generates it, which has been released on TheChaw. Even though the CakePHP core works with PHP4/5, the API generator uses PHP's reflection API, so you're going to need PHP 5.2 or better to run it. Which really isn't a negative unless your stuck on PHP 5.1.6. Yea, I'm stuck using 5.1.6 at work. Seriously, 5.1.6? Come on!
The search kind of stunk when the new API was first launched, but was quickly improved. Although there are still some issues. Like how it can't find the classes by their name. Check out the search for httpsocket class. If only the code for the API was open source, I would totally fix...ah forget it.
For someone who uses the API almost excursively (I hardly ever use The CookBook), the changes are nice. I really didn't have a problem with the old API, but I will say this one seems much faster and the transition was seamless in terms of usability. Hey, anyone remember the old days when selecting text in the API would cause Firefox to freeze and eventually crash?
Anyway, the new API is the work of gwoo and Mark Story. No really, Mark Story was involved - can you believe it? Mark is also on the Twitter now, so follow him up.
In other Mark Story/CakePHP plugin news, the DebugKit is now offically off GitHub and exclusively on TheChaw. The DebugKit also has a new "history" panel, which is the work of pure divine genius. It is hard to say that this new panel was "coded" - a better description would be that it was born forth from a power that transcends all consciousness. So really, there is no reason to not be using the DebugKit.
And if downloading and unzipping is too tedious, John David Anderson, aka _psychic_, aka raisinbread released an early version of a plugin server. Right now there are only a few plugins on it, but it's still pretty cool and shows a glimpse of what is to come.
Tickets and Commits
Commits have slowed down lately, just 10 in the last two weeks. This was to be expected now that the framework has gone stable. Although there are a fair number of open tickets. Five are currently assigned to developers and at least another two that are legit, but unassigned at the moment (#6043 and #6072).
It's kind of sad that tickets have increased 700% since the release of 1.2 stable. This is a bit disappointing as I would expect maybe a 50% increase, tops. You may argue that there was only one ticket immediately post 1.2 release so a 700% increase is misleading plus an increase of 50% would mean there was a half ticket and that doesn't make sense. I would counter by having my mom call your mom and get you in trouble for being mean. So there.
In The Wild
A ton of new sites to mention - almost leads one to think that Cake makes it easy to build websites.
Dan from Lunar Cow Design emailed me a couple sites he built. The first is the International Marine Animal Trainer's Association, whose goal is to "foster communication, professionalism, and cooperation among those who serve marine mammal science." Sounds cool and as long as it means more dolphins playing volleyball for my amusement, I'm all for it. The second site is the Club Plus Network, which didn't meet my dolphin volleyball per page quota, so I lost interest before figuring out what it did.
From DRE via the Google Group comes iTestCars.com, which aggregates the feeds of various car blogs, yet oddly does not have a feed of it's own.
Lennaert Ekelmans wrote a bakery article about how Twittermail.com was rebuilt in 48 hours using CakePHP. I will write more about their bakery article in my forthcoming post "How To Use The CakePHP HttpSocket Lib Instead of curl."
Nate tweeted that the Blue Man Group site uses CakePHP. So if you're a depressed male you should definitely check out this support group.
Another site via twitter. This time from Tarique Sani who tweeted about Bedpost, a site to keep track of you sex life. They make the classic mistake of branding the site "Bedpost" but the domain name is "bedposted.com". Ironically, going to bedpost.com offers "Free Porn - No Bullshit." So really, between the two sites, they pretty much cover everything your love life could need. Heck, maybe you visit bedpost.com by mistake first, then a few minutes later you can log your encounter with Rosie Palm and her five friends on bedposted.com.
Once again from twitter. Oscar Carlsson announces his latest site, letsrace.se.
In The Blogs
The blog section of this digest can be renamed in honor of Neil Crookes, who cranked out three high quality CakePHP posts in the last two weeks - all with code available in GitHub. First up is his HistoryComponent, which tracks a users progress through the site and can be used to redirect them back to previous pages. Next is Neil's CakePHP implementation of Yahoo!'s BOSS, which right now is implemented as a set of files that you drop into your app, but could probably be rolled into a really cool plugin. Lastly is his SequenceBehavior that is used for getting a handle on ordering of records.
Teknoid, who has also been blogging a lot lately, has a nice post about managing baked and scaffolded templates.
m3nt0r has also been churning out the CakePHP posts. He has a post about a really cool blogger who is giving away a copy of CakePHP Application Development and made a strangely addictive timeline of all the #cakephp posts on twitter.
In The Groups
Not to single out any particular thread, but my singled biggest message board/forum/newsgroup peeve is when someone asks a perfectly legitimate question and gets responses either wanting to know why they asked the question or that the question is wrong in the first place. Come on people. Unless the poster made it clear the don't know what they're doing let's assume we're all competent and have our reasons for needing to do things a certain way.
Everyone's second favorite Google Group topic (behind the dreaded framework performance comparison topic) popped up again. Yup, it's the "which editor do I use to code CakePHP" topic.
Also I believe this is the first SVN vs Git thread. Keep a link to it handy, for when this topic comes up again on a monthly basis.
There a couple new plugins that allow to search the API and the CookBook from your Firefox search box. You can find them both here along with some bonus drama.
In general the Google Group seemed really active lately. Much more so then in the beginning of January, which can probably be attributed to holiday hangover. Some other active threads were about the new API and UTF-8 encoding.
In The Bakery
Ronny Vindenes created a helper for same timeline widget that you saw in the #cakephp twitter page above.
Siegfried Hirsch has created a datasource for dealing with CSV files.
With any luck both of the above links will still be valid at the time you're reading this. Yes, that is a veiled shot at my growing annoyance with the Bakery. I understand the need to moderate the content, but it sucks that anytime there is a change in the article the page goes missing until it is re-approved. Do you realize how hard that makes it to write a CakePHP Digest post?!?!?! COME ON!!1!
And on that note don't forget to subscribe to my feed or follow me on twitter.
As always if you think I missed something leave a comment. Or if you do something interesting and want it included in the next digest, send me an email.

13 Comments
Cool that you fixed it so quick. Thanks!
Cheers!
I definitely read your blog. If I was writing this digest 7 months ago you'd have been mentioned :)
@Marc, I did check out your post before writing my code, and it gave me a good insight to how to add Yahoo! BOSS functionality, but you're right, it wasn't very cakey ;-)
I haven't actually done this, but you may want to check out ConnectionManager::create (http://api.cakephp.org/class/connection-manager#method-ConnectionManagercreate, which seems to allow you to add datasources at will. That may allow to you put your datasource config and datasource class into a plugin.
I think Route::connect will allow you to add routes without having to edit the config file. Although you could just leave the normal plugin route (/yahoo_boss/search) and give instructions on how to change it in the default route if people want to.
Again, I haven't tried any of this, so I may be completely off here.