About Features Downloads Getting Started Documentation Events Support GitHub

Love VuFind®? Consider becoming a financial supporter. Your support helps build a better VuFind®!

Site Tools


Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:architecture:directory_layout

This is an old revision of the document!


VuFind Directory Layout

This page refers to VuFind 2.x; for earlier versions, see VuFind 1.x Directory Layout.

Top-Level Layout

  • config
    Application-level configurations
    • vufind
      Default VuFind .ini files; normally these are copied into a local settings directory rather than modified directly.
  • data
    Storage for application-level data (rarely used)
  • harvest
    Tools for harvesting metadata
  • import
    Tools for importing metadata
  • languages
    Default language files
  • local
    Default local settings directory (other paths may be configured)
  • module
    Core code, divided into modules; for details, see anatomy of a module below.
    • VuFind
      Core VuFind code
    • VuFindConsole
      Console-specific code used for command-line tools
    • VuFindDevTools
      Code that is only available when VuFind is set to development mode (via Apache configuration)
    • VuFindHttp
      VuFind's HTTP service
    • VuFindLocalTemplate
      Template for building a local module to override VuFind defaults; this is copied by install.php and should not be modified directly
    • VuFindSearch
      VuFind's low-level search system
    • VuFindTheme
      VuFind's theming system
  • public
    Web root – should only contain index.php; other files are made accessible via Apache configuration
  • solr
    Solr index and all Solr related items including Jetty and the data directories for the indexes.
  • tests
    Test suite
  • themes
    Templates, CSS, Javascript, images and other theme-specific resources; for details, see anatomy of a theme below.
    • blueprint
      Default desktop theme
    • jquerymobile
      Default mobile theme
    • root
      Base theme containing shared resources needed by all other themes
  • vendor
    Third-party code
  • build.xml
    Phing build script (used for development/continuous integration)
  • import-*.*
    Import automation scripts
  • index-alphabetic-browse.*
    AlphaBrowse index generation script
  • install.php
    VuFind installer
  • vufind.sh
    VuFind startup/shutdown script

Anatomy of a Module

Every module has the same basic structure.

  • config
    Configuration directory defining module-specific resources
  • sql
    Module-specific SQL definitions (not commonly used)
  • src
    Module-specific PHP code, stored in directories matching PHP namespace structure
  • tests
    Module-specific tests (not always used)
  • xsl
    Module-specific XSLT code (not commonly used)
  • Module.php
    Class for loading and bootstrapping module

Anatomy of a Theme

Every theme has the same basic structure.

  • css
    CSS resources (exposed to public access)
  • images
    Image resources (exposed to public access)
  • js
    Javascript resources (exposed to public access)
  • templates
    PHP templates for rendering HTML
  • theme.config.php
    Theme configuration file
development/architecture/directory_layout.1450124220.txt.gz · Last modified: 2015/12/14 20:17 by demiankatz