June 2007

As it was mentionned here before, I took on the task of writing a class that imports MDB2_Schema style XML schemas in Doctrine. Now that this is accomplished, the next step is to implement the feature in Jaws. If you want more details, I explain everything in devdoc/SCHEMAS [1] !

It's pretty darn hot where I am right now and I can't get my ideas straight so I'll leave it to you to review my work [2] !

Thank you for all the support,

Nicolas Bérard-Nault.

[1] http://dev.jaws-project.com/cgi-bin/trac.cgi/.../SCHEMAS

[2] http://dev.jaws-project.com/cgi-bin/trac.cgi/.../Schema.php

nicobn | General | 27 June, 6:50pm | 1 comments

I recently received karma to work on the PHP documentation and thought I would give it a try and commit my first changeset. I decided to go ahead and document socket_recvfrom() [1]. Thanks for the many comments I received ! I think I'm now ready to attempt documenting i18n functions.

I also implemented the import method in Doctrine [2]. Kudos to zYne- for his patience on teaching me proper Doctrine coding standards ;-).

All this kept me away from Jaws a little bit but I'm pluging right back in as we are speaking. More on that soon.

Cheers !

[1] http://www.php.net/manual/en/function.socket-recvfrom.php

[2] http://doctrine.pengus.net/trac/browser/trunk/lib/Doctrine/Import/Xml.php

nicobn | General | 25 June, 8:01pm | Comment on this

After discussing with Konsta Vesterinen from the Doctrine project, we agreed that we will be implementing new features to comply with the MDB2_Schema XML Standards. This means that we will be creating new methods that will give you the ability to install databases using the same XML Definition files than MDB2_Schema, ensuring that anyone using MDB2_Schema will be able to use the same XML Files within Doctrine.

 

By doing this, we will not have to depend on MDB2_Schema & MDB2 in Jaws and will be able to move on towards a DBAL & ORM application but moreover, we will be able to use the same files we used before, and that other people using MDB2_Schema use already.

 

This will be implemented within the Doctrine_Export and Doctrine_Import classes. Doctrine_Import has methods such as listViews, listTableColumns and a few others and by adding our new methods, we will ensure to build a portable schema definition of the actual databases and Doctrine_Export will be used to build the new Schemas from the actual database definitions.

 

Thanks to pookey for his fast answers on creating our two accounts (nicobn & davidc) for trac and svn commit access.

 

David.

davidc | General | 17 June, 10:25pm | Comment on this

Today, when speaking to Helgi Þormar about using the PEAR_I18nv2 package (of which he is the lead dev.) in Jaws, he sent me a link to a talk Derick Rethans [1] gave about i18n in PHP6. I did some reading and found that a lot of i18n features will be implemented directly in PHP6 but that, as of now, they are not documented (and maybe some of them are not even implemented, I'll find out soon enough). That's why I decided to volunteer to document the functions myself. Some news on my progress will come soon !

 

[1] http://derickrethans.nl/files/php6-unicode.pdf

nicobn | General | 17 June, 6:48pm | Comment on this

Internationalization was not one of the initial goals of my project but it seems clear with the discussions I had with the other developers that complete i18n of the project along with Unicode support would be a big plus ! Right now, my approach is quasi-theoric, as I'm implementing very rudimentory routines to accomplish the most basic tasks. Jaws' i18n routines are, as I'm writing speaking, in a draft stage, as I'm trying to figure out what will be our future needs. You can take a look at include/Jaws/I18n.php and include/Jaws/Module.php to get a big picture of what I've been up to !

 

I also wanted to mention, Jaws' Trac's encoding is now UTF-8, thanks to Pablo.

Cheers !

 

nicobn | General | 17 June, 7:34am | Comment on this

Finally, I found a satisfactory and elegant (well, in my opinion !) solution to the "global variable" problem. In fact, global variables dissapear in PHP6 (and it was about time !) It will be replaced by a core abstract class called Jaws. After it is initialized, all the modules (log, sessions, database, etc.) will be available using static variables. In exemplis, the singleton Jaws_Log class for logging functions will be accessed via Jaws::$Log. Don't throw rocks at me, that's the better solution I found ! Also, it's good to know that all classes are autoloaded via Jaws::autoload(), so no need to include the files manually (unless they are external libraries).

 

Also, I wanted to mention that I ran into some problems with Doctrine but the developers were extremely helpful. I sent two patches to fix little glitches and they were commited. I have the strange feeling I'll have to work closely with them this summer... Not that it really frustrates me. After all, one of the reasons of my project is to test other people's toys !

nicobn | General | 16 June, 12:45am | 1 comments

Since this is a complete refactory, I, as well as the rest of the community, had to make a tough decision: which DBAL to use. First, I was OK with going to something ultra-lightweight, not even providing total abstraction (like PDO) but was rapidly convinced that it was not a good idea by Helgi. I decided to RFC on the Jaws developper list and here is the discussion that followed. Click here to see it in the archive.

 

What came out of it is that Doctrine might be a better choice since we could take advantage of its ORM features in the future. The downside to this is that we'll have to make our own schema routines (I have some ideas for this - more later) to replace MDB2_Schema.

 

I also discovered that Doctrine is in a very... early stage of developement, which means the documentation is sometimes incomplete, sometimes approximative. Also, since there is no stable release, I had to directly checkout from their SVN repository, which means I'll have to follow the developement of yet another application !

 

It seems to be worth the price right now, as it is extremely well built and it has rich features which will be helpful in the future development of Jaws.

nicobn | General | 14 June, 3:35am | Comment on this

Hello everybody ! First of all, I must say it is a very beautiful summer that we have up here in Sherbrooke, Québec. After a few days of rest (you have to excuse me, my school semester was painful !), I started working on the SoC project. I started by going through some of the Jaws code. I like it very much, even if it is very php4ish ;-). This gave me good ideas for the new design. Since jaws-php6 is not a fork but really a new start from scratch, I have to start with very basic things, like logging and database abstraction. I reviewed the basic design with David and real coding can now start ! I'll keep everyone in touch with the new developements.

Also, something to mention, I received the start of coding surprise from Google. It's a book called Producing open source software - How to run a successful free software project by Karl Fogel (and it's signed by him !). It is definitly going to be an interesting read ! Here's a link to the story on his blog. Click on the book to go to the publisher's page.

 

A nice surprise from the Google folks !

nicobn | General | 11 June, 7:33pm | 2 comments
Total Visitors:112763