Developers Guide

From PGVWiki
Jump to navigation Jump to search

This is an annotated list of articles that comprise a Developer's Guide.

These are many of the original development resources on the PhpGedView website Dev Docs section.


  • Mashups - Information on using PhpGedView mashups in other pages

Setting Up a Development Environment

If you want to help develop PhpGedView you will need to set up a development environment. Here are some guides to the sets required to do this:

Developer Tutorials and APIs

Getting Started Tutorial
A tutorial which will walk you through how to get started developing for PhpGedView.
Full Project API (PHPDoc)
Details the full API in PHPDoc format for the entire project.
Editing API
Describes the function calls for editing data in PhpGedView.
Creating a Module
Describes how to create a basic module including menu for PGV
PGV Variables
Variables available to modules
Translation and Internationalization
Describes how to use the language translation and internationalization features of PhpGedView.
Model-View-Controller Architecture
Describes how PhpGedView uses the MVC pattern.
Commenting and Code Style
Describes the commenting practices for PhpGedView and the code formatting and style.
Language and text styles for Help screens
Provides some basic rules and guidelines for the presentation of Help text.
Information on access PhpGedView data through a SOAP based web service.
Information on access PhpGedView data through a REST based web service.

Internal data structures

Data Model
The classes and objects which make up the PhpGedView data model.
Global Arrays
A list describing all arrays used in the core data model.

Report formats

PhpGedView XML Report Templates
This page describes the PhpGedView XML report templates and provides information on how you can create your own reports


Testing, and frequent testing is important to the development and uptake of PhpGedView. Testing helps to minimise the occurrence of bugs as well as help stopping them from resurfacing at a later date.

SimpleTest can be used to write unit tests of classes.


The GEDCOM 5.5 Torture Test Files are valid but odd and confusing GEDCOMs that are useful in debugging problems with PhpGedView. It would be great if developers who made changes to PhpGedView to accommodate uncommon and weird GEDCOMs that are valid, update this file so that it can help other applications improve their GEDCOM support.

TODO: have a publicly available PhpGedView install that uses the Torture Test GEDCOM for testing. The PhpGedView modified GEDCOM should be submitted back to the author of the test. See [1]


There is a lot of optimization needed in the CSS code being used in PhpGedView. Many classes are redundant and a lot of streamlining is needed.

The CSS Optimizer can be used to reduce the size of the CSS files prior to a release. We should keep the original as is, and run them through this free online tool before release to greatly reduce the size of the files. Keeping the newlines option in the tool, will allow developers to still read the CSS and get ideas for better optimization (though it might not be in a format that we want to keep).

Another available tool is Formatter and Optimiser.

Working with SVN

An article detailing working with SVN.
Merging Branches
Describes the process for merging SVN branches in the PhpGedView project.