<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.webappkit.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>webAppKit blog - news</title>
  <link>http://blog.webappkit.net/</link>
  <description>news about webAppKit, the generic PHP kernel for web apps</description>
  <language>en</language>
  <pubDate>Wed, 10 Sep 2008 12:39:03 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Zero Dot Nine</title>
    <link>http://blog.webappkit.net/post/2007/10/30/Zero-Dot-Nine</link>
    <guid isPermaLink="false">urn:md5:381eb3312b6b3af8fd3d93d62d96ab97</guid>
    <pubDate>Tue, 30 Oct 2007 14:10:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>roadmap</category>    
    <description>&lt;p&gt;If you take a look at the &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Roadmap&quot; hreflang=&quot;en&quot;&gt;roadmap&lt;/a&gt;,
you'll see some changes. A &lt;a href=&quot;http://webappkit.googlecode.com/svn/branches/0_9/&quot; hreflang=&quot;en&quot;&gt;development
branch&lt;/a&gt; has been started, numbered 0.9 (odd minor versions numbers will now
be for development versions - even for stable ones). The 0.8 still live in the
trunk for now. Milestones are set up to 0.14.&lt;/p&gt;    &lt;p&gt;So what's new ?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Services have disapperead and are replaced by &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Tools&quot; hreflang=&quot;en&quot;&gt;Tools&lt;/a&gt;, which
are accessed as Kits members.&lt;/li&gt;
&lt;li&gt;Storages are now Tools themselves, provided by webappkit/storages.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/webappkit/wiki/Kits&quot; hreflang=&quot;en&quot;&gt;Kits&lt;/a&gt; API have changed a bit. Most methods are static ones. Kits
metadata and libraries are now loaded before Kit instance building, to allow
some kits to override the generic webappkit class.&lt;/li&gt;
&lt;li&gt;PHP version range compatibility can be defined in Kits metadata.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The help file in the repository have been updated with new tutorials. I hope
to release 0.10 rather quickly, has goals previously set for 0.9 have been
sparsed over three milestones.&lt;/p&gt;
&lt;p&gt;Here is the content of the updated help file :&lt;/p&gt;
&lt;h2 id=&quot;using-a-kit&quot;&gt;Using a Kit&lt;/h2&gt;
&lt;p&gt;Unzip webappkit at the root of your web application. It's probably done as
the file you're reading is part of it. It creates a webappkit/ folder. Before
retrieving any Kit, put this line into your code :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* getting webappkit core (only once call is necessary)
*/
include('webappkit/include-me.php');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;When you need a Kit's resources, let's say &lt;em&gt;ooxmlrpc&lt;/em&gt;, &lt;strong&gt;load
it&lt;/strong&gt; with :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* loads a kit resources
*/
webappkit::getKit('ooxmlrpc');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;If you need only a subkit, let's say &lt;em&gt;http&lt;/em&gt; within
&lt;em&gt;databeans&lt;/em&gt;, get it with :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
* loads a subkit's resources
*/
webappkit::getKit('databeans/http');&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;In this exemple, &lt;em&gt;databeans/http&lt;/em&gt; requires
&lt;em&gt;databeans/databean&lt;/em&gt;, but you don't have to take care about that.&lt;/p&gt;
&lt;p&gt;webappkit::getkit($id) returns the kit instance. Always use this method to
retrieve a kit, as Kits should be singletons.&lt;/p&gt;
&lt;h2 id=&quot;tools&quot;&gt;Tools&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Tools&lt;/em&gt; are named object instances taking their configuration data
from the kit they belong to.&lt;/p&gt;
&lt;p&gt;They are retrieved as kit members like this :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * retrieving the kit instance.
 */
$kit=&amp;amp;webappkit::getKit('helloworld');
/**
 * calling the method &amp;quot;bar&amp;quot; of the kit's tool named &amp;quot;foo&amp;quot;
 */
$kit-&amp;gt;foo-&amp;gt;bar();&lt;/code&gt;
&lt;/pre&gt;
&lt;h2 id=&quot;storages&quot;&gt;Storages&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Storages&lt;/em&gt; are specific Tools. They build and retrieve object
instances stored within kits files.&lt;/p&gt;
&lt;p&gt;You use them just as any other Tool, as a kit's member. For example, let's
get a template from our sample kit :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * retrieving the kit instance.
 */
$kit=&amp;amp;webappkit::getKit('helloworld');
/**
 * getting the template from the storage, which is named &amp;quot;templates&amp;quot;
 */
