An Interview with the creator of the Akelos Framework

Posted by h3rald Thu, 19 Jul 2007 11:02:00 GMT

I already covered the Akelos PHP framework in the past, but for those who don’t know it, Akelos seems to be one of the few Rails-inspired PHP frameworks still worth mentioning, besides CakePHP and Symphony of course.

I recently has a look at their recently-relaunched community website and I noticed this phrase:

“Being port of Ruby on Rails to PHP Akelos is also optimized for programmer happiness and sustainable productivity”

Bermi Ferrer, Akelos creator, openly admits the framework is a port of Ruby on Rails to PHP, an attempt to help “Ruby on Rails developers who need to code in PHP, among others. Of course Akelos is not Rails, simply because Ruby is (thank God for that!) not PHP, however I decided to find out more, and I asked Bermi a few questions, which he promptly answered.

Read more...

Posted in  | Tags , , ,  | no comments | no trackbacks

Akelos is real, after all...

Posted by Fabio Cevasco Wed, 02 Aug 2006 07:33:00 GMT

Bermi Ferrer kept his promise, and even if a few were skeptic on the pre-announced features of his upcoming Akelos framework, last week he sent me a “development preview” and a few days ago he opened the development SVN repository to the public:

svn://akelos.org/trunk

Go, get it: it’s worthwhile (see below).

“[…] The Akelos Framework is an open-source port of Ruby on Rails to the PHP programming language. The main goal of the Akelos Framework is to help programmers to build multilingual database-backed web applications according to the Model-View-Control pattern. It lets you write less code by favoring conventions over configuration.”

At the Akelos Framework Features page you can find detailed information about what has been already implemented into the framework.

I think it says it all, well almost. Some people will undoubtedly be disgusted by yet-another-hopeless-Rails-clone: not again! I hear them crying…

Well, yeah, I think this – to be honest – should be the last attempt someone makes to port Rails to PHP or at least port some features and the overall philosophy, like CakePHP did: there are honestly too many for one single language. Look at Python, Django seems to be the only “Rails-inspired” framework available and everyone is happy with it, while as a general rule PHP folks are never happy with what they already got.

Bermi is undoubtedly one of them, and that’s the reason he decided to code his very own Rails-inspired framework for PHP, which is, to date, the most remarkable of the ones I left out (it wasn’t available at the time) in my article.

Confirmed Features & Contents

So well, although I didn’t really have a proper chance to play with Akelos I can certainly herald some of its – verified, this time – features.

For one, it’s huge. Take Cake, add every excellent, useful third party library or class you can possibly thing of and you’ll get Akelos. No kidding. The unzipped source of the whole framework is a massive 16MB, 8.5 of which constitute the vendors folder. What’s in it? Well, all this:

  • ADOdb
  • Domit
  • FPDF
  • Excel (reader library)
  • Hyper Estraier full-text search system
  • Inutio XML-RPC Library
  • Many PEAR packages
  • PHPCodeAnalyzer
  • PHPmailer
  • SimpleTest
  • A Simple PHP YAML Class
  • Textile

Then, similarly, all the state-of-the-art Javascript/AJAX hyper-hyped libraries are included:

  • AFLAX
  • Behaviour
  • Builder
  • various Scriptaculous packages
  • Prototype
  • FileUploader (by the author, using prototype)
  • Window
  • EventSelectors

Good, well, kind of: that’s just what others did, but it’s worth noting that it’s all there and – apparently – integrated with the framework, hopefully not too tightly. But people are fussy, and do not get excited easily anymore, long gone are the early days of Rails, when the whole Internet shake at hearing about code generators… Aye, there are in Akelos as well, of course!

Coming to the more juicy stuff, lo’ and behold, ye contents of /lib folder (with comments):

  • AkActionController (controller)
  • AkActionView (view)
  • AkActionWebservice (Web services)
  • AkActiveRecord (model)
  • AkAdodbCache (content caching)
  • AkCharset (utf8 support, includes all mappings)
  • AkConfig (load config settings)
  • AkConverters (conversions!)
    • DBDesigner > AkelosDatabaseDesign
    • Excel > Array (bi-dimensional)
    • Excel > CSV
    • HTML > RTF
    • HTML > Text
    • Word > Unicode
    • PDF > Text
    • Xdoc > Text
  • AkHeaders (HTTP headers, redirections)
  • AkImages (Image operations, resizing)
  • AkLocalize (Localization, countries and timezones)
  • AkInflector
  • AkLogger
  • AkFtp
  • AkInstaller
  • AkRouter
  • AkZip

