Development tools in ExamSys
We use several tools to help with the development and building of ExamSys
Node Package Manager (npm)
Grunt
Composer
Behat
PHPUnit
PHP Code sniffer
Rector
Node Package Manager (npm)
npm is used to install the tools we use to build ExamSys for deployment, it requires node.js to run.
Grunt
Grunt and it’s packages are used to do several things:
Compress our CSS
Lint and compress our JavaScript
Build sprite images including their supporting CSS and JavaScript
We only include human readable and formatted files in the ExamSys source code, but to save bandwidth during use we want to minimise the size of the CSS and JavaScript files by removing whitespace that machines do not need.
Composer
Composer is used to manage third party dependencies in our code base, and to install some development tools
Examples of dependencies:
The templating engine
html filtering
web service layer
Behat
Behat is used to do automatic functional testing.
PHPUnit
PHPUnit is used in ExamSys for unit testing
PHP Code sniffer
We use PHP code sniffer to check that the code we develop matches the ExamSys coding standard
Rector
New in ExamSys 7.7.0
Rector is a tool that allows us to automatically change parts of the ExamSys code to support the latest PHP features. We are using it to assist us keeping the codebase working smoothly on newer version of PHP.