Skip to content

GSoC 2011 - Big changes in phpPgAdmin

After many years in the PostgreSQL community, I applied as a co-mentor for the phpPgAdmin project and was accepted. More specifically, the project is about a plugin architecture to extend phpPgAdmin, Leonardo Sápiras has submitted this proposal and was accepted. Jehan-Guillaume (ioguix) de Rorthais is the main mentor for this project.
If we had known beforehand how many questions a simple objection can raise - who knows if I would have been accepted as co-mentor;-)

One of the key issues in the new architecture is how plugins are implemented. Without describing all the gory details, here are the two discussed options:

On one hand this is possible if each plugin make's his own output, stays in his own subdirectory and is called directly from the browser. Otherwise there is very little interaction with the rest of the code.

Another option is to register all plugins in the phpPgAdmin core and make use of hooks to call certain functions of the plugins whenever necessary.

This question was only raised because the first approach requires including from files which are not in the root directory of phpPgAdmin - this is not possible right now. At this point I provocatively raised the question of what a plugin is. And why a completely separate file in a subdirectory may call himself a "plugin".

The current consent is to implement the second option. This approach offers much greater possibilities. However, this approach may require refactoring of parts of the code in the future to make use of the new plugin architecture. Possibly even as part of another GSoC project.


No Trackbacks


Display comments as Linear | Threaded

Jehan-Guillaume (ioguix) de Rorthais on :

Sorry, I'll do some nipsticking again here... Both code register to PPA's core and make use of the same hooks to add their links all over the place. But the second one only register one more things: its actions. The difference is really about calling directly a dedicated php script in plugin's subdirectories or calling one core file (plugin.php as instance) to trigger these plugins' actions. We agreed on this second approach.
Comments ()

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.
Form options