all repos — h3rald @ 4fa231fe644b664425d0c6f11f000902b4b3408d

The sources of https://h3rald.com

contents/articles/38.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
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
-----
title: Akelos is real, after all...
content-type: article
timestamp: 1154475180
tags: frameworks|php|webdevelopment|review
-----
<p>Bermi Ferrer kept his promise, and even if a few were skeptic on the <a href="/blog/view/34/">pre-announced</a> features of his upcoming Akelos framework, last week he sent me a &#8220;development preview&#8221; and a few days ago he opened the development <span class="caps">SVN</span> repository to the public:</p>
<p><a href="svn://akelos.org/trunk" target="_blank">svn://akelos.org/trunk</a></p>
<p>Go, get it: it&#8217;s worthwhile (see below).</p>
<p>&#8220;[&#8230;] The Akelos Framework is an open-source port of Ruby on Rails to the <span class="caps">PHP</span> programming language.<br />
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.&#8221;</p>
<p>At the Akelos Framework Features page you can find detailed information about what has been already implemented into the framework.</p>
</blockquote>
<p>I think it says it all, well almost. Some people will undoubtedly be disgusted by yet-another-hopeless-Rails-clone: <em>not again!</em> I hear them crying&#8230;</p>
<p>Well, yeah, I think this &#8211; to be honest &#8211; should be the last attempt someone makes to port Rails to <span class="caps">PHP</span> or at least port <em>some features and the overall philosophy</em>, like <a href="/bookmarks/view/cakephp">CakePHP</a> did: there are honestly too many for one single language. Look at Python, <a href="http://www.djangoproject.com/">Django</a> seems to be the only &#8220;Rails-inspired&#8221; framework available and everyone is happy with it, while as a general rule <span class="caps">PHP</span> folks are never happy with what they already got.</p>
<p>Bermi is undoubtedly one of them, and that&#8217;s the reason he decided to code his very own Rails-inspired framework for <span class="caps">PHP</span>, which is, to date, the most remarkable of the ones I left out (it wasn&#8217;t available at the time) in my <a href="/articles/rails-inspired-php-frameworks/">article</a>.</p>
<h3>Confirmed Features &amp; Contents</h3>
<p>So well, although I didn&#8217;t really have a proper chance to play with Akelos I can certainly herald some of its &#8211; verified, this time &#8211; features.</p>
<p>For one, it&#8217;s huge. Take Cake, add <em>every excellent, useful third party library or class you can possibly thing of</em> and you&#8217;ll get Akelos. No kidding. The unzipped source of the whole framework is a massive 16MB, 8.5 of which constitute the <code>vendors</code> folder. What&#8217;s in it? Well, all this:</p>
<ul>
	<li>ADOdb</li>
	<li>Domit</li>
	<li><span class="caps">FPDF</span></li>
	<li>Excel (reader library)</li>
	<li>Hyper Estraier full-text search system</li>
	<li>Inutio <span class="caps">XML</span>-<span class="caps">RPC</span> Library</li>
	<li><em>Many</em> <span class="caps">PEAR</span> packages</li>
	<li>PHPCodeAnalyzer</li>
	<li>PHPmailer</li>
	<li>SimpleTest</li>
	<li>A Simple <span class="caps">PHP</span> <span class="caps">YAML</span> Class</li>
	<li>Textile</li>
</ul>
<p>Then, similarly, all the state-of-the-art Javascript/<span class="caps">AJAX</span> hyper-hyped libraries are included:</p>
<ul>
	<li><span class="caps">AFLAX</span></li>
	<li>Behaviour</li>
	<li>Builder</li>
	<li>various Scriptaculous packages</li>
	<li>Prototype</li>
	<li>FileUploader (by the author, using prototype)</li>
	<li>Window</li>
	<li>EventSelectors</li>
</ul>
<p style="float:left;"><img src="/img/pictures/frameworks/akelos_framework_logo.gif" alt="" /></p>
<p>Good, well, kind of: that&#8217;s just what <em>others</em> did, but it&#8217;s worth noting that it&#8217;s all there and &#8211; apparently &#8211; 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 <em>code generators</em>&#8230; Aye, there are in Akelos as well, of course!</p>
<p>Coming to the more juicy stuff, <em>lo&#8217; and behold, ye contents of /lib folder (with comments):</em></p>
<ul>
	<li>AkActionController (controller)</li>
	<li>AkActionView (view)</li>
	<li>AkActionWebservice (Web services)</li>
	<li>AkActiveRecord (model)</li>
	<li>AkAdodbCache (content caching)</li>
	<li>AkCharset (utf8 support, includes <em>all</em> mappings)</li>
	<li>AkConfig (load config settings)</li>
	<li>AkConverters (conversions!)
	<ul>
		<li>DBDesigner &gt; AkelosDatabaseDesign</li>
		<li>Excel &gt; Array (bi-dimensional)</li>
		<li>Excel &gt; <span class="caps">CSV</span></li>
		<li><span class="caps">HTML</span> &gt; <span class="caps">RTF</span></li>
		<li><span class="caps">HTML</span> &gt; Text</li>
		<li>Word &gt; Unicode</li>
		<li><span class="caps">PDF</span> &gt; Text</li>
		<li>Xdoc &gt; Text</li>
	</ul></li>
	<li>AkHeaders (<span class="caps">HTTP</span> headers, redirections)</li>
	<li>AkImages (Image operations, resizing)</li>
	<li>AkLocalize (Localization, countries and timezones)</li>
	<li>AkInflector</li>
	<li>AkLogger</li>
	<li>AkFtp</li>
	<li>AkInstaller</li>
	<li>AkRouter</li>
	<li>AkZip</li>
	<li>&#8230;</li>
</ul>
<p>Well, it&#8217;s all there, at any rate. The best way to know if it all works, and <em>how</em> it works, is simply to try it out: <a href="http://www.akelos.org/">www.akelos.org</a>.</p>
<h3>Remarks</h3>
<p>As I said earlier, Akelos looks like <em>CakePHP on steroids</em>: agreed, the Cake philosophy of &#8220;no we-may-use-it code in the trunk&#8221; has been <em>completely</em> (and intentionally) ignored, but this is our chance to peek at what CakePHP could have become if such philosophy didn&#8217;t become a lifestyle for the Cake Dev Team. <br />
Akelos code is Rails-inspired, so yes, it&#8217;s <em>very</em> similar to Cake, although with some rough edges and some re-used parts, but it&#8217;s the work of <span class="caps">ONE</span> person with no community support (yet), don&#8217;t forget. Remarkable.</p>
<p>And he needs co-developers, by the looks of it, so there you are then: there&#8217;s <em>your</em> chance!</p>
<p>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 <span class="caps">PHP</span> and <em>possibly</em> meet the needs of more people: those who want just the essentials, as a framework, and those who like to be <em>virtually almighty</em> and be able to do anything, <em>if they wanted to</em>.</p>
<p>Two flavours of the same framework? <em>CakePHP</em> and <em>cAkePHP</em> (note the case)? Bah, let&#8217;s stop raving now, shall we?</p>