flack edited this page Dec 8, 2016 · 24 revisions

MidCOM (short for "Midgard Component Framework") is a framework for developing web applications and content management systems. It includes implementations for many services a typical application needs, and an interface for extending it with custom Components.

DB access happens a [database abstraction layer](MidCOM DBA) (DBA for short). Routing is component and topic-based and can be extended with MidCOM URL Methods to embed commands into request URLs


The central entry point into the system is the midcom_application class, an instance of which is available via the static midcom::get() accessor:

$app = midcom::get();

From this instance, most of the framework's services can be accessed:

// Make sure we have a logged-in user and display a login form if not
// Fetch a translation for a string and output
echo $app->i18n->get_string('login');

These services are available through midcom_application currently:

See also:


See MidCOM Configuration for an overview of config options.

Components can be configured in a special Snippetdir called sitegroup-config. To configure a Component, a Subsnippetdir with the name of the component has to be created. Alternatively, global component configuration can be done in Asgard. Configuration on a per-Topic-level can be done in a MidCOM Toolbar. See MidCOM Component Configuration for details.


Most administration tasks are handled from the MidCOM Toolbars, which dynamically load a number of plugins to control different aspects of the MidCOM system, for example:

midcom.admin.folder - Topic management

midcom.admin.rcs - RCS system

For MidCOM versions starting at 2.8., Asgard, unifies many of these admin features and provides a generic MidCOM object editor.


MidCOM was originally developed separate from the Midgard core, but was later included in the standard distribution. Before version 2.0, MidCOM's functionality was stored in the database, starting from version 2.0, it is stored in the file system. midcom-fs is the designation for current versions, as opposed to midcom-db, which refers to 1.x versions.

The most recent release by the Midgard Project is the 8.09 LTS series, which was supported until 2013. OpenPSA was forked from MidCOM in November 2010 at the Midgard developer meeting and is developed independently since then.

The new OpenPSA application and the underlying framework start with version number 9.


https://github.com/flack/openpsa - github repository (9.0 series)

http://api.openpsa2.org/ - API documentation

Content production with MidCOM

http://www.midgard-project.org/documentation/midcom/ - The 8.09 series MidCOM documentation page

http://trac.midgard-project.org - developer services (8.09 series)

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.