$modules API variable / Modules class

Loads and manages all modules in ProcessWire.

The $modules API variable is most commonly used for getting individual modules to use their API.

// Getting a module by name
$m = $modules->get('MarkupPagerNav');

// Getting a module by name (alternate)
$m = $modules->MarkupPagerNav;

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Modules class also inherits all the methods and properties of: WireArray and Wire.

Show $var?             Show args?        

Common

NameReturnSummary 
$modules->configs ModulesConfigs 
$modules->coreModulesDir string 
$modules->coreModulesPath string 
$modules->files ModulesFiles 
$modules->findByInfo($selector)
arrayFind modules by matching a property or properties in their module info 
$modules->findByPrefix(string $prefix)
arrayFind modules matching the given prefix (i.e. “Inputfield”) 
$modules->flags ModulesFlags 
$modules->get($key)
Module _Module nullGet the requested Module 
$modules->getDebugData()
(nothing) 
$modules->getModule($key)
Module _Module null stringGet the requested Module (with options) 
$modules->getModuleFile($class)
bool stringGet the path + filename (or optionally URL) for this module 
$modules->getModuleID($class)
intReturns the database ID of a given module class, or 0 if not found 
$modules->getModuleInfo($class)
arrayReturns an associative array of information for a Module 
$modules->getModuleInfoProperty($class, string $property)
mixed nullGet just a single property of module info 
$modules->getModuleInfoVerbose($class)
arrayReturns a verbose array of information for a Module 
$modules->getModuleLanguageFiles($module)
arrayGet module language translation files 
$modules->info ModulesInfo 
$modules->installableFiles array 
$modules->installer ModulesInstaller 
$modules->isInstalled(string $class)
boolIs the given module name installed? 
$modules->loader ModulesLoader 
$modules->memcache(string $name)
bool array mixed nullSet a runtime memory cache 
$modules->moduleIDs array 
$modules->moduleNames array 
$modules->refreshing bool 
$modules->siteModulesPath string 

Configuration

NameReturnSummary 
$modules->getConfig($class)
array string int floatGiven a module name, return an associative array of configuration data for it 
$modules->getModuleEditUrl($className)
stringReturn the URL where the module can be edited, configured or uninstalled 
$modules->getModuleInstallUrl(string $className)
stringGet URL where an administrator can install given module name 
$modules->isConfigurable($class)
bool string intIs the given module interactively configurable? 
$modules->saveConfig($class, $data)
boolSave provided configuration data for the given module

Additional methods and properties

In addition to the methods and properties above, Modules also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #514
    In the 514th issue of ProcessWire Weekly we'll check out the latest blog post from Ryan, introduce two new third party modules — Page List Versions Counter and Fieldtype Fieldset Panel — and more. Read on!
    Weekly.pw / 16 March 2024
  • Invoices Site Profile
    The new invoices site profile is a free invoicing application developed in ProcessWire. It enables you to create invoices, record payments to them, email invoices to clients, print invoices, and more. This post covers all the details.
    Blog / 15 March 2024
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK