---
title: "Phalcon Application"
version: "5.19"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.phalcon.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Phalcon Application

:::info[NOTE]
All classes are prefixed with `Phalcon`
:::

## Application\AbstractApplication

<span class="badge badge--abstract">Abstract</span>
<a class="src-btn" href="https://github.com/phalcon/cphalcon/blob/5.0.x/phalcon/Application/AbstractApplication.zep">Source on GitHub</a>

Base class for Phalcon\Cli\Console and Phalcon\Mvc\Application.

<div class="api-tree">

- `\stdClass`
- [`Phalcon\Di\Injectable`](/5.19/api/phalcon_di/#diinjectable)
- **`Phalcon\Application\AbstractApplication`** - implements [`Phalcon\Events\EventsAwareInterface`](/5.19/api/phalcon_events/#eventseventsawareinterface)
- [`Phalcon\Cli\Console`](/5.19/api/phalcon_cli/#cliconsole)
- [`Phalcon\Mvc\Application`](/5.19/api/phalcon_mvc/#mvcapplication)

</div>

__Uses__ `Closure` · `Phalcon\Application\Exceptions\ModuleNotRegistered` · `Phalcon\Contracts\Application\ApplicationTypes` · `Phalcon\Di\DiInterface` · `Phalcon\Di\Injectable` · `Phalcon\Events\EventsAwareInterface` · `Phalcon\Events\ManagerInterface` · `Phalcon\Events\Traits\EventsAwareTrait`

### Method Summary

<div class="api-list">
<a class="api-item" href="#applicationabstractapplication-__construct">
<code class="vis vis-public">public</code>
<code class="sig"><span class="sf">__construct</span>( <span class="st">DiInterface|null</span> <span class="sv">$container</span><span class="sm"> = null</span> )</code>
<span class="desc">AbstractApplication constructor.</span>
</a>
<a class="api-item" href="#applicationabstractapplication-getdefaultmodule">
<code class="vis vis-public">public</code>
<code class="ret">string</code>
<code class="sig"><span class="sf">getDefaultModule</span>()</code>
<span class="desc">Returns the default module name</span>
</a>
<a class="api-item" href="#applicationabstractapplication-getmodule">
<code class="vis vis-public">public</code>
<code class="ret">mixed</code>
<code class="sig"><span class="sf">getModule</span>( <span class="st">string</span> <span class="sv">$name</span> )</code>
<span class="desc">Gets the module definition registered in the application via module name</span>
</a>
<a class="api-item" href="#applicationabstractapplication-getmodules">
<code class="vis vis-public">public</code>
<code class="ret">array</code>
<code class="sig"><span class="sf">getModules</span>()</code>
<span class="desc">Return the modules registered in the application</span>
</a>
<a class="api-item" href="#applicationabstractapplication-registermodules">
<code class="vis vis-public">public</code>
<code class="ret">static</code>
<code class="sig"><span class="sf">registerModules</span>(<span class="prm"><span class="st">array</span> <span class="sv">$modules</span>,</span><span class="prm"><span class="st">bool</span> <span class="sv">$merge</span><span class="sm"> = false</span></span>)</code>
<span class="desc">Register an array of modules present in the application</span>
</a>
<a class="api-item" href="#applicationabstractapplication-setdefaultmodule">
<code class="vis vis-public">public</code>
<code class="ret">static</code>
<code class="sig"><span class="sf">setDefaultModule</span>( <span class="st">string</span> <span class="sv">$defaultModule</span> )</code>
<span class="desc">Sets the module name to be used if the router does not return a valid</span>
</a>
<a class="api-item" href="#applicationabstractapplication-seteventsmanager">
<code class="vis vis-public">public</code>
<code class="ret">void</code>
<code class="sig"><span class="sf">setEventsManager</span>( <span class="st">ManagerInterface</span> <span class="sv">$eventsManager</span> )</code>
<span class="desc">Sets the events manager</span>
</a>
</div>

### Properties

<div class="api-list">
<div class="api-item">
<code class="vis vis-protected">protected</code>
<code class="ret">string</code>
<code class="sig"><span class="sv">$defaultModule</span><span class="sm"> = &quot;&quot;</span></code>
</div>
<div class="api-item">
<code class="vis vis-protected">protected</code>
<code class="ret">array</code>
<code class="sig"><span class="sv">$modules</span><span class="sm"> = []</span></code>
</div>
</div>

### Methods

<div class="api-group">Public · 7</div>

<h4 id="applicationabstractapplication-__construct"><code>__construct()</code></h4>

```php
public function __construct( DiInterface|null $container = null );
```

AbstractApplication constructor.

<h4 id="applicationabstractapplication-getdefaultmodule"><code>getDefaultModule()</code></h4>

```php
public function getDefaultModule(): string;
```

Returns the default module name

<h4 id="applicationabstractapplication-getmodule"><code>getModule()</code></h4>

```php
public function getModule( string $name ): mixed;
```

Gets the module definition registered in the application via module name

<h4 id="applicationabstractapplication-getmodules"><code>getModules()</code></h4>

```php
public function getModules(): array;
```

Return the modules registered in the application

<h4 id="applicationabstractapplication-registermodules"><code>registerModules()</code></h4>

```php
public function registerModules(
array $modules,
bool $merge = false
): static;
```

Register an array of modules present in the application

```php
$this->registerModules(
[
    "frontend" => [
        "className" => \Multiple\Frontend\Module::class,
        "path"      => "../apps/frontend/Module.php",
    ],
    "backend" => [
        "className" => \Multiple\Backend\Module::class,
        "path"      => "../apps/backend/Module.php",
    ],
]
);
```

<h4 id="applicationabstractapplication-setdefaultmodule"><code>setDefaultModule()</code></h4>

```php
public function setDefaultModule( string $defaultModule ): static;
```

Sets the module name to be used if the router does not return a valid
module

<h4 id="applicationabstractapplication-seteventsmanager"><code>setEventsManager()</code></h4>

```php
public function setEventsManager( ManagerInterface $eventsManager ): void;
```

Sets the events manager

## Application\Exception

<span class="badge badge--class">Class</span>
<a class="src-btn" href="https://github.com/phalcon/cphalcon/blob/5.0.x/phalcon/Application/Exception.zep">Source on GitHub</a>

Exceptions thrown in Phalcon\Application use this class

<div class="api-tree">

- `\Exception`
- **`Phalcon\Application\Exception`**
- [`Phalcon\Application\Exceptions\ModuleNotRegistered`](#applicationexceptionsmodulenotregistered)
- [`Phalcon\Cli\Console\Exception`](/5.19/api/phalcon_cli/#cliconsoleexception)
- [`Phalcon\Mvc\Application\Exception`](/5.19/api/phalcon_mvc/#mvcapplicationexception)

</div>

## Application\Exceptions\ModuleNotRegistered

<span class="badge badge--class">Class</span>
<a class="src-btn" href="https://github.com/phalcon/cphalcon/blob/5.0.x/phalcon/Application/Exceptions/ModuleNotRegistered.zep">Source on GitHub</a>

<div class="api-tree">

- `\Exception`
- [`Phalcon\Application\Exception`](#applicationexception)
- **`Phalcon\Application\Exceptions\ModuleNotRegistered`**

</div>

__Uses__ `Phalcon\Application\Exception`

### Method Summary

<div class="api-list">
<a class="api-item" href="#applicationexceptionsmodulenotregistered-__construct">
<code class="vis vis-public">public</code>
<code class="sig"><span class="sf">__construct</span>( <span class="st">string</span> <span class="sv">$name</span> )</code>
</a>
</div>

### Methods

<div class="api-group">Public · 1</div>

<h4 id="applicationexceptionsmodulenotregistered-__construct"><code>__construct()</code></h4>

```php
public function __construct( string $name );
```

Source: https://docs.phalcon.io/5.19/api/phalcon_application/index.mdx