$tpl=$kit-&amp;gt;templates-&amp;gt;getItem('help');
/**
* using the 
*/
echo $tpl-&amp;gt;render();&lt;/code&gt;
&lt;/pre&gt;

&lt;h2 id=&quot;building-a-kit&quot;&gt;Building a Kit&lt;/h2&gt;
&lt;p&gt;Let's build a Kit named &lt;em&gt;mykit&lt;/em&gt;, which will contain a couple of class
definition files.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a folder named &lt;strong&gt;mykit.wak&lt;/strong&gt; within your
&lt;em&gt;webappkit/&lt;/em&gt; folder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put your code files inside, let's say &lt;strong&gt;myclass.class.php&lt;/strong&gt; and
&lt;strong&gt;mychildclass.class.php&lt;/strong&gt; which is extending it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create an INI file at its root named &lt;strong&gt;wak.ini&lt;/strong&gt; and edit it
:&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[kit]
; kit-wide meta informations
version = &amp;quot;0.1&amp;quot;
; kit version. Will be used later.
desc = &amp;quot;This is my first kit. It will rocks !&amp;quot;
; a short description. Single line to be INI compliant !
phpversion = &amp;quot;4.3-5.*&amp;quot;
; define which PHP versions range compatibility (optional)
; you can use a single version string with jokers, as 4.*

[load_kits]
; kits to load before self resources, order will be preserved.
; n = &amp;quot;absolute kit id&amp;quot;
0 = &amp;quot;datapath&amp;quot;

[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;myclass.class.php&amp;quot;
1 = &amp;quot;mychildclass.class.php&amp;quot;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;This file describe Kit's resources and dependancies. Kits and files will be
loaded in the order you defined.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here we're done with the main kit.&lt;/p&gt;
&lt;p&gt;Please note that Kits are singletons and won't be instanciated twice.
Hopefully.&lt;/p&gt;
&lt;h3&gt;PHP version auto-switch&lt;/h3&gt;
&lt;p&gt;You can have a library file for each PHP versions, and tell the kit to load
the appropriate one upon the current PHP version running.&lt;/p&gt;
&lt;p&gt;To do this, we will name our files with the specific extensions : .php4 and
.php5 , and then edit the kit's INI as this :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;myclass.class.php*&amp;quot;
1 = &amp;quot;mychildclass.class.php*&amp;quot;
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Using * at the end of the file name will trigger the load of .php4 or .php5,
upon the current running PHP version.&lt;/p&gt;
&lt;h2 id=&quot;building-a-subkit&quot;&gt;Building a subkit&lt;/h2&gt;
&lt;p&gt;Kits can contain subkits, which can be either optional or loaded by their
parent kit.&lt;/p&gt;
&lt;p&gt;It will also require another kit, &lt;em&gt;webappkit/datapath&lt;/em&gt;, and provide
an extension as an optional subkit named &lt;em&gt;mysubkit&lt;/em&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Into &lt;em&gt;mykit.wak/&lt;/em&gt;, create a folder named
&lt;strong&gt;mysubkit.wak&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Put its own code files into it, for example
&lt;strong&gt;anotherclass.php4&lt;/strong&gt; and &lt;strong&gt;anotherclass.php5&lt;/strong&gt;,
which are PHP4 and PHP5 versions of the same class as seen before.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create its &lt;strong&gt;wak.ini&lt;/strong&gt; file at its root :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_kits]
; kits to load before self resources, order will be preserved.
; n = &amp;quot;absolute kit id&amp;quot;
0 = &amp;quot;mykit&amp;quot;
1 = &amp;quot;pathnodes&amp;quot;

[load_files]
; self resources to load, order will be preserved.
; n = &amp;quot;relative/path/to/file&amp;quot;
0 = &amp;quot;anotherclass.php*&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;As you see, this subkit requires its parent kit and another kit,
&lt;em&gt;pathnodes&lt;/em&gt;. It also requires &lt;em&gt;datapath&lt;/em&gt;, but this dependancy is
already defined by parent kit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A subkit may contain itself a subkit and so on.&lt;/p&gt;
&lt;h3&gt;Subkits auto-loading&lt;/h3&gt;
&lt;p&gt;If we want the parent kit &lt;em&gt;mykit&lt;/em&gt; to load its subkit when loaded
itself, we can add this into &lt;em&gt;mykit&lt;/em&gt;'s wak.ini file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_subkits]
; subkits to load after self resources, order will be preserved
; n = &amp;quot;relative subkit id&amp;quot;
0 = &amp;quot;mysubkit&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;The subkit will be loaded &lt;strong&gt;after&lt;/strong&gt; paren'ts kit dependancies
and own files.&lt;/p&gt;
&lt;h2 id=&quot;adding-tools&quot;&gt;Adding Tools&lt;/h2&gt;
&lt;p&gt;Tools have to be declared within kit's &lt;em&gt;wak.ini&lt;/em&gt; file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_files]
0 = &amp;quot;worker.class.php&amp;quot;