Well, it’s all there, at any rate. The best way to know if it all works, and how it works, is simply to try it out: www.akelos.org.

Remarks

As I said earlier, Akelos looks like CakePHP on steroids: agreed, the Cake philosophy of “no we-may-use-it code in the trunk” has been completely (and intentionally) ignored, but this is our chance to peek at what CakePHP could have become if such philosophy didn’t become a lifestyle for the Cake Dev Team. Akelos code is Rails-inspired, so yes, it’s very similar to Cake, although with some rough edges and some re-used parts, but it’s the work of ONE person with no community support (yet), don’t forget. Remarkable.

And he needs co-developers, by the looks of it, so there you are then: there’s your chance!

My personal opinion about it? Well, I think Akelos can learn from CakePHP and vice-versa: a merge? Well, at least it would reduce the number of Rails-inspired framework for PHP and possibly meet the needs of more people: those who want just the essentials, as a framework, and those who like to be virtually almighty and be able to do anything, if they wanted to.

Two flavours of the same framework? CakePHP and cAkePHP (note the case)? Bah, let’s stop raving now, shall we?

Posted in  | Tags ,  | 1 comment | no trackbacks

Akelos Framework: too good to be true?

Posted by Fabio Cevasco Sat, 10 Jun 2006 17:26:00 GMT

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 existance 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.

Posted in  | Tags ,  | no comments | no trackbacks

CakePHP hybrids

Posted by Fabio Cevasco Fri, 14 Apr 2006 15:55:00 GMT

When I first talked to gwoo, CakePHP’s project manager, I asked him if Cake had any potential limitations. 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 “yes, why not?”. I repeat myself when I say that CakePHP leaves plenty of freedom to developers within the bounds of its MVC 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 you can do anything with CakePHP and things like that, but I can certainly say that CakePHP can be extended and integrated 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 MVC/Event Driven/Whatever framework, simply because it would be rather pointless and potential conflicts may occur.

What I keep finding online is other open source projects adopting CakePHP as backend and structure. 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.

AMFPHP is quite an interesting project:

“[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.”

In other words, it makes lifes much easier for developers who’d like to integrate their flash animations and script more tightly into their PHP application. If you are curious to see some results, head off to AMFPHP showcase. Cool, but what has this project to do with CakePHP? Well, gwoo recently created CakeAMFPHP, a CakeForge project which just yesterday reached its 0.4.0 release, and it’s fully compatible with AMFPHP 1.2.3 and CakePHP 0.10 final. Here’s an excerpt taken from CakeAMFPHP README.txt file:

“[…] 1) get CakePHP 0.10 final (http://cakephp.org) 2) get amfphp 1.2.3 (http://amfphp.org) 3) get the UFO js http://www.bobbyvandersluis.com/ufo/ 4) put amfphp into /app/vendors 5) put cakeamfphp into vendors 6) put the cake_gateway.php in /app/webroot 7) put the cakeamfphp.php in /app/views/helpers 8) put CakeMySqlAdpater.php in /app/vendors/amfphp-core/adapters 9) Voila: NetServices.setDefaultGatewayUrl( ‘http://localhost/cake_install/cake_gateway.php’); Access the service browser through http://localhost/cake_install/vendors/cakeamfphp/cakebrowser/”

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.

“Cool, but I never liked flash, what about AJAX?”

CakePHP has a nice AJAX helper to be used in conjunction with prototype, 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 qooxdoo,

“[…] an advanced open-source JavaScript-based GUI toolkit. qooxdoo continues where simple HTML is not enough. This way qooxdoo can help you implement your AJAX-enhanced web 2.0 application – easier than ever before.”

In a recent discussion on CakePHP user group someone suggested the possibility to integrate qooxdoo with CakePHP. Apparently qooxdoo people were evaluating various MVC frameworks, and Cake was obviously listed together with two other Rails clones for PHP. The good news is that 100rk just started a new project called CQX, which – although still in pre-alpha a development demo is already available, and it shows off most of qooxdoo’s features… Take a look

Best of luck to 100rk and his brand new project, I really hope to see more of it soon!

Posted in  | Tags ,  | no comments | no trackbacks