[Phpmyadmin-devel] [GSoC] OO PMA project proposals

Edouard SWIAC edouard.swiac at gmail.com
Thu Mar 25 12:53:44 CET 2010

Hello Dieter,

Le 25 mars 2010 à 11:06, Dieter Adriaenssens a écrit :

> I agree that Export is a good candidate to rewrite in OO, for several reasons :
> * It's a stand alone module, nothing major depends on it (I think).
> * It's well suited for an OO approach, as you can create an abstract
> export class, and then create specific classes (for PDF, SQL, ...)
> that derive from that class. The export functionality then uses the
> (abstract) export class, and depending on the instance, the right
> output is generated. (The concept is called polymorphism if I'm not
> mistaken)
Yes, that's the point! 

>  But I'm wondering if it might be
> useful to combine the export/import classes into one class? To keep a
> better overview it's maybe better to keep the import and export
> classes separate.
I agree with you, it's better to have a clear separation between both :
Basically :
- Export : Export class > Rowset > export plugin
- Import : import plugin > Dataset > Import class > DB

> Rewriting the entire project to use the PMA_Table class as an object,
> is a bit too big for one GSoC project, I think.
For my project I consider writing and using a PMA_Table class that meet my needs. But following the SOLID principle (http://en.wikipedia.org/wiki/Solid_%28Object_Oriented_Design%29), the PMA_Table class should be open to extension and future development (rewriting in our case), and closed to modification.

> Maybe you could convert the PMA_Table class to something that can be
> instanciated, but still works when used static. Or maybe a new Table
> (together with a Database, Rowset, ...) class should be created, to
> start using as an object in your export/import module (and later in
> the rest of the project.
PMA_Table is already 1149,I fear that adding the needed non static methods inside will grow the number of lines ...
I'll look into the problem and find a "compromise".

Thanks for your advices Dieter !


More information about the Developers mailing list