[tools]
; name = &amp;quot;class&amp;quot;
bob = &amp;quot;worker&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Here we have declared a tool wich will be named &lt;em&gt;bob&lt;/em&gt; within the kit
and will be an instance of the class &lt;em&gt;worker&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Tools classes have to extends &lt;em&gt;wakTool&lt;/em&gt; class. Their definition file
can be included within the providing kit or one of its dependencies. Here it's
an included one. Let's look at its class definition :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;class worker extends wakTool {
        /**
        * a Factory function : every Tool has to declare it
        * @static
        * @param string $kit kit's id
        * @param string $name tool's name within kit
        * @return object worker's instance
        */
        function &amp;amp; factory($kit,$name) {
                return new worker($kit,$name);
        }
        
        /**
        * here is an useful function
        * @return string hairs color
        */
        function getHairs() {
                return $this-&amp;gt;cfg['hairs'];
        }
        
        /**
        * @var array the default configuration values
        */
        var $cfg=array('hairs'=&amp;gt;'red');
}&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Now, we can get tool &lt;em&gt;bob&lt;/em&gt; from our kit and it will have its default
config :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$kit=&amp;amp;webappkit::getkit('mykit');
/**
* this will print 'red'
*/
echo $kit-&amp;gt;bob-&amp;gt;getHairs();&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;Borrowing tools&lt;/h3&gt;
&lt;p&gt;But our &lt;em&gt;worker&lt;/em&gt; class can now be used in another kit, by declaring
it in the kit's &lt;em&gt;wak.ini&lt;/em&gt; file :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[kit]
desc = &amp;quot;this is another kit, providing a worker tool borrowed from mykit&amp;quot;

[load_kits]
0 = &amp;quot;mykit&amp;quot;
; we need its &amp;quot;worker&amp;quot; class for alice service

[tools]
alice = &amp;quot;worker&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And let's override its config. Create a file named
&lt;strong&gt;alice.tool.ini&lt;/strong&gt; at the &lt;em&gt;anotherkit&lt;/em&gt;'s root :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;; this is the alice tool config file for anotherkit
hairs = &amp;quot;blue&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Let's look at our second tool instance :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;$kit2=webappkit::getkit('anotherkit');
/**
 * this will print &amp;quot;blue&amp;quot;
 */
echo $kit2-&amp;gt;alice-&amp;gt;getHairs();&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And you can also have several instances of the same tool within the same
kit, each with its own config.&lt;/p&gt;
&lt;h2 id=&quot;adding-storages&quot;&gt;Adding storages&lt;/h2&gt;
&lt;p&gt;Storages are just specific tools. Just like them, their definition file can
be included within their providing kit, or they can just provide a config file
for a tool class taken from an external kit dependancy.&lt;/p&gt;
&lt;p&gt;They have to extend &lt;strong&gt;wakStorage&lt;/strong&gt; class, which is provided by
&lt;strong&gt;webappkit/storages&lt;/strong&gt; kit.&lt;/p&gt;
&lt;p&gt;Their function is to retrieve object instances stored in files within the
kit.&lt;/p&gt;
&lt;p&gt;Here we will get templates from our kit, using a storage class provided by
&lt;em&gt;djtpl&lt;/em&gt; template engine kit.&lt;/p&gt;
&lt;p&gt;Here's our kit's &lt;em&gt;wak.ini&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;[load_kits]
; getting dependancies, including the storage class
0 = &amp;quot;djtpl&amp;quot;
; please note that djtpl kit itself require webappkit/storages

