The move towards PHP 5.3 has opened a lot of opportunities for using features and libraries that were, so far, not an option. So, consequently, most of my time since the release has been spend on evaluating options.
Some of the results of that process can be found in the ScratchPad. Right now a lot revolves around integrating code via git submodules and trying to get rid of the current system of pre-packaged 3rd party libraries. As an alternative there is already new code that can wrap up lots and lots of code in PHP phar files. Similar to the current core.php stuff, this is a seamless process, so if the .phar files exist they will be used, otherwise the file system will be queries for missing classes.
The new class loader code is already working nicely and is so much simpler than the current one. However, there will be a migration period, so the current ZMLoader will not disappear in the short term.
Since the current overloading system via the ‘ZM’ prefix won’t be supported for all PHP5.3 code (read namespaces), there is need for a replacement to allow themes and plugins to customize core code. In order to do that in a more mainstream fashion I am currently working on integrating the symfony2 dependency injection code. Right now this is beta, but I would expect that in time for the next ZenMagick release things should be stable.
So, bottom line is that there is a new batch of low level tasks to prepare ZenMagick for PHP5.3 and also to use even more 3rd party code.
Finally, observant people might have noticed that there is now a second developer with full access to the github repository. Things will start slowly and I will talk a bit more about that in the next few weeks. Still, welcome aboard, Johnny – I am looking forward to some interesting times
Well, as is usually the case, once a release is done it is time to start looking what lies ahead. We’ve made good progress on getting new infrastructure set up to organize the future development of ZenMagick. That is good for several reasons:
- It brings new people on board
- It will hopefully streamline development, which, in turn, will result in getting more done in less time
- Gives us a lot better integration of the various systems than what we’ve had so far with sourceforge (which might not actually be their fault, but could also be sloppy use of what they offer).
The next big step that we’ve taken with ZenMagick 0.9.11 is moving on to PHP 5.3. This gives us a range of great new options and also a much better choice of 3rd party libraries (like doctrine) to use.
There are a lot things we can do now, for example using proper namespaces, replacing the current core.php system with a few pre-build phar files and a lot more.
The obvious advantage of using existing libraries is that there is less code that we have to write and maintain. Ideally this will happen all within the framework, so regular users that are just concerned with templates should not have to worry.
Getting finally to a point where it becomes clear how things are going to work in the long run also means it is now time to start with some proper documentation. So far documentation was hard to do as things changed just too fast. Reminds me: if there is a good technical writer out there willing to help write some good documentation, please let us know!
There has been a lot of spam in the last few days in the ZenMagick forum, so I’ve changed the forum registration policy. Now, when you register the account needs to be activated by a forum admin.
If you don’t hear back within a reasonable time frame feel free to drop me a reminder email…
ZenMagick 0.9.11 is released – finally!
It’s been a long release cycle with lots of interesting changes and I am very happy to finally have pushed this release into the wild. One thing I think I might have not mentioned before (it’s in the release notes, though) is that ZenMagick 0.9.11 (and all future releases) will require PHP5.3.
Of the changes the one I like most is definitely the integration of the zencart admin pages into the ZenMagick admin UI. it all started from a chat in the zenmagick chat room (xmpp) and some playing around with code. After that things were surprisingly easy and perhaps will be a good example of doing the same with storefront code (using ZM exclusively and loading zencart only where required).
Please be aware that there is a new bug tracker and more that we now use to coordinate development. There is, of course, also the forum for all questions that you may want to ask.
Right, it looks all the pieces are finally put together and it is time to ship a release.
The final task is to prepare the release notes and update instructions – as usual the most dreaded task of all!
If you have been following the activities on dev.zenmagick.org, you will know that there is heaps to do and some rather ambitious tasks ahead. Perhaps the biggest task right now is to evaluate and integrate doctrine to replace the current database layer. Since we will be using doctrine 2, ZenMagick will be requiring PHP5.3 once all that is in place.
Due to the fact that most SQL code is wrapped in service classes things will hopefully not change at all or only minimally for regular users.