Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:architecture:directory_layout
Table of Contents
VuFind® 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) - downloads
Cache for downloaded dependencies (e.g. Solr) - 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. 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)
-
- i18n
Specialized Javascript/PHP tools for building language files for i18n
- 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: 2024/01/04 19:11 by demiankatz