[tools]
; declaring storage, name = &amp;quot;class&amp;quot;
templates = &amp;quot;djtplstorage&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;And now we override some storage config in &lt;em&gt;templates.tool.ini&lt;/em&gt; :&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;; this is the templates storage config
search = &amp;quot;views/{{lang}}/{{id}}.{{type}}&amp;quot;
; here is the filename template for files search
[critera]
; the defaults values for search criteria
lang = &amp;quot;en&amp;quot;
type = &amp;quot;html&amp;quot;&lt;/code&gt;
&lt;/pre&gt;
This settings indicate that template files will be stored within a
&lt;em&gt;views/&lt;/em&gt; folder within our kit, having languages subfolders, and that
files are named by id.type. The default language is set to &lt;em&gt;en&lt;/em&gt;, and
default type to &lt;em&gt;html&lt;/em&gt;.
&lt;p&gt;Now, let's get a template from our kit. First, we will change the language
default value to &lt;em&gt;fr&lt;/em&gt;. Then, we want the template having the
&lt;em&gt;home&lt;/em&gt; id.&lt;/p&gt;
&lt;pre&gt;
&lt;code&gt;/**
 * changing a criteria's default value
 */
$kit-&amp;gt;templates-&amp;gt;setCriteria('lang','fr');
/**
 * getting a template
 * string criteria will be taken as 'id'
 * or you can provide an associative array for more criteria
 * missing criteria will be taken from current defaults
 * this will build a template instance from views/fr/home.html
 */
$tpl=$kit-&amp;gt;templates-&amp;gt;getItem('home');
/**
* rendering the template
*/
echo $tpl-&amp;gt;render();&lt;/code&gt;
&lt;/pre&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>doc updated, 0.8.1 onwork</title>
    <link>http://blog.webappkit.net/post/2007/05/29/doc-updated-081-onwork</link>
    <guid isPermaLink="false">urn:md5:3e806a1b2d488eb3c55b10a2bbe796ac</guid>
    <pubDate>Tue, 29 May 2007 19:10:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category><category>doc</category>    
    <description>    &lt;p&gt;Almost everything is in the title.&lt;/p&gt;
&lt;p&gt;Code documentation has been updated and is still available at &lt;a href=&quot;http://code.webappkit.net&quot;&gt;code.webappkit.net&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Version 0.8.1 is onwork. Here's the news :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kits resources loading is now separated from kit instance retrieval.
Methods $webappkit-&amp;gt;load() and webappkit::loadkit($id) have been added,
which are &lt;strong&gt;not&lt;/strong&gt; called by webappkit constructor.&lt;/li&gt;
&lt;li&gt;webappkit::timecounter() and $webappkit-&amp;gt;loadedWeight() have been added
to help optimization.&lt;/li&gt;
&lt;li&gt;Admin index (when calling url /webappkit from your app root) is not static
anymore. It still includes micro tutorials, but provided kits list is now
dynamically built from actual kits.&lt;/li&gt;
&lt;li&gt;A new pathnodes subpackage is being worked on : webappkit/pathnodes/od
which stands for Open Document.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Code documentation - alpha coming</title>
    <link>http://blog.webappkit.net/post/2007/05/15/Code-documentation-alpha-coming</link>
    <guid isPermaLink="false">urn:md5:dd91991728e03453a801a1e302657ac2</guid>
    <pubDate>Tue, 15 May 2007 18:39:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>doc</category>    
    <description>    &lt;p&gt;Some code documentation has been generated and is online at &lt;a href=&quot;http://code.webappkit.net&quot;&gt;code.webappkit.net&lt;/a&gt;. It covers the core kit and
