HumHub provides a powerful modular platform based on the Yii2 Framework. The modular nature of HumHub allows developers to add new features or change the behavior of existing core features by means of custom modules.
Languages used throughout the platform are:
- SQL (MySQL/MariaDB)
HumHub is based on the Model-View-Controller (MVC) pattern and uses frontend frameworks such as:
In this guide you will find all the necessary information in order to customize your HumHub installation and implement your own modules. Since HumHub is based on the Yii 2.0 PHP Framework make sure you're also familiar with the basic concepts of Yii2:
The HumHub core consists of a set of core modules, components, widgets, helpers and views, which can be used within your custom modules and are described in more detail within the Module Development section.
HumHub extends several Yii components such as:
- and more...
and consists of the following core modules:
|Social network activities|
|Content add-on for commenting|
|Base module for all content types (Post,Wiki,...)|
|HumHub Dashboard overview|
|HumHub Directory platform overview (User/Spaces/Groups)|
|Base file module for managing uploaded files|
|Enables user friendship relations|
|HumHub platform installer|
|Content add-on for likes|
|Enables live updates in the frontend|
|Enables notification over different targets|
|Simple post content type|
|Queue module for asynchronous jobs|
|HumHub search abstraction + default implementation|
|Content topics used to categorize content entries|
|Introduction tour (user-guide)|
|Base user interface components like widgets and theme logic|
|HumHub user and authentication|
|Web standard related classes|
The following structure lists the main directories of a HumHub installation, whereas the
humhub directory will be referred as
web-root throughout this guide.
assets- Contains published assets as scripts and stylesheets managed by AssetBundles.
protected- Contains files as core and module sources and configuration files. The access to this directory needs to be protected in an production environment.
config- Contains user configuration files.
humhub- Contains all HumHub core files'
modules- This is the default directory used for searching for external modules.
runtime- Contains runtime related files as cache, search index and logs
vendor- Contains third party libraries
uploads- File uploads, profile images etc.
See Yii2 - Application Structure for an in depth description of a Yii2 application.