Developers Guide
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.
Contents
Mashups
- 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:
- Installing PHP on Windows
- Installing MySQL on Windows
- Installing Eclipse on Windows
- Installing PhpGedView for Development
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.
- GEDCOM SOAP Web Service API
- Information on access PhpGedView data through a SOAP based web service.
- GEDCOM REST Web Service API
- 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
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.
GEDCOM
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]
CSS
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
- SVN
- An article detailing working with SVN.
- Merging Branches
- Describes the process for merging SVN branches in the PhpGedView project.