SPiFFy: Simple PHP Framework for Fedora

Overview 

Spiffy provides a set of scripts and a simple framework which can be used to publish and search collections in a Fedora Repository. The framework provides a few functions:

  1. a web-based interface for navigating collections of digital objects held in Fedora.
  2. a plugin architecture that allows for different object types to be displayed according to plugins, which can be added as needed
  3. a framework for text-search and indexing of digital resources.

Design philosophy

Spiffy seeks to be honest, grassroots, democratic, simple. These are some expressions of that:

Stay true to the design of Fedora. Work in a way that Fedora wants you to to work and according to best practices. Hence,

  1. Collections are defined by the RDF assertions managed by Fedora (in the RELS-EXT datastreams)
  2. Plugins used for object display are mapped to disseminators

Adopt in a common scripting language instead of a compiled lanaguage in order to enfranchise as many developers as possible. Hence Spiffy is written in PHP.

Make install easy and as generic as possible. Spiffy requires as few outside libraries and configuration as possible. For example, instead of forcing the (sometimes) complex process of enabling XSL in PHP, Spiffy uses the Saxon service that ships with Fedora.

Simple, simple, simple! Spiffy tries to keep this in mind in as many ways as possible. To start with Spiffy consists of only 5 basic interfaces, not a horde of possible user-functionality. It uses XSL when it simplifies the problem, and avoids XSL otherwise (complex XSL transformations can be difficult to understand for later developers). It avoids complex MVC frameworks and instead implements a minimal one that contains just the features it needs. Its plugin architecture allows for complex object display issues to be off-loaded to that level, and not stay in the core framework.

License 

The source code is released under the GPL: http://www.gnu.org/copyleft/gpl.html