---
title: "Phalcon Factory"
version: "5.17"
---

> 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 Factory

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

## Factory\AbstractConfigFactory

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

<div class="api-tree">

- **`Phalcon\Factory\AbstractConfigFactory`**
- [`Phalcon\Cache\CacheFactory`](/5.17/api/phalcon_cache/#cachecachefactory)
- [`Phalcon\Factory\AbstractFactory`](#factoryabstractfactory)
- [`Phalcon\Logger\LoggerFactory`](/5.17/api/phalcon_logger/#loggerloggerfactory)
- [`Phalcon\Queue\QueueFactory`](/5.17/api/phalcon_queue/#queuequeuefactory)

</div>

__Uses__ `Phalcon\Config\ConfigInterface`

### Method Summary

<div class="api-list">
<a class="api-item" href="#factoryabstractconfigfactory-checkconfig">
<code class="vis vis-protected">protected</code>
<code class="ret">array</code>
<code class="sig"><span class="sf">checkConfig</span>( <span class="st">mixed</span> <span class="sv">$config</span> )</code>
<span class="desc">Checks the config if it is a valid object</span>
</a>
<a class="api-item" href="#factoryabstractconfigfactory-checkconfigelement">
<code class="vis vis-protected">protected</code>
<code class="ret">array</code>
<code class="sig"><span class="sf">checkConfigElement</span>(<span class="prm"><span class="st">array</span> <span class="sv">$config</span>,</span><span class="prm"><span class="st">string</span> <span class="sv">$element</span></span>)</code>
<span class="desc">Checks if the config has &quot;adapter&quot;</span>
</a>
<a class="api-item" href="#factoryabstractconfigfactory-getexception">
<code class="vis vis-protected">protected</code>
<code class="ret">\Exception</code>
<code class="sig"><span class="sf">getException</span>( <span class="st">string</span> <span class="sv">$message</span> )</code>
<span class="desc">Returns the exception object for the child class</span>
</a>
<a class="api-item" href="#factoryabstractconfigfactory-getexceptionclass">
<code class="vis vis-protected">protected</code>
<code class="ret">string</code>
<code class="sig"><span class="sf">getExceptionClass</span>()</code>
</a>
</div>

### Methods

<div class="api-group">Protected · 4</div>

<h4 id="factoryabstractconfigfactory-checkconfig"><code>checkConfig()</code></h4>

```php
protected function checkConfig( mixed $config ): array;
```

Checks the config if it is a valid object

<h4 id="factoryabstractconfigfactory-checkconfigelement"><code>checkConfigElement()</code></h4>

```php
protected function checkConfigElement(
array $config,
string $element
): array;
```

Checks if the config has "adapter"

<h4 id="factoryabstractconfigfactory-getexception"><code>getException()</code></h4>

```php
protected function getException( string $message ): \Exception;
```

Returns the exception object for the child class

<h4 id="factoryabstractconfigfactory-getexceptionclass"><code>getExceptionClass()</code></h4>

```php
protected function getExceptionClass(): string;
```

## Factory\AbstractFactory

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

<div class="api-tree">

- [`Phalcon\Factory\AbstractConfigFactory`](#factoryabstractconfigfactory)
- **`Phalcon\Factory\AbstractFactory`**
- [`Phalcon\Annotations\AnnotationsFactory`](/5.17/api/phalcon_annotations/#annotationsannotationsfactory)
- [`Phalcon\Cache\AdapterFactory`](/5.17/api/phalcon_cache/#cacheadapterfactory)
- [`Phalcon\Config\ConfigFactory`](/5.17/api/phalcon_config/#configconfigfactory)
- [`Phalcon\Db\Adapter\PdoFactory`](/5.17/api/phalcon_db/#dbadapterpdofactory)
- [`Phalcon\Encryption\Crypt\PadFactory`](/5.17/api/phalcon_encryption/#encryptioncryptpadfactory)
- [`Phalcon\Filter\Validation\ValidatorFactory`](/5.17/api/phalcon_filter/#filtervalidationvalidatorfactory)
- [`Phalcon\Image\ImageFactory`](/5.17/api/phalcon_image/#imageimagefactory)
- [`Phalcon\Logger\AdapterFactory`](/5.17/api/phalcon_logger/#loggeradapterfactory)
- [`Phalcon\Paginator\PaginatorFactory`](/5.17/api/phalcon_paginator/#paginatorpaginatorfactory)
- [`Phalcon\Queue\AdapterFactory`](/5.17/api/phalcon_queue/#queueadapterfactory)
- [`Phalcon\Storage\AdapterFactory`](/5.17/api/phalcon_storage/#storageadapterfactory)
- [`Phalcon\Storage\SerializerFactory`](/5.17/api/phalcon_storage/#storageserializerfactory)
- [`Phalcon\Support\HelperFactory`](/5.17/api/phalcon_support/#supporthelperfactory)
- [`Phalcon\Translate\InterpolatorFactory`](/5.17/api/phalcon_translate/#translateinterpolatorfactory)
- [`Phalcon\Translate\TranslateFactory`](/5.17/api/phalcon_translate/#translatetranslatefactory)

</div>

__Uses__ `Phalcon\Config\ConfigInterface`

### Method Summary

<div class="api-list">
<a class="api-item" href="#factoryabstractfactory-getservice">
<code class="vis vis-protected">protected</code>
<code class="ret">mixed</code>
<code class="sig"><span class="sf">getService</span>( <span class="st">string</span> <span class="sv">$name</span> )</code>
<span class="desc">Checks if a service exists and throws an exception</span>
</a>
<a class="api-item" href="#factoryabstractfactory-getservices">
<code class="vis vis-protected">protected</code>
<code class="ret">array</code>
<code class="sig"><span class="sf">getServices</span>()</code>
<span class="desc">Returns the adapters for the factory</span>
</a>
<a class="api-item" href="#factoryabstractfactory-init">
<code class="vis vis-protected">protected</code>
<code class="ret">void</code>
<code class="sig"><span class="sf">init</span>( <span class="st">array</span> <span class="sv">$services</span><span class="sm"> = []</span> )</code>
<span class="desc">Initialize services/add new services</span>
</a>
</div>

### Properties

<div class="api-list">
<div class="api-item">
<code class="vis vis-protected">protected</code>
<code class="ret">array</code>
<code class="sig"><span class="sv">$mapper</span><span class="sm"> = []</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">$services</span><span class="sm"> = []</span></code>
</div>
</div>

### Methods

<div class="api-group">Protected · 3</div>

<h4 id="factoryabstractfactory-getservice"><code>getService()</code></h4>

```php
protected function getService( string $name ): mixed;
```

Checks if a service exists and throws an exception

<h4 id="factoryabstractfactory-getservices"><code>getServices()</code></h4>

```php
abstract protected function getServices(): array;
```

Returns the adapters for the factory

<h4 id="factoryabstractfactory-init"><code>init()</code></h4>

```php
protected function init( array $services = [] ): void;
```

Initialize services/add new services

## Factory\Exception

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

<div class="api-tree">

- `\Exception`
- **`Phalcon\Factory\Exception`**

</div>

Source: https://docs.phalcon.io/5.17/api/phalcon_factory/index.mdx
