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
Since I started using git (and github), i’ve struggled with the fact there wasn’t a single client that could matchexisting svn or hg clients.
I tried TortoiseGit – hoping that it would be up to par with TortoiseSVN, but that was not the case (I thingk that would have been somewhere around version 1.2.??).
So, I ended up using mysysgit like most of the other windows users, looking at the number of posts about that particular topic.
Then, recently I thought it might be interesting to see how TortoiseGit has improved. And I was impressed. Pretty much everything (at least the stuff I use) seems to be working. However, there still was the issue with using ssh. I didn’t really have the patience to get to the bottom right away, so ended up using TortoiseGit locally and mysysgit (bash) to push and pull.
Today I did some more research and while there is lots of stuff about how to download putty et al, there isn’t really a lot about TortoiseGit. Then, there is also the issue that the default is plink instead of openssl, which means different keystore structure etc.
Eventually, I figured I should perhaps look at the help – and lo and behold – there it was. All I needed was:
- To use puttygen.exe (comes with TortoiseGit) to convert my openssl private key to a .ppk file
- Configure the remote with the newly created .ppk file
And now there isn’t a single reason to use anything else! After using TortoiseSVN for so long I feels instantly at home. Beside the push and pull I can use it pretty much the same like SVN. It’s perhaps not that simple, but it makes migrating from SVN to git a lot less painful.
Comments Off
Just a heads up that I finally moved the sources to github. That means sourceforge is only used for tracking things and downloads.
I guess in the long run we’ll have to find some other solution, but for now this will have to do.
The next step will be to split off all plugins as separate repositories, so it is easier to get other people involved in writing/committing code.
There are tons of articles about this topic, but as usual things are slightly different for for about just everyone writing about it.
The most helpful resource has been a post from Jeff Tchang about the very same thing. I’ve followed the instructions for Windows (XP) and with some small differences things do seem to work now – yay!
The differences were:
ssh github.com does not work as described but gives an error ‘Permission denied (publickey)‘
- The git clone URL that finally worked was using ssh.github.com, but without the leading ssh://, so for example: git clone git@ssh.github.com:443/DerManoMann/zc-base.git
I haven’t actually tried to push anything via that connection – so far pulling was all I needed.
Comments Off