12:50 amClay Boot Selector
I plan to release the first Alpha version of Clay next month. I still have quite a bit of work to do to reach the milestone, but I hope to at least begin to get Clay noticed a little. Clay's Installer uses apps in the form of packages, which represent releasable products based on Clay. ClayCMS is an example of an Installer package. Packages can also be utilities to supplement tasks within the Installer. One supplemental package I've worked on a little is a boot selector, which enables you to run different web sites from a single web root, using as many different packages as you want. When Clay loads up it is given a site name, which then triggers the boot for a specific package. Currently, if someone wanted to run multiple sites, we'd have to either use different PHP files for the entry point or different web roots. The boot selector acts as a go-between, providing the ability to use the Installer to choose which site boots to which package, and then hands over the boot to the desired package. I've only been able to do minimal testing, as it has been locally and not using domains, but there doesn't seem to be any performance hit from using the selector. It does mean an additional class is loaded, but the class methods only determine which package is to be loaded and then the normal boot process begins. I'm hoping the boot selector will encourage developers to create new projects based on Clay and utilize the Clay Installer.
Apparently I forgot to push the upgrade to blogs that fixes the max title length. Guess I'll have to work that one in too!
10:04 pmClay Upgrade Between Stag
I am thinking about pushing a Clay upgrade before I move on to stage 2 of the service interfaces deployment. The upgrade would probably kill about a week of ClayCMS work, because of the amount of code changes required for the upgrade (not to mention testing). The upgrade is intended to fix a well-intentioned feature of Clay's application object, which has turned out to be kind of a pain. The intent was to provide a way to create application objects through a single function. Unfortunately I never finished implementing the full intent of the function and it just makes the code harder to read. When I made the function I wasn't using PHP 5.3 or namespaces. With namespaces there hasn't really been a need to use it, other than standardization. Anyway, using more application objects has made me want to drop it completely, but I didn't want to postpone stage 1 any further.
I'm mostly happy with the way the dashboard is coming along. It's been kind of difficult to keep it simple enough to mesh well with any site theme, but luckily that's what stylesheets and template overrides are good for. I have to say there is already a huge difference between trying to use this site and the one on my development machine. The dashboard makes working with the site a lot easier. I got a little carried away with some of my testing, so I'll have to go through and clean out some test code before uploading the changes. Maybe stage 1 will show up this week, if I have enough free time.
I'll be glad when stage 2 is live, so I can relax the filtering on these posts. Not to mention all of the other cool things it will bring with it. Stage 2 will allow services for applications such as hooks (plugins), filters, blocks, and events. The hooks allow things like comments on posts. The filters add security and allow applications to transform content. Blocks are mini applications such as menus and links. Events can do lots of things, such as hit counters, tracks users online, and site statistics. Stage 2 will allow lots of new features, unfortunately they will take some time to add all of them.
I've made some improvements to Clay overall, during my prep for deploying the services platform. Nothing major, but I've fixed a few bugs and worked in some general code base tidying. More than likely I'll shift my focus to the Clay Framework libraries soon, as I do have a deadline approaching for a Beta release. I haven't decided if ClayCMS will make it into the first release. That mostly depends on how much time I have for quality testing.
I've been experimenting with the first stage of the services platform for ClayCMS. One of the tests I hope to actually deploy is a Dashboard/Control Panel, which is generated dynamically depending on installed applications and a user's privileges. Once I have the Dashboard up, I'll probably begin allowing a few users to register and test it out.
I've decided to deploy the services features in a few different stages, in order to make sure they scale and I get the mash-up affect I'm looking for. The good news is that means some new apps will begin showing up sooner than they would have. It also means the development cycles will be stretched a little longer than I had wanted. After a lot of testing and scenarios, I think this will be the best approach for a solid base for development and maintenance.
I'll try again...
I obviously need to extend the session timeout to something a little longer. I typed a fairly lengthy post and ended up losing it because I waited to post it.