all repos — h3rald @ b8370013393ca9da6c0132ad49c4c7afbac7d883

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
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
-----
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="/articles/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 CakePHP 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="/images/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>