$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->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->get($key)
Module _Module nullGet the requested Module 
$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->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->isInstalled(string $class)
boolIs the given module name installed? 
$modules->wired()
(nothing) 

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->isConfigurable($class)
bool string intIs the given module 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.161

Twitter updates

  • New ProcessWire query expansion search operators can now add automatic word inflections and lemmatisation, enabling you to build even smarter search engines with ProcessWire. More
    3 July 2020
  • ProcessWire 3.0.161 adds support for selector operator stacking, enabling you automatically broaden searches in a single pages.find() call— More
    26 June 2020
  • ProcessWire 3.0.160 adds powerful new text-searching operators, bringing a new level of power to page-finding API calls, especially when it comes to search engine type queries. Post also includes a demo search engine where you can test it all out live— More
    19 June 2020

Latest news

  • ProcessWire Weekly #320
    In the 320th issue of ProcessWire Weekly we're going to check out the latest core updates (ProcessWire 3.0.161), a new third party module called Fieldtype Runtime only, an IndieWeb themed article from Francesco Schwarz, and more. Read on!
    Weekly.pw / 27 June 2020
  • Powerful new text-searching abilities in 3.0.160
    In ProcessWire 3.0.160 we’ve got some major upgrades and additions to our text-search abilities. This brings a whole new level of power to $pages->find() and similar API calls, especially when it comes to search engine type queries.
    Blog / 19 June 2020
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani