About Features Downloads Getting Started Documentation Events Support GitHub

Site Tools


development:architecture:directory_layout

VuFind Directory Layout

This page refers to VuFind 2.x and later; use of earlier versions is no longer recommended.

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
    • VuFindAdmin
      Code for accessing the web-based Admin panel
    • VuFindApi
      Code for VuFind's public API
    • 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)
    • 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 Solr itself and the data directories for the indexes. Starting with VuFind 3.0, this is separated into separate 'vufind' and 'vendor' subdirectories to differentiate Solr-distributed code from VuFind configuration and data.
  • tests
    Test suite
  • themes
    Templates, CSS, Javascript, images and other theme-specific resources; for details, see anatomy of a theme below.
    • local_mixin_example
      Example of a theme mix-in (used by the mix-in generator).
    • local_theme_example
      Example of a local custom theme (used by the theme generator).
    • root
      Base theme containing shared resources needed by all other themes
    • assorted other directories
      VuFind's built-in themes (details vary depending on version)
  • 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
  • solr.sh
    Solr 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)
  • less
    LESS resources (used to build CSS)
  • scss
    SCSS resources (auto-translated from LESS; provided for reference but unused by default)
  • templates
    PHP templates for rendering HTML
  • theme.config.php
    Theme configuration file
development/architecture/directory_layout.txt · Last modified: 2018/12/19 14:28 by demiankatz