subkits code. It may be useful to people using provided generic libraries, such
as databeans (data structures), pathnodes (filesystem) and Django templating
engine php implementation.&lt;/p&gt;
&lt;p&gt;I plan to release 0.8.0 as an alpha version sometime soon. The foundation is
there, and work have been started on appEngine, the basic framework to be used
by the web admin.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;Release soon, release often&lt;/cite&gt;. Any help is welcomed.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>more big changes</title>
    <link>http://blog.webappkit.net/post/2007/04/13/more-big-changes</link>
    <guid isPermaLink="false">urn:md5:db7e970b6fd5e53ec4a096907ba7f52d</guid>
    <pubDate>Fri, 13 Apr 2007 23:09:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category>    
    <description>    &lt;p&gt;(i'm evil)&lt;/p&gt;
&lt;p&gt;As i was not happy with previous packages/resources system, i've trashed and
recoded it - again. It was starting to be bloated and complex, and not that
agile. So, to summary :&lt;/p&gt;
&lt;p&gt;Packages are renamed to &lt;q&gt;kits&lt;/q&gt;. A single class,
&lt;strong&gt;webappkit&lt;/strong&gt;, is used both as kit instances and global API
(through its static methods). Kits can contain kits themselves, and kit names
are made upon the physical tree (&lt;q&gt;databeans/datetime&lt;/q&gt; for example).&lt;/p&gt;
&lt;p&gt;A INI metadatafile, named wak.ini is required at the root of the kit. With
this we take care of dependancies, both internal and external. For more
flexibility, a wak.init.php may be included, if present, when the kit instance
is built. A wak.run.php may also be present, and will be executed upon call of
its run() method.&lt;/p&gt;
&lt;p&gt;Services and non-code objects storage have to be implemented at this point.
But various library packages have been converted to the new standard :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;databeans&lt;/li&gt;
&lt;li&gt;pathnodes&lt;/li&gt;
&lt;li&gt;djangotpl&lt;/li&gt;
&lt;li&gt;Spyc&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Generic resources</title>
    <link>http://blog.webappkit.net/post/2007/04/11/Generic-resources</link>
    <guid isPermaLink="false">urn:md5:2f28353c87d83178a2b5373a0658683e</guid>
    <pubDate>Wed, 11 Apr 2007 20:38:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category>    
    <description>    &lt;p&gt;The &lt;a href=&quot;http://blog.webappkit.net/post/2007/03/28/0701-released&quot; hreflang=&quot;en&quot;&gt;previously
announced&lt;/a&gt; move has been started. Packages resources will be made generic,
so their access and management will not be devoted to packages directly but to
type-specific implementations of a generic resource class. Here's a changelist
:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A new interface : &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/WakresourceClass&quot; hreflang=&quot;en&quot;&gt;wakResource&lt;/a&gt;, and a first, incomplete, implementation : &lt;a href=&quot;http://code.google.com/p/webappkit/w/edit/Wakresource_classClass&quot; hreflang=&quot;en&quot;&gt;wakResource_class&lt;/a&gt;. wakResource_service, wakResource_template to
follow.&lt;/li&gt;
&lt;li&gt;Changes have been made to &lt;a href=&quot;http://code.google.com/p/webappkit/wiki/WakpkgClass&quot; hreflang=&quot;en&quot;&gt;wakPkg&lt;/a&gt;
methods&lt;/li&gt;
&lt;li&gt;The package metadata file format has also changed.&lt;/li&gt;
&lt;li&gt;As a side note, the trunk compability will now include both PHP4 and PHP5,
with an automatic switch between resource instances. Current move has still to
be ported to php5, though.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Discussion group created</title>
    <link>http://blog.webappkit.net/post/2007/01/11/Discussion-group-created</link>
    <guid isPermaLink="false">urn:md5:e098eb963571fc7af2354c007ac561f1</guid>
    <pubDate>Thu, 11 Jan 2007 20:22:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>discussion</category>    
    <description>    &lt;p&gt;A google group has been created to discuss webappkit. You'll found it at
&lt;a href=&quot;http://groups.google.com/group/webappkit&quot; hreflang=&quot;en&quot;&gt;groups.google.com/group/webappkit&lt;/a&gt;. Feel free to discuss the project,
which is eagerly awaiting for contributors ! ;)&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Some activity</title>
    <link>http://blog.webappkit.net/post/2007/01/11/Some-activity</link>
    <guid isPermaLink="false">urn:md5:b9d8b768f6b4aac60f126441ee08bf3e</guid>
    <pubDate>Thu, 11 Jan 2007 13:19:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category><category>website</category>    
    <description>    &lt;p&gt;In no particular order :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://webappkit.net&quot;&gt;Home page&lt;/a&gt; has been updated, with links
to googlecode pages.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://webappkit.googlecode.com/svn/branches/0_5_php4/&quot;&gt;Branch
0.5&lt;/a&gt; has been added to subversion, for history purposes, and because some
web apps are still using it.&lt;/li&gt;
&lt;li&gt;Some minor work has been done to the source and wiki documentation.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>svn moving to googlecode</title>
    <link>http://blog.webappkit.net/post/2006/12/21/svn-moving-to-googlecode</link>
    <guid isPermaLink="false">urn:md5:c2c5460c5034ed0d20694a4aa61e70a4</guid>
    <pubDate>Thu, 21 Dec 2006 14:31:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category><category>wiki</category>    
    <description>&lt;p&gt;As a good google slave, i've decided to move webappkit from sourceforge to
