<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Made of Everything You&#039;re Not &#187; akelos</title>
	<atom:link href="http://blog.ericlamb.net/tag/akelos/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ericlamb.net</link>
	<description>Thoughts on programming, people and life</description>
	<lastBuildDate>Thu, 27 Oct 2011 01:29:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Thoughts on the Akelos PHP Framework</title>
		<link>http://blog.ericlamb.net/2009/11/thoughts-on-the-akelos-php-framework/</link>
		<comments>http://blog.ericlamb.net/2009/11/thoughts-on-the-akelos-php-framework/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:00:32 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[akelos]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=1820</guid>
		<description><![CDATA[I recently took  on a project that was a failure for the original developers. It was the usual story of outsourcing a project and just getting hosed on cost and timeline (my bread and butter). I was asked to take a look and see if I could finish off the project ASAP. Looking under the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently took  on a project that was a failure for the original developers. It was the usual story of outsourcing a project and just getting hosed on cost and timeline (my bread and butter). I was asked to take a look and see if I could finish off the project ASAP. Looking under the hood I found that the site was using a framework I hadn&#8217;t heard of called <a title="Akelos PHP Framework" href="http://www.akelos.org/" onclick="return TrackClick('http%3A%2F%2Fwww.akelos.org%2F','Akelos+PHP+Framework')" target="_blank">Akelos</a>.</p>
<div id="attachment_2641" class="wp-caption aligncenter" style="width: 251px"><img class="size-full wp-image-2641" title="Akelos" src="http://blog.ericlamb.net/wp-content/uploads/2009/11/Akelos-logo.jpg" alt="Akelos" width="241" height="121" /><p class="wp-caption-text">Akelos</p></div>
<p>Akelos touts itself as a port of <a title="Ruby on Rails" href="http://rubyonrails.org/" onclick="return TrackClick('http%3A%2F%2Frubyonrails.org%2F','Ruby+on+Rails')" target="_blank">Ruby on Rails</a> (RoR) to PHP but, frankly, I think that&#8217;s mostly marketing. Hell, even in the footer disclaimer on the Akelos site they minimize the R0R relationship. Not that that&#8217;s a bad thing per se (I wouldn&#8217;t want to be associated with RoR at the moment either).</p>
<p>Expecting a clusterfuck of code I was actually a little surprised to find the use of a framework. Granted, the previous developers weren&#8217;t using the framework very well, or in any optimal way, but it was still nice to see. Of course that meant I had to learn Another Fucking Framework but what the hell; <a title="Just How Good Are You?" href="http://blog.ericlamb.net/2009/05/just-how-good-are-you/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F05%2Fjust-how-good-are-you%2F','Just+How+Good+Are+You%3F')" target="_self">I like to learn</a>.</p>
<p>According to the site:</p>
<blockquote><p>The <strong>Akelos PHP Framework</strong> is a web application development platform based on the <a title="Model View Controller" href="http://en.wikipedia.org/wiki/Model-view-controller" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel-view-controller','Model+View+Controller')" target="_blank">MVC</a> (Model View Controller) design pattern. Based on good practices, it allows you to:</p>
<ul>
<li>Write views using <a title="Ajax" href="http://en.wikipedia.org/wiki/Ajax_%28programming%29" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAjax_%2528programming%2529','Ajax')" target="_blank">Ajax</a> easily</li>
<li>Control requests and responses through a controller</li>
<li>Manage internationalized applications</li>
<li>Communicate models and the database using simple conventions.</li>
</ul>
<p>Your <strong>Akelos</strong> based applications can run on most shared hosting service providers since <strong>Akelos</strong> only requires that <a title="PHP" href="http://www.php.net/" onclick="return TrackClick('http%3A%2F%2Fwww.php.net%2F','PHP')" target="_blank">PHP</a> be available at the server. This means that the <strong>Akelos PHP Framework</strong> is the ideal candidate for distributing standalone web applications as it does not require any non-standard PHP configuration to run.</p></blockquote>
<p>It seems to work similarly to most MVC frameworks, like the Zend Framework, in file structure and hierarchy which definitely eased some of the pain. Unfortunately, I can&#8217;t really speak to the Ajax ease of use because, well, like I said above the previous developers were not so much on the&#8230; ummm, good side of the coin.</p>
<p>There is a <a title="Creating a weblog using the Akelos PHP Framework" href="http://www.akelos.org/screencasts/creating-a-blog-in-20-minutes" onclick="return TrackClick('http%3A%2F%2Fwww.akelos.org%2Fscreencasts%2Fcreating-a-blog-in-20-minutes','Creating+a+weblog+using+the+Akelos+PHP+Framework')" target="_blank">video</a> which is definitely worth checking out; it&#8217;ll walk you through the basics of how to use Akelos to generate your project. While there&#8217;s a bunch of options for generating your project it does come off a little schizophrenic in that it uses both command line and a web interface depending on what you&#8217;re trying to do.</p>
<p>One thing I was impressed with was the localization functionality. Basically, it works like most do, using translate files (read; arrays), which by itself isn&#8217;t that impressive, but I really appreciate the way the system uses the browser locale value if one isn&#8217;t selected. <a title="Language Select Screens Die!" href="http://blog.ericlamb.net/2009/03/language-select-screens-die/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F03%2Flanguage-select-screens-die%2F','Language+Select+Screens+Die%21')" target="_self">Nice</a>.</p>
<p>One thing that really <em>didn&#8217;t </em>impress me was the absolute <a title="Akelos For Dummies - Creating the Database" href="http://www.akelos.org/wiki/akelos-for-dummies#creating-the-databases" onclick="return TrackClick('http%3A%2F%2Fwww.akelos.org%2Fwiki%2Fakelos-for-dummies%23creating-the-databases','Akelos+For+Dummies+-+Creating+the+Database')" target="_blank">NEED for a database connection</a>; NO MATTER WHAT. That&#8217;s just confining and comes across to me as lazy and wasteful. Seriously, why would this be a good idea? Does no one <a title="When Did Performance Stop Being Important?" href="http://blog.ericlamb.net/2009/09/when-did-performance-stop-being-important/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F09%2Fwhen-did-performance-stop-being-important%2F','When+Did+Performance+Stop+Being+Important%3F')" target="_self">care about performance</a> anymore?</p>
<p>It&#8217;s unfortunate that <a title="Zend Framework" href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" target="_blank">Zend Framework</a> and <a title="Symfony" href="http://www.symfony-project.org/" onclick="return TrackClick('http%3A%2F%2Fwww.symfony-project.org%2F','Symfony')" target="_blank">Symfony</a> are the juggernauts they are; I know I wouldn&#8217;t want to go against them. It&#8217;s got to be tough building a competitive framework with those two being as rad as they are.</p>
<p>All and all Akelos isn&#8217;t a <em>bad</em> framework and it does have potential. The Ajax readiness is intriguing and the file structure and hierarchy is intuitive (if you&#8217;ve used any other MVC framework )so it was easy to figure things out. There&#8217;s also the plugin architecture; I do enjoy me a good plugin architecture.</p>
<p>But I don&#8217;t think the relationship to Ruby on Rails is as good a thing as the developers of Akelos think it is. To be honest, I found the similarities between the two jarring due to how uneven the implementation was. Plus, similarities to RoR might have been a good marketing hook 2 years ago, these days it&#8217;s just another bullet point. Add to that my personal bias that PHP should function like&#8230; you know&#8230; PHP.</p>
<p>Point being, I like RoR and if I want to code like RoR I&#8217;ll use RoR, <em>not</em> PHP, thankyouverymuch. Add to that my dislike for code generation (and Akelos has a lot of code generation) and I just don&#8217;t care anymore.</p>
<p>So for me, Akelos is a fail. Not because Akelos sucks and not because Akelos isn&#8217;t good (though it does suck a <em>little </em>and it&#8217;s not all <em>that good</em>). More because of design decisions that can&#8217;t be helped that disagree with how I like to work.</p>
<p>Zf = 1<br />
Akelos = 0</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 831px; width: 1px; height: 1px;">http://framework.zend.com/</div>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/11/thoughts-on-the-akelos-php-framework/' addthis:title='Thoughts on the Akelos PHP Framework '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/11/thoughts-on-the-akelos-php-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

