DBDO continues to grow, and fortunatly I'm slowly shrinking the number of memory leaks. (As I get a better understanding of all the libraries involved.)
Most core functionality is working, query/insert/update/delete. I'm slowly fixing some of the design mistakes that I made with DB_DataObject (like being able to create update/delete statements that wiped out data. - This is fixed in DBDO, by forcing you to use the DBDO::BUILD argument if you dont want to delete anything more than the current row.)
I also decided to utilize php_error(E_WARNING......) for the debuging code. DBDO::debugLevel(1) issues all the built SQL statements as warnings. (I think this is quite a nice lightweight solution) - that also gives the line/file etc. and can give you backtraces in xdebug.
My other little toy flexyparser has had most of the parsing syntax for the flexy engine added. (I've still got to fix the style parsing stuff.). This little back burner project is still pondering if it should do the template building etc. in C or just be used as a parsing library.... or it could be really clever and build zend opcodes :)
But what caught my eye this week was
Harry's post about IDE's, Having written one myself, mainly due to fustration with the existing alternatives on Linux. I agreed alot of the points he made, and some of the commenters added.
If the ability to program in a language depends on the developement tool. (C# and Java come to mind) Then reading code without the editor becomes horiffic.... I wonder if I'm in the group that regard source code as an expression of intent, and if it cant be read, it's very difficult to read intent.
Anyway, I noticed a couple of weeks the sysadmin at one of my clients using gphpedit, I was initially pretty impressed. (I guess like most people are with Zend Dev Studio, until they try it on a slower machine..).
gphpedit has a very nice features set, basically it's very similar to phpmole, but in C with alot of gnome libraries. It had a very nice class browser and syntax highlighting etc. using the scintilla widget, very much like phpmole. It was only until I had a browse round the soucecode in CVS, that I started pondering some of the mistakes.
- PHP parsing for classes was done by a hand coded lexer, which looks for class/function etc. This is what I originally did with phpmole (it was a mistake then, and given the fact that gphpedit is in C) it is just as bad now. (I ponder if using the lex/bison code from Zend/* would not be more efficent, either that or using phpembed, to actually use the library might be better..
- Project (bookmark) based browsing was missing, I found this to be invaluable when I designed it into phpmole. Although the interface could probably do with changing. The principle of navigating fromĀ root directly to all the projects you working on works really well. (actually on unix I should really have used softlinks - but I didnt have vfs then...)
- Class method hinting. This is something that is near impossible in php (but would be quite usefull) - yes Zend Dev Studio does it, but in reality alot of time it's guesswork. (although it gets alot easier with PHP5 argument hints.). it also tends to slow down the application alot (especially on my pathetic P3/1000), making the program pause just when you really in the flow of things.
One thing gedit did make me consider though, was the idea of building a php editor as a php extension...... php -d extension=editor.so :)