Skip to content
flack edited this page Sep 26, 2019 · 32 revisions

MidCOM is a framework for developing web applications and content management systems. It includes

  • a database abstraction layer
  • a number of services and generic administration tools (see below)
  • an interface for extending it with custom Components
  • a Routing service which allows composing an application out of multiple components (in combination with Topics)

Services

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
$app->auth->require_valid_user();
// Fetch a translation for a string and output
echo $app->i18n->get_string('login');

These services are available through midcom_application currently:

See also:

Configuration

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.

Administration

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:

Apart from that, some functionality is available in MidCOM URL Methods.

History

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.

Links

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

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

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