<?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>Jansch.nl &#187; framework</title>
	<atom:link href="http://www.jansch.nl/tag/framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jansch.nl</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Sun, 31 Jul 2011 14:58:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>New home for ATK</title>
		<link>http://www.jansch.nl/2008/06/19/new-home-for-atk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-home-for-atk</link>
		<comments>http://www.jansch.nl/2008/06/19/new-home-for-atk/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 06:57:30 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[almer kaasschieter]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[boy baukema]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[peter verhage]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/2008/06/19/new-home-for-atk/</guid>
		<description><![CDATA[Now that my book is finally out I had some time to get a new website out the door. The ATK Framework, which has been living on Achievo's website for a few years, finally has a home of its own, with a brand new design: http://www.atk-framework.com. The design was created by our house designer Almer [...]]]></description>
			<content:encoded><![CDATA[<p>Now that my book is <a href="http://www.jansch.nl/2008/06/18/phparchitects-guide-to-enterprise-php-development-is-out/">finally out</a> I had some time to get a new website out the door.</p>
<p>The ATK Framework, which has been living on <a href="http://www.achievo.org">Achievo's website</a> for a few years, finally has a home of its own, with a brand new design: <a href="http://www.atk-framework.com">http://www.atk-framework.com</a>. The design was created by our house designer <a href="http://almerkaasschieter.nl/">Almer Kaasschieter</a>.</p>
<p>There are also some project changes as I haven't had much time for the framework the past year. <a href="http://www.ibuildings.com/blog/authors/Peter-C-Verhage">Peter C. Verhage</a> is taking over release management (he's the one who implemented most of the fancy Ajax stuff, the generate-an-app-from-the-db-schema functionality and much more, so it's in good hands), and <a href="http://blog.relaxnow.nl/">Boy Baukema</a> has formed an ATK Documentation Group that is going to deal with the lack of proper documentation.  </p>
<p>Also, there are Zend Framework and Code Igniter bridges on their way, and I've heard a rumour someone is working on a Symfony bridge. This way, you can combine the power of those frameworks with the backend strength of ATK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2008/06/19/new-home-for-atk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing the i7 Framework</title>
		<link>http://www.jansch.nl/2007/09/28/introducing-the-i7-framework/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introducing-the-i7-framework</link>
		<comments>http://www.jansch.nl/2007/09/28/introducing-the-i7-framework/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 16:48:26 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[db2]]></category>
		<category><![CDATA[expo]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[i7]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[System-i]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=671</guid>
		<description><![CDATA["Oh no, yet another framework for PHP..." Admit it: that was what you thought when you read the title, didn't you? But rest assured, we haven't created a new framework. But we did launch something. For 7 years now, we've been working on ATK, and it has found its niche as a framework for developing [...]]]></description>
			<content:encoded><![CDATA[<p>"Oh no, yet another framework for PHP..."</p>
<p>Admit it: that was what you thought when you read the title, didn't you?</p>
<p>But rest assured, we haven't created a new framework.</p>
<p>But we did launch something.</p>
<p>For 7 years now, we've been working on <a href="http://www.achievo.org/atk">ATK</a>, and it has found its niche as a framework for developing business applications. Where some frameworks focus on providing components, and other frameworks focus on websites, ATK has more and more focussed on business apps: these internal applications that companies use to run their business. (And also often as an easy-to-build administrative backend to some webapplications). </p>
<p>ATK typically lives on an internal Linux or Windows server in an office or corporate environment.</p>
<p>This year, a specific set of circumstances led to a whole new market for the framework. </p>
<p>The most important in this respect was the release of <a href="http://www.zend.com/products/zend_core/zend_core_for_i5_os">Zend Core</a> for IBM's System-i. "System i" may be relatively unknown in the PHP community, but it's the new name (they change it every few years) of what was once called the AS400, and if that doesn't ring a bell, it's the big machines that run all these enterprise 'green screen' environments of large retailers, factories etc.</p>
<p>Zend Core basically brings native PHP to the System i world. This means that PHP is now a valid alternative to Java, when modernizing all these enterprise applications, and creating a web frontend for them.</p>
<p>The fun thing is: about 90% of the apps running on System i are business applications. Data management, data flows, workflows, business processes. Things that ATK is good at.</p>
<p>So this provides a great opportunity for the framework.</p>
<p>The operating system running on System-i is called 'i5/OS', so the calculation we did was:</p>
<p>i5 + PHP + ATK = i7</p>
<p>Corny, granted; but giving it a new name (which seems to be relevant in the IBM world) gives us the possibility to make this a separate product range. i7 basically is ATK for i5, with native i5 drivers, and an extensive support package. For some reasons, in the big blue IBM world, 'free software' is considered evil, so we had to add a support package in order to be taken seriously. <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The past 2 days, we have presented "the i7 Framework for System-i" at the <a href="http://www.systemiportal.nl/expo/">System-i Expo</a> in the Netherlands. We did 2 sessions of 50 minutes demonstrating the framework to IT managers, most of which hadn't even heard of PHP yet. And the results are promising. Not only for our little framework, but also for PHP in general.</p>
<p>Info on the i7 framework can be found at <a href="http://www.i7.nl">i7.nl</a>. Currently in Dutch (because of time pressure before the Expo), but an international version will follow soon. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/09/28/introducing-the-i7-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATK 6.1 released</title>
		<link>http://www.jansch.nl/2007/08/30/atk-61-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk-61-released</link>
		<comments>http://www.jansch.nl/2007/08/30/atk-61-released/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 12:36:12 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=651</guid>
		<description><![CDATA[I just released ATK 6.1; It contains several new features such as Ajax based dialogs, a new language file (Indonesian), and several bug fixes. The most important however is that it fixes an XSS vulnerability based on the usage of $_SERVER["PHP_SELF"] that we had overlooked. It is recommended to upgrade ATK applications to ATK 6.1. [...]]]></description>
			<content:encoded><![CDATA[<p>I just released ATK 6.1; It contains several new features such as Ajax based dialogs, a new language file (Indonesian), and several bug fixes. </p>
<p>The most important however is that it fixes an XSS vulnerability based on the usage of $_SERVER["PHP_SELF"] that we had overlooked. </p>
<p>It is recommended to upgrade ATK applications to ATK 6.1.</p>
<p>The release can be found on <a href="http://www.achievo.org/atk/download">http://www.achievo.org/atk/download</a></p>
<p>The changelog is included in the release, and at <a href="http://www.achievo.org/atk/download">http://www.achievo.org/atkdemo/atk/doc/CHANGES</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/08/30/atk-61-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ATK6 released</title>
		<link>http://www.jansch.nl/2007/06/12/atk6-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk6-released</link>
		<comments>http://www.jansch.nl/2007/06/12/atk6-released/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 08:45:49 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=621</guid>
		<description><![CDATA[Today it's exactly one year since ATK 5.6 was released. So the new release was long overdue. It's finally here, along with a new website which has a lot less fuzz, and is more to the point. The changelog is a whopping 1056 lines. This translates to rougly 300 changes for this release. We might [...]]]></description>
			<content:encoded><![CDATA[<p>Today it's exactly one year since ATK 5.6 was released. So the new release was long overdue.</p>
<p>It's finally here, along with a new website which has a lot less fuzz, and is more to the point.</p>
<p>The changelog is a whopping 1056 lines. This translates to rougly 300 changes for this release. We might say this is a new generation, which is marked with a new major version number, and a new default layout. And it finally has ajax support (the way you are used to in ATK: add a flag to add autocompletion to a field, add one line of code to make things refresh on the fly). Most of you have been using the nightlies for months now, so this may not be new for you, but many companies are still using 5.6 for their apps. </p>
<p>The new release can be <a href="http://www.achievo.org/atk">downloaded here</a>.</p>
<p>Given the amount of changes, upgrading might not be trivial. Consult the <a href="http://www.achievo.org/forum">forum</a> if you need help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/06/12/atk6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>phpthrowdown has started</title>
		<link>http://www.jansch.nl/2007/01/27/phpthrowdown-has-started/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=phpthrowdown-has-started</link>
		<comments>http://www.jansch.nl/2007/01/27/phpthrowdown-has-started/#comments</comments>
		<pubDate>Sat, 27 Jan 2007 11:11:11 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[almer]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[guido]]></category>
		<category><![CDATA[jasper]]></category>
		<category><![CDATA[naramore]]></category>
		<category><![CDATA[openmotive]]></category>
		<category><![CDATA[phpthrowdown]]></category>
		<category><![CDATA[yury]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=541</guid>
		<description><![CDATA[The phpthrowdown competition has officially started. Our timeslot actually began 4 hours ago, but we started roughly 2 hours ago (just couldn't get myself to get up at 6 am on a saturday ). So far, we've been defining the application we're going to build, been designing a data model, importing our framework into the [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://phpthrowdown.com">phpthrowdown</a> competition has officially started. Our timeslot actually began 4 hours ago, but we started roughly 2 hours ago (just couldn't get myself to get up at 6 am on a saturday <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>So far, we've been defining the application we're going to build, been designing a data model, importing <a href="http://www.achievo.org/atk">our framework</a> into the repository, and we're currently starting the actual coding.</p>
<p>We have a team of five:</p>
<ul>
<li>Almer Kaasschieter, our graphical guru who will design the gui</p>
<li>Jasper van der Hulst, our productmanager, who will be coaching us, write docs and oversee the functionality
<li>Guido van Biemen, programmer
<li>Yury Golovnya, programmer
<li>me (Ivo Jansch), also as a programmer
</ul>
<p>We've decided to create a small application for the automotive industry (to keep track of car models etc.)</p>
<p>I'll try to post updates to our progress as comments to this blog entry.</p>
<p>I would like to thank Elizabeth, who did a great job organizing this, and Bill, who runs the SVN server and has been very helpful so far in getting us started with the repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2007/01/27/phpthrowdown-has-started/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ATK 5.6.0 released</title>
		<link>http://www.jansch.nl/2006/06/12/atk-560-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk-560-released</link>
		<comments>http://www.jansch.nl/2006/06/12/atk-560-released/#comments</comments>
		<pubDate>Mon, 12 Jun 2006 20:02:08 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=411</guid>
		<description><![CDATA[We've just released ATK 5.6.0, the next stable version of the Achievo ATK framework. The new release can be downloaded here. This release contains over 140 changes and improvements. Some highlights of the changes since ATK 5.5: 5 new attributes, from a simple attribute for manipulating URLS to a flexible calculator that can add columns [...]]]></description>
			<content:encoded><![CDATA[<p>We've just released ATK 5.6.0, the next stable version of the Achievo ATK framework. The new release can be <b><a href="http://www.achievo.org/atk/download/releasenotes/5_6_0">downloaded here</a></b>.</p>
<p>This release contains over 140 changes and improvements.</p>
<p>Some highlights of the changes since ATK 5.5:</p>
<ul>
<li>5 new attributes, from a simple attribute for manipulating URLS to a flexible calculator that can add columns containing arbitrary calculations of other attributes, and a generic attribute that can turn any other attribute into an internationalised data field.</p>
<li>A new 'shuttle' relation for easy selection of records in many-to-many relationships.
<li>2 new themes, 'macoslike' and 't3skin'. The latter creates a Typo3 4.0 look for ATK, useful for integrating ATK applications into a Typo3 environment.
<li>An AJAX based generic data structure search functionality.
<li>An atkMessageQueue for relaying messages to the user.
<li>Many API enhancements (new methods, new features and new flags)</ul>
<p>And many more fixes and improvements. The complete change log can be found on the <a href="http://www.achievo.org/atk/download/releasenotes/5_6_0">release notes page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/06/12/atk-560-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Achievo 1.2.1 release and ATK news</title>
		<link>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=achievo-121-release-and-atk-news</link>
		<comments>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/#comments</comments>
		<pubDate>Tue, 30 May 2006 19:12:36 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[achievo]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[epointment]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=391</guid>
		<description><![CDATA[My decision to hand over project maintenance of the Achievo project has turned out to be a good one. Since Sandy took over, we've had 3 new releases. A first release candidate for Achievo 1.2 was out when he was at the helm hardly one month, and yesterday, he released Achievo 1.2.1, which contains several [...]]]></description>
			<content:encoded><![CDATA[<p>My decision to hand over project maintenance of the <a href="http://www.achievo.org">Achievo</a> project has turned out to be a good one.</p>
<p>Since Sandy took over, we've had 3 new releases. A first release candidate for Achievo 1.2 was out when he was at the helm hardly one month, and yesterday, he released <a href="http://www.achievo.org/download/releasenotes/1_2_1">Achievo 1.2.1</a>, which contains several important bugfixes for the 1.2 branch.</p>
<p>I've had several remarks from users who were 'glad the project was apparently still alive after months without a release'. I think the project would've died prematurely if Sandy hadn't taken over.</p>
<p>As a result of the takeover, I was able to finally take the time to do some other things I've been planning to do for a while now. I've written a <a href="http://www.achievo.org/forum/viewtopic.php?t=1134">Typo3 ATK bridge</a> that makes it possible to develop Typo3 backend modules in ATK. This reduces Typo3 backend modules from hundreds of lines of code to the minimal amount of coding we're used to from using ATK. This extension is currently being tested internally and will be released with a howto soon.</p>
<p>Also, I'm finishing up ATK 5.6. It contains some interesting new features, among which is an atkCalculatorAttribute for arbitrary calculations on fields and an atkMlWrapper which can turn any attribute into an internationalised field (sponsored by our friends at <a href="http://www.zicht.nl">Zicht</a>). ATK 5.6 should be out within 2 weeks.</p>
<p>Finally I've been spending a lot of time on <a href="http://www.epointment.com">epointment.com</a>. We're finally getting somewhere with the features we need. I will be writing a 'syncing Achievo with epointment.com' howto soon. Although at its current state, we have a lot of competition from <a href="http://www.google.com/calendar">the big guys</a>, we're seeing quite an amount of interest from Dutch people (probably because Google Calendar only has an English interface at the moment), so we're coming along nicely. We're also talking to the guys from <a href="http://www.markthisdate.com">MarkThisDate</a> for cooperation (open standards rule!).</p>
<p>The largest benefit for ATK will be that we're pushing the development of the Ajax functionality in the framework. In ATK 5.7 (which might become ATK 6) you can expect a lot of (optional, ofcourse) Ajax powered functionality such as autocompletion and Partial Page Rendering.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/05/30/achievo-121-release-and-atk-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New ajax powered smart search functionality in ATK</title>
		<link>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=new-ajax-powered-smart-search-functionality-in-atk</link>
		<comments>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/#comments</comments>
		<pubDate>Sun, 16 Apr 2006 09:42:01 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[peter]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=361</guid>
		<description><![CDATA[Together with comunication firm Effectiv we developed a marketing tool for Cirque du Soleil in ATK. For this application, we needed a better way to search through the myriad of data in their database. Peter solved this by adding a new nifty Ajax powered search functionality to ATK, that can be used to traverse all [...]]]></description>
			<content:encoded><![CDATA[<p>Together with comunication firm <a href="http://www.effectiv.nl">Effectiv</a> we developed a marketing tool for <a href="http://www.cirquedusoleil.com">Cirque du Soleil</a> in ATK. For this application, we needed a better way to search through the myriad of data in their database. Peter solved this by adding a new nifty Ajax powered search functionality to ATK, that can be used to traverse all data, following relationships and exposing the entire database through a single interface.</p>
<p>An example of the type of searches that a user can do: 'show all employees that work in a department whose manager lives in a city that has at least 10.000 inhabitants'. </p>
<p>This functionality is available in the current <a href="http://www.achievo.org/files/nightly/atk-main-branch-latest.tar.gz">nightly build</a>. (This contains only the atk subdir, if you don't have an ATK app already, download the <a href="http://www.achievo.org/atk/download">sample application</a> first.)</p>
<p>Here is a screenshot:</p>
<p><img src="http://www.oeli.org/smartsearch.jpg" alt="screenshot"></p>
<p>In this screenshot, I am looking for all employees whose manager is 'ivo', and that work in a department which is currently hiring. (this is taken from lesson 3 of the demo application)</p>
<p>In ATK tradition, to enable the functionality you need only one line of code. Just add the following code to any node (constructor or action_admin override):</p>
<pre class="php"><span style="color: #0000ff;">$this</span>-&gt;<span style="color: #006600;">setExtendedSearchAction</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'smartsearch'</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>(Note1: if you do not have AF_SEARCHABLE attribs, make sure you set NF_EXTENDED_SEARCH to force display of the search bar. Note 2: in a future nightly this will be even easier through the use of a new NF_SMART_SEARCH flag)</p>
<p>Now, click the 'extended' link in your application's search bar to get the new search.</p>
<p>Another neat feature is the possibility to save and load sets of search criteria. To enable this, you need to have the atk_smartsearchcriteria table:</p>
<pre class="sql">&nbsp;
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> atk_smartsearchcriteria
<span style="color: #66cc66;">&#40;</span>
  nodetype VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  name VARCHAR<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  criteria TEXT <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,
  <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span>nodetype, name<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#41;</span>;
&nbsp;</pre>
<p>Peter did a great job with this feature. I think this opens the road for advanced reporting functionality in ATK.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/04/16/new-ajax-powered-smart-search-functionality-in-atk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ATK 5.5 released</title>
		<link>http://www.jansch.nl/2006/03/14/atk-55-released/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atk-55-released</link>
		<comments>http://www.jansch.nl/2006/03/14/atk-55-released/#comments</comments>
		<pubDate>Tue, 14 Mar 2006 22:07:04 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[atk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=331</guid>
		<description><![CDATA[We've just released ATK 5.5.0, the next stable version of the Achievo ATK framework. The new release can be downloaded here Some highlights of the changes since ATK 5.4: Several enhancements to the unit-test functionality Improved error handling Tab-based access control Many API enhancements (new methods and new flags) And many more fixes and improvements. [...]]]></description>
			<content:encoded><![CDATA[<p>We've just released ATK 5.5.0, the next stable version of the Achievo ATK framework. The new release can be <a href="http://www.achievo.org/atk/download/releasenotes/5_5_0"><b>downloaded here</b></a></p>
<p>Some highlights of the changes since ATK 5.4:</p>
<ul>
<li>Several enhancements to the unit-test functionality</p>
<li>Improved error handling
<li>Tab-based access control
<li>Many API enhancements (new methods and new flags)</ul>
<p>And many more fixes and improvements. The complete change log can be found on the <a href="http://www.achievo.org/atk/download/releasenotes/5_5_0">release notes page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/03/14/atk-55-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Zend Framework review</title>
		<link>http://www.jansch.nl/2006/03/05/quick-zend-framework-review/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-zend-framework-review</link>
		<comments>http://www.jansch.nl/2006/03/05/quick-zend-framework-review/#comments</comments>
		<pubDate>Sun, 05 Mar 2006 09:18:29 +0000</pubDate>
		<dc:creator>Ivo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.jansch.nl/?p=291</guid>
		<description><![CDATA[This weekend I've taken a look at the initial release of the Zend Framework. The first thing I've noticed is that authors of frameworks can sleep soundly again , as the zend framework is not yet a framework (in the wikipedia sense of the word). Currently, it's more a component library containing all kinds of [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I've taken a look at the <a href="http://framework.zend.com/">initial release of the Zend Framework</a>.</p>
<p>The first thing I've noticed is that authors of frameworks can sleep soundly again <img src='http://www.jansch.nl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , as the zend framework is not yet a framework (in the <a href="http://en.wikipedia.org/wiki/Web_application_framework">wikipedia sense of the word</a>). </p>
<p>Currently, it's more a component library containing all kinds of useful components. This does not have to be a disadvantage though, because this makes it very easy to integrate with other applications and existing frameworks. In fact, there are some components such as the pdf and mail classes that are very useful for certain types of web applications, and it is fairly easy to use them in an application that was built using an existing framework. </p>
<p>People expecting a kind of 'ruby on rails' for php have to wait a little longer though, as the Zend Framework is not there yet.</p>
<p>When diving into some of the classes, there are some decisions that I don't quite understand. For example, have a look at Zend's implementation of <a href="http://framework.zend.com/manual/zend.isreadable.html">isReadable</a>. It is a wrapper for PHP's <a href="http://www.php.net/is_readable">is_readable</a>, with the addition of also taking the include path into account. Since this is a very useful feature in many occasions, why not enhance PHP's is_readable function with this functionality? Especially since it's just a small enhancement, so in my opinion, it would be better to put this directly in PHP, instead of in wrappers. (the same goes for some of the other framework methods that are wrappers for some existing functionality.) Putting stuff in wrappers is, in my opinion, a bad way of enhancing functionality. Suppose wrapper 1 adds functionality A, and wrapper 2 adds functionality B. If I'm in a situation where I need both A and B, I have to take one of the wrappers and implement the other feature myself. So in the case of 'low level' methods such as this, I'd rather have the functionality in the base function instead of in a thin wrapper.</p>
<p>Another functionality I have some doubts about is the <a href="http://framework.zend.com/manual/zend.register.html">registry</a>. It is advertised as a method to handle singletons. In my opinion, the fact whether a class is a singleton should be handled by the class itself. The application author should normally not need to make the decision whether some class he is using should be a singleton or not. Also, the concept of a singleton's getInstance() method ('give me an instance or create one of there isn't an instance yet') seems to be lost in the zend framework registry, as there is no such method and the application author needs to define his own 'if it's not in the registry yet, add it' logic. </p>
<p>The RSS feed functionality is nice, and would be even nicer if it had methods for creating feeds instead of consuming them. This type of functionality however is typically something that would be useful to have available as a separately downloadable, dedicated library instead of as a standard part of the framework. </p>
<p>The other components all seem useful and nice too. There are definitely components that I'm going to use in applications I'm working on.</p>
<p>Overall, the Zend Framework looks promising. I think that at the current state, the zend framework falls in the category of libraries such as PEAR and ezComponents. All of them provide a wide choice of generic components. I think the stuff that would make it an actual framework are still missing, (but the model/view/controller classes are a step in that direction), but this has the major advantage that frameworks such as <a href="http://www.blueshoes.org/">Blueshoes</a> and <a href="http://www.achievo.org/atk">ATK</a> are not actually competition, but potential users of the zend components.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jansch.nl/2006/03/05/quick-zend-framework-review/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