googlecode, which has been recently improved. =&amp;gt; &lt;a href=&quot;http://code.google.com/p/webappkit/&quot; hreflang=&quot;en&quot;&gt;webappkit on
googlecode&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;Google added a wiki and downloads to their open-source projects hosting
offer. Coupled with their faster subversion server, issue tracking and neat web
interface, it's now a good choice for project hosting.&lt;/p&gt;
&lt;p&gt;I took the chance to change folders struture a bit. Legacy branches are now
under branches/ as 0_7_php4 (the old php4, microkernel architecture) and
0_8_php4/ (the new packages architecture, but php4 version). Under trunk/ is
the onwork php5, packages architecture, which may be released as 0.8 later.&lt;/p&gt;
&lt;p&gt;Additionaly, some pages are available on the google-hosted webappkit wiki.
The old, self-hosted one will be trashed soon.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>first rebuilt version available</title>
    <link>http://blog.webappkit.net/post/2006/12/14/first-rebuilt-version-available</link>
    <guid isPermaLink="false">urn:md5:75821a95a465f1b0b6ca2ae62b7fedc3</guid>
    <pubDate>Thu, 14 Dec 2006 20:28:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category>    
    <description>&lt;p&gt;I've just added php5 to repository (revision 150). As announced, there are
some huge changes in process. Basically, WAK is moving from a generic
micro-kernel for web apps, to a packages architecture for web apps.&lt;/p&gt;    &lt;p&gt;Packages are the new central interface. A package is a folder containing an
index/metadata file (wakpkg.yml) describing provided resources. Thoses
resources will be accessed through a wakpkg instance. Resources can be :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;class definition files&lt;/li&gt;
&lt;li&gt;services (named singleton within the package namespace, extending from
wakservice class)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Class dependancies will be handled provided they are described within the
metadata file.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Massive refactoring</title>
    <link>http://blog.webappkit.net/post/2006/12/06/Massive-refactoring</link>
    <guid isPermaLink="false">urn:md5:31a4cc650f4b1002af732976fdb8d7bc</guid>
    <pubDate>Wed, 06 Dec 2006 11:41:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>code</category><category>roadmap</category>    
    <description>&lt;p&gt;After some doubts on project future, i have decided to keep on working on
webappkit rather than dropping it for some existing frameworks. I've been
looking at &lt;a href=&quot;http://www.djangoproject.com/&quot; hreflang=&quot;en&quot;&gt;Django&lt;/a&gt;,
&lt;a href=&quot;http://www.symfony-project.com/&quot; hreflang=&quot;en&quot;&gt;Symfony&lt;/a&gt; and
&lt;a href=&quot;http://www.cakephp.org/&quot; hreflang=&quot;en&quot;&gt;CakePHP&lt;/a&gt;. Django is by far
my favorite, and i use it to practice my python. However PHP is still the most
used language, and i think that webappkit approach still makes sense.&lt;/p&gt;    &lt;p&gt;But i'm going to rewrite big parts of the project, focusing on packages
since the beginning rather than a virtual layer on the top of the internal
structure. Packages will have a physical representation as directories, and may
provide their own libraries, services etc. They may have their own request
handler.&lt;/p&gt;
&lt;p&gt;The core components will theirselves be shipped as a package. It will
provide a small api giving access to packages, services and libraries. Some
basic requests handling libraries and services will be provided, but this task
may be forwarded to one or more package(s). Think to webappkit as a
meta-framework.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Welcome...</title>
    <link>http://blog.webappkit.net/post/2006/06/23/Welcome</link>
    <guid isPermaLink="false">urn:md5:546a3128ecadc6d217ece20dd8b7a9bb</guid>
    <pubDate>Fri, 23 Jun 2006 15:57:00 +0200</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>news</category>
        <category>blog</category>    
    <description>    &lt;p&gt;...on webappkit blog. Here you will read news about webappkit, a generic
kernel for building web-applications with PHP. Not much to say for now,
webAppKit is still in alpha stage and won't be released, even beta, anytime
soon. But stay tuned !&lt;/p&gt;
&lt;p&gt;By the way, we're searching for PHP, object-oriented developpers. You will
find some information and documentation &lt;a href=&quot;http://wiki.webappkit.net&quot; hreflang=&quot;en&quot;&gt;on the wiki&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
      </item>
    
</channel>
</rss>