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!
Table of Contents
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_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) - templates
PHP templates for rendering HTML - theme.config.php
Theme configuration file
development/architecture/directory_layout.1545229671.txt.gz · Last modified: 2018/12/19 14:27 by demiankatz