Programmer's guide

From semantic-mediawiki.org
Jump to: navigation, search
Programmer's guide
Help developers to navigate
Keywords
Table of Contents
Smw-user-input-storage-process.png
Smw-locl-datavalue-content-user-lang.png

This page should help developers navigate who want to support SMW development or develop extensions to SMW can use a number of resources to get started. Of course, it is strongly recommended to be familiar with the usage of SMW as well.

Moreover, there is an SMW architecture guide that provides a basic introduction to the main ideas and concepts in SMW from a developer perspective, which should be useful for reading and writing SMW-related code.

Getting started

The SMW architecture guide provides a basic introduction to the main ideas and concepts in SMW from a developer perspective.

When switching from a user to a developer of SMW, you should also change the configuration of your testing wiki to ensure that you do not overlook possible errors or problems (especially those created by your own code). Please read about how to debug MediaWiki, in particular the section about PHP error reporting. All MediaWiki extensions are expected to run without issuing any PHP notices!

The Project welcomes all potential contributors and extension developers. Developers can discuss on the SMW developer mailing list, which can also be used to contact the SMW core developers.

Also take a moment to familiarise yourself with the MediaWiki resources for developers.

Writing testable code

Code documentation

SMW and its extensions try to provide thorough code documentation as part of their program files. An API documentation is automatically generated from this data:

Semantic MediaWiki API documentation

This documentation encompasses SMW, Semantic Result Formats, Semantic Forms, Semantic Drilldown and Semantic Maps. It is rebuilt every day from the current contents of SVN. Further extensions can be added to this documentation if they relate to SMW, are hosted in MediaWiki SVN, and use naming conventions that prevent confusion with the other extensions (which use prefixes SMW, SRF, SF, SD and SM, respectively).

To get a quick overview of the code distribution in SMW, you can have a look at

SMW source code structure (outdated!!!)

Security aspects

Web applications with open user communities are specifically threatened by security vulnerabilities. SMW developers are responsible for taking specific care to avoid vulnerabilities of all kinds. Every developer should carefully read the MediaWiki security guidelines for developers.

For more information, please read security and software vulnerabilities.

See also