gardiner

You are currently browsing the archive for the gardiner category.

The Gardiner users group is now in Launchpad and the mailing list is active. Any discussion related to the design, implementation and use of Gardiner should take place there.

Tags: ,

I just pushed Gardiner trunk to Launchpad, and I’m going to push an experimental branch as well as soon as I’ve written down in this blog a few ideas I want to try out.

Gardiner is far from being ready for public consumption, but it could use some scrutiny for interested eyes. If you want to have a look, you will need bazaar 1.6.1 or later to checkout the code, a recent PHP 5.3 snapshot to run the code, and PHPUnit 3.3.4 to run the tests.

Go grab the code with bzr branch lp:gardiner!

Tags: ,

I just registered the Gardiner Framework as a project in Launchpad and published a teaser page on the Gardiner Project website. This also involved some more non-code work, such as cooking a temporary logo for the project that will make do for the time being.

The code is also getting in shape for hackers to have a look at it (nothing that you can use right away, I’m sorry). I’m going to publish the trunk by November 15, and I might publish an experimental branch very soon. More details on this experimental branch, and the very first code samples, to follow soon.

Tags:

The hurdle of choosing a license for Gardiner is (almost) over. Gardiner will be released under the LGPLv3. What’s left to decide is whether to also allow for a second licensing option or not, but I expect that will be easier to sort out.

In the process of reviewing the various licenses, I discovered something that everybody already agrees on: there are way too many free/open source licenses around, and this creates complexities for everyone. My main guidance in the process was chapter 9 of Karl Fogel’s excellent book Producing Open Source Software. David Wheeler’s article Make Your Open Source Software GPL-Compatible. Or Else is also filled with interesting information and references.

At the end of the day, the tool that helped me turn whatever little knowledge I had absorbed into something actionable was John Cowan’s license selection wizard. If license options are giving you the headache, just use it!

Tags: , ,

Now that you know enough about Gardiner’s long term vision and goals, I need to come back to reality and post a brief status update and some plans for the next weeks.

What I’m up to these days is, basically, sorting out things and taking decisions. None of them is code related, but all of them are required to go public. The primary concern is of course which license to pick; the second, but only by a small mark, is deciding what documentation to write for the go live, the main contenders being embedded code documentation vs. a short overview document.

Other practical concerns, like most practical concerns, sorted themselves out on their own. So, if you’re interested, or even just curious, go download the latest bazaar or go get a Launchpad account! :-)

As soon as I settle for one license and I write some more documentation, I will publish a branch with some preliminary work, including the foundation of the metadata and domain layer, and a small bonus in the form of a template engine (something I started as a diversion from object/relational mapping design, and I’m now polishing as a diversion from the management issues related above — so, there must be a pattern here!). From there, we can build up to the first public release proper, with a focus on the metadata-based O/R mapper.

Talking feaures, what I want to be in 0.1 is support for Entity as well as Value objects (with Dependant Mapping for Values), with support for INSERT/UPDATE/DELETE and some basic SELECTs, possibly with support for relations between Entities. Likely with support for just one database engine, either MySQL or SQLite. The template engine will of course be in, although not feature complete.

The notable absent from release 0.1 will be anything else web-application oriented, including the basic View and Controller infrastructure. That will be the focus for our second iteration… Oops, this post’s about 0.1, so I shouldn’t be talking about that yet! :-)

Tags: , , ,

Long before getting a real name, Gardiner had a purpose. And because I believe the best way to get something started is by keeping an eye to your end, in the last days I spent less time hacking code and more time spelling out a mission statement for Gardiner. It’s far from perfect, that I know – but it does tell what we are aiming at:

« To build a web application framework that enables domain-driven design in PHP through rich in-code metadata, dependency injection and Repository-based persistence. »

I also took some time to list the major features that need to be completed before I can call a 1.0 release:

  • Domain-driven design support for Entity, Value and Service objects described by in-code metadata
  • Repository-style, metadata-based object/relational mapper
    • can persist inheritance hierarchies and object relations
    • persists Value objects through Dependent Mapping
    • supports MySQL, PostgreSQL and SQLite via PDO
  • Metadata-based dependency injection and management of Service objects
  • Lightweight template engine, with no PHP code in templates
    • supports layouts and overlays for page structure
    • extendable through custom tags
  • Clean, search-engine friendly URLs via custom routing rules

I know the details are going to change, but it’s good to have a goal and a direction. Later on I’ll report on the current status of things, or how far we are from that goal…

Tags: , , , , , ,

« Older entries