Time is flying when you are having fun, so in that respect is has been a very short week.
We’ve made lots of progress, so here’s a quick summary:
Infrastructure
- doctrine
Lots of work here – looks like it is almost ready to move into HEAD, at least to provide basic functionality.
- Settings
We do have a new Settings class that improves and extends the current ZMSettings code. It also now supports imports: – something also found in symfony config files.
Also, the reorganized setting of config files/locations now also supports environments. The environment can be controlled by:
- .htaccess
SetEnv ZM_ENVIRONMENT production
- front controller
index_devel.php?rid=… or index_test.php?rid=…
- define
define('ZM_ENVIRONMENT, 'test');
- Events
The event system has been upgraded too, building on and extending the symfony2 EventDispatcher.
- Bootstrap
The bootstrap code (bootstrap.php) has been slimmed down quite a bit and a few things have changed order to make more sense.
- ClassLoading
The currents system of auto loading static PHP code (per convention all .php files in the class path with a filename starting with a lower case letter) has been deprecated and removed from the bootstrap sequence and all other places (plugins/themes).
There are a few outstanding items that still need to be tackled for the next release, most importantly Dependency Injection. With the current core.php system already removed from the code base there is definite need to allow plugins and themes to customize core classes.
With the improved bootstrap and settings code the location of config files (and support of local.php, etc) have changed. This will require a little bit of work for theme and plugin authors. For the next release documentation should be ready to guide upgrades and changes.
Bugs
There are a number of bugs that have been fixed, most notably a bug in the zen-cart admin integration, removal of debug code and a couple of edge cases in the WordPress plugin.
Finally the demo store is back up. All seems to be good – except for some issues with the admin demo user permissions. All that you are allowed to see is the dashboard; but then, that is quite nice too:)
There is also a new theme, so check it out.
Just a quick heads up that there has been a tremendous amount of work spend in the last week moving the project forwards. In particular there are about three major goals right now:
- Replace existing code with proven 3rd party libraries.
I am not saying to do things really that much different, however cleaning up the code-base and using tested code does help stability and perhaps even performance.
- Get the bootstrap code in shape so things are done in a sane, documented way people can rely upon.
This is a major task, as it requires a few basic components to be in place before this can be implemented properly. In particular the current ZMLoader code does prove to not play nicely in some edge cases.
- Get to a point where it makes sense to have a separate installer.
Apart from the above, there are quite a few more things that need to be done to glue things together. For example, there is already code to wrap new libraries and base code in phar files. However, there isn’t code yet to integrate that into the build process. So, right now a snapshot would be about 65MB due to the amount of code in submodules that is not required to run the application.
For people that want to stay up-to-date with what is happening, subscribing to the RSS feeds on dev.zenmagick.org is a good idea, and perhaps also watching the git repo.
Comments Off
Things are progressing nicely and the new base classes will be a lot cleaner that what there is right now. So far there is:
- class loading
- logging
- events
- some custom database related classes for doctrine
- a first draft of a new plugin service (very similar to the current, just with a bit streamlined and with support for the new class loading)
There is some initial documentation in the new wiki and also some design/RFC documents. Feedback would be very welcome. With more people looking at the code there are also more bugs found and inconsistencies fixed, so that is really starting to look good.
There has also been some good work on the admin UI design. rubikintegration.com have posted some very nice mockups…
Comments Off