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.

Coding Standards


VuFind® currently uses the PSR-12 standard for its PHP code; versions 8.x and earlier were developed using the similar but now outdated PEAR Coding Standards. Several additional recommendations are enforced using the php-cs-fixer tool. For help with standards compliance, see the recommended tools page.


ESLint style enforcement is in effect. It uses ESLint recommended rules with a few extra rules. For more information, see this pull request.


Templates are a difficult mix of conditional PHP, HTML, and inline JS. Here's a few guidelines to help write clearer templates.

  • 2 Space Indents
  • Long php tags - <?php
  • Use short echo tags - <?=$var ?>
  • Use if blocks instead of brackets and indent inside - <?php if(): ?><?php endif; ?>
  • Use Slots to simply buffering and conditional content, especially across templates
  • If a loop is producing multiple buttons, links, etc. per item, consider making a subtemplate and using <?=$this→render() ?>
  • Don't call Model methods from Views, perform this logic in the Controllers

Many of these items and more are enforced and automatically corrected with PHP-CS-fixer.


No strict coding practices enforced, although the Code Guide by Bootstrap creator Mark Otto is a recommended read.

Editor Config

# editorconfig.org

root = true

charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

indent_size = 4
development/coding_standards.txt · Last modified: 2023/03/17 10:43 by demiankatz