Someone recently added a comment to my article about Rails-inspired PHP frameworks pointing out that I forgot another Rails-like framework, in my round-up. He obviously posted a link to this rather mysterious Rails port in PHP and spam or not, I'd like to thank this guy for letting me know of the existence of Akelos, a new PHP framework which seems simply too good to be true.
Let me just spend a few words more before writing more about it though. First off, it's not available yet. OR at least it doesn't seem to be: the author is planning to release his work to the Open Source community but… well, he's a bit concerned about the current “PHP Framework War”: he wouldn't like to end up like Subway or just be slagged off by those merciless reviewers who enjoy write round-ups and comparisons about frameworks. Bermi Ferrer is “just” a talented PHP developer who decided to create his own framework and he really enjoyed doing so, nothing more, nothing less.
“I considered other PHP ports of Ruby on Rails, but we could not find all we needed on them. One feature that I needed on the core was internationalization and Unicode support, so I decided to roll my own framework trying to keep most of the original rails interface so most of its documentation could work for it.”
Where did I hear that? Nothing new: it's always the same story of frameworks not being as we want them to be etc., it's human. And yes, it's another attempt to port Ruby on Rails to PHP, and a damn good one — or so it seems.
Before proceeding any further, I'd like to write a short warning for a few people who may or may not want to pop in and start commenting about the Rails-is-better-than-any-PHP-clone issue: If I see a single comment slagging off this framework (or any other) only because it's a port of Rails to PHP, it will be deleted, may it be David Heinemeier Hansson himself. Stop it, no seriously, I think it will be counter productive for Rails in the end: I really like RoR and I love the way it works, and yes, I think Ruby is definitely the best language to do that sort of things, EVERYBODY KNOWS THAT. Please, please, save us poor PHP developers the usual preaching.
Right, back to Akelos now. Curious as I am I immediately checked out the official page and all i found was a pretty long list of features which made me dribble, literally… ooops!
Let's just quote the most juicy ones, shall we?
Active Record [“Model”]
- Associations
- Callbacks
- Transactions
- Finders [
$Project->findFirstBy('language AND start_year:greater', 'PHP', '2004');
] - Versioning
- …
Action Controller [“Controller”]
- Filters
- Pagination
- Mime Type
- Mime Response
- Code Generation
- Response handler
- …
Action View [“View”]
- Templates (using Sintags)
- Web 2.0 javascript using prototype and script.aculo.us
- Helpers
- Partials
- Template Compilers
- …
And then more Akelos-only goodies:
- Multilingual Models and Views
- Locale alias integrated on URLS (example.com/spanish will load the es_ES locale)
- Database migrations using DB Designer files
- Pure PHP support for Unicode (no extensions required)
- Unit Tested source code
- Code Generators
- Built in XHTML validator
- Automated locale management
- Clean separation from HTML and Javascript using CSS event selectors.
- Ajax file uploads
- AFLAX integration
- Dojo Rich Text Editor
- Format converters
- File handling using SFTP for shared host running Apache as user nobody (as most CPanel server do)
- Distributed sessions using databases
Impressed? I was, honest. And I'm talking as a CakePHP fanatic here, and I must say that if this framework can really offer all this and — and this is what really matters — is also as simple as Cake to learn and well performing… well, this is definitely going to be quite a promising player in the “PHP Framework War” (but is not a real war, is it?), although the author is quite worried about that:
“I'm also concerned about the PHP Framework war, I don't want to play that game. Building this Framework was a great experience, it works great for me and it has helped me to become a better programmer so I don't want to spend my time discussing about if this is better or not than other solutions. That's the reason I'll first look for great developers interested in the Framework to help me releasing it.”
Really, this will be an interesting project to check out, once it goes open source, and yes, I really wish Bermi all the best. Good luck, Akelos Framework.