- Modules should throw Exceptions on invocation to notify admin of issues.
- Module should install distributable versions of their dependencies (composer install --no-dev --prefer-dist).
The non-essential and vendor functionality of WP-Property are compartmentalized into "modules". Broadly speaking, there are three types of modules - "libraries", "components" and "modules".
These are "vendor" libraries loaded by Composer and are essential for WP-Property to load. Required libraries of Features are bundled into the core vendor directory.
These are Composer packages that are non-essential and are loaded by WP-Property when activated. Features are not packaged into distribution and are downloaded automatically by WP-Property once activated. Features do not use auto-loading since they are may be installed later and the autoload configuration packaged with WP-Property distributions is static. Features are loaded by Bootstrap class by scanning the vendor/usabilitydynamics directory.