Skip to content

Phalcon di

NOTE

All classes are prefixed with Phalcon

Di\AbstractInjectionAware

Abstract Source on GitHub

This abstract class offers common access to the DI in a class

Uses Phalcon\Di\Traits\InjectionAwareTrait · stdClass

Di\Di

Class Source on GitHub

Phalcon\Di\Di is a component that implements Dependency Injection/Service Location of services, and it's itself a container for them.

Since Phalcon is highly decoupled, Phalcon\Di\Di is essential to integrate the different components of the framework. The developer can also use this component to inject dependencies and manage global instances of the different classes used in the application.

Basically, this component implements the Inversion of Control pattern. Applying this, the objects do not receive their dependencies using setters or constructors, but requesting a service dependency injector. This reduces the overall complexity, since there is only one way to get the required dependencies within a component.

Additionally, this pattern increases testability in the code, thus making it less prone to errors.

use Phalcon\Di\Di;
use Phalcon\Http\Request;

$di = new Di();

// Using a string definition
$di->set("request", Request::class, true);

// Using an anonymous function
$di->setShared(
    "request",
    function () {
        return new Request();
    }
);

$request = $di->getRequest();

Uses Phalcon\Di\Exception · Phalcon\Di\Exception\ServiceResolutionException · Phalcon\Di\Exceptions\AliasAlreadyInUse · Phalcon\Di\Exceptions\AliasNameMustBeString · Phalcon\Di\Exceptions\CircularAliasReference · Phalcon\Di\Traits\DiArrayAccessTrait · Phalcon\Di\Traits\DiEventsTrait · Phalcon\Di\Traits\DiExceptionsTrait · Phalcon\Di\Traits\DiInstanceTrait · Phalcon\Di\Traits\DiLoadTrait · Phalcon\Events\ManagerInterface · Phalcon\Events\Traits\EventsAwareTrait · stdClass

Method Summary

public __call(string $method,array $arguments = []) Magic method to get or set services using setters/getters public __construct() Phalcon\Di\Di constructor public attempt(string $name,mixed $definition,bool $shared = false) Attempts to register a service in the services container public mixed get(string $name,array|null $parameters = null) Resolves the service based on its configuration public string getAlias( string $name ) Return the alias based on a passed key. Returns an empty string if public object|null getDefault() Return the latest DI created public ManagerInterface|null getInternalEventsManager() Returns the internal event manager public mixed getRaw( string $name ) Returns a service definition without resolving public ServiceInterface getService( string $name ) Returns a Phalcon\Di\Service instance public array getServices() Return the services registered in the DI public mixed getShared(string $name,array|null $parameters = null) Resolves a service, the resolved service is stored in the DI, subsequent public bool has( string $name ) Check whether the DI contains a service by a name public bool hasShared( string $name ) Check whether the DI has a cached shared instance for a service name. public void register( ServiceProviderInterface $provider ) Registers a service provider. public void remove( string $name ) Removes a service in the services container public void removeShared( string $name ) Removes the cached shared instance for a service, leaving the service public void reset() Resets the internal default DI public ServiceInterface set(string $name,mixed $definition,bool $shared = false) Registers a service in the services container public self setAlias(string $name,array|string $aliases) Sets one or more aliases to the given name. public void setDefault( object $container ) Set a default dependency injection container to be obtained into static public void setInternalEventsManager( ManagerInterface $eventsManager ) Sets the internal event manager public ServiceInterface setService(string $name,ServiceInterface $rawDefinition) Sets a service using a raw Phalcon\Di\Service definition public ServiceInterface setShared(string $name,mixed $definition) Registers an "always shared" service in the services container

Properties

protected array<string, string> $aliases = [] List of service aliases
protected object|null $defaultContainer = null Latest DI build
protected ServiceInterface[] $services = [] List of registered services
protected array $sharedInstances = [] List of shared instances

Methods

Public · 23

__call()

public function __call(
    string $method,
    array $arguments = []
);

Magic method to get or set services using setters/getters

__construct()

public function __construct();

Phalcon\Di\Di constructor

attempt()

public function attempt(
    string $name,
    mixed $definition,
    bool $shared = false
);

Attempts to register a service in the services container Only is successful if a service hasn't been registered previously with the same name

get()

public function get(
    string $name,
    array|null $parameters = null
): mixed;

Resolves the service based on its configuration

getAlias()

public function getAlias( string $name ): string;

Return the alias based on a passed key. Returns an empty string if the alias does not exist

getDefault()

public static function getDefault(): object|null;

Return the latest DI created

getInternalEventsManager()

public function getInternalEventsManager(): ManagerInterface|null;

Returns the internal event manager

getRaw()

public function getRaw( string $name ): mixed;

Returns a service definition without resolving

getService()

public function getService( string $name ): ServiceInterface;

Returns a Phalcon\Di\Service instance

getServices()

public function getServices(): array;

Return the services registered in the DI

getShared()

public function getShared(
    string $name,
    array|null $parameters = null
): mixed;

Resolves a service, the resolved service is stored in the DI, subsequent requests for this service will return the same instance

has()

public function has( string $name ): bool;

Check whether the DI contains a service by a name

hasShared()

public function hasShared( string $name ): bool;

Check whether the DI has a cached shared instance for a service name.

Unlike has(), which reports on the service definition registry, this method reports only on the resolved-instance cache populated by getShared().

register()

public function register( ServiceProviderInterface $provider ): void;

Registers a service provider.

use Phalcon\Di\DiInterface;
use Phalcon\Di\ServiceProviderInterface;

class SomeServiceProvider implements ServiceProviderInterface
{
    public function register(DiInterface $di)
    {
        $di->setShared(
            'service',
            function () {
                // ...
            }
        );
    }
}

remove()

public function remove( string $name ): void;

Removes a service in the services container It also removes any shared instance created for the service

removeShared()

public function removeShared( string $name ): void;

Removes the cached shared instance for a service, leaving the service definition intact so the next getShared() call rebuilds it.

reset()

public static function reset(): void;

Resets the internal default DI

set()

public function set(
    string $name,
    mixed $definition,
    bool $shared = false
): ServiceInterface;

Registers a service in the services container

setAlias()

public function setAlias(
    string $name,
    array|string $aliases
): self;

Sets one or more aliases to the given name.

setDefault()

public static function setDefault( object $container ): void;

Set a default dependency injection container to be obtained into static methods

setInternalEventsManager()

public function setInternalEventsManager( ManagerInterface $eventsManager ): void;

Sets the internal event manager

setService()

public function setService(
    string $name,
    ServiceInterface $rawDefinition
): ServiceInterface;

Sets a service using a raw Phalcon\Di\Service definition

setShared()

public function setShared(
    string $name,
    mixed $definition
): ServiceInterface;

Registers an "always shared" service in the services container

Di\DiInterface

Interface Source on GitHub

Interface for Phalcon\Di

  • \ArrayAccess
    • Phalcon\Di\DiInterface

Uses ArrayAccess

Method Summary

public attempt(string $name,mixed $definition,bool $shared = false) Attempts to register a service in the services container public mixed get(string $name,array|null $parameters = null) Resolves the service based on its configuration public object|null getDefault() Return the last DI created public mixed getRaw( string $name ) Returns a service definition without resolving public ServiceInterface getService( string $name ) Returns the corresponding Phalcon\Di\Service instance for a service public array getServices() Return the services registered in the DI public mixed getShared(string $name,array|null $parameters = null) Returns a shared service based on their configuration public bool has( string $name ) Check whether the DI contains a service by a name public bool hasShared( string $name ) Check whether the DI has a cached shared instance for a service name. public void remove( string $name ) Removes a service in the services container public void removeShared( string $name ) Removes the cached shared instance for a service, leaving the service public void reset() Resets the internal default DI public ServiceInterface set(string $name,mixed $definition,bool $shared = false) Registers a service in the services container public void setDefault( object $container ) Set a default dependency injection container to be obtained into static public ServiceInterface setService(string $name,ServiceInterface $rawDefinition) Sets a service using a raw Phalcon\Di\Service definition public ServiceInterface setShared(string $name,mixed $definition) Registers an "always shared" service in the services container

Methods

Public · 16

attempt()

public function attempt(
    string $name,
    mixed $definition,
    bool $shared = false
);

Attempts to register a service in the services container Only is successful if a service hasn't been registered previously with the same name

get()

public function get(
    string $name,
    array|null $parameters = null
): mixed;

Resolves the service based on its configuration

getDefault()

public static function getDefault(): object|null;

Return the last DI created

getRaw()

public function getRaw( string $name ): mixed;

Returns a service definition without resolving

getService()

public function getService( string $name ): ServiceInterface;

Returns the corresponding Phalcon\Di\Service instance for a service

getServices()

public function getServices(): array;

Return the services registered in the DI

getShared()

public function getShared(
    string $name,
    array|null $parameters = null
): mixed;

Returns a shared service based on their configuration

has()

public function has( string $name ): bool;

Check whether the DI contains a service by a name

hasShared()

public function hasShared( string $name ): bool;

Check whether the DI has a cached shared instance for a service name.

Unlike has(), which reports on the service definition registry, this method reports only on the resolved-instance cache populated by getShared(). A service can be registered (has() returns true) without yet having a shared instance (hasShared() returns false).

remove()

public function remove( string $name ): void;

Removes a service in the services container

removeShared()

public function removeShared( string $name ): void;

Removes the cached shared instance for a service, leaving the service definition intact so the next getShared() call rebuilds it.

Useful in fork-based multi-process setups where a child inherits the parent's resource handle (e.g. a database connection) and needs to discard the cached instance without re-registering the service.

reset()

public static function reset(): void;

Resets the internal default DI

set()

public function set(
    string $name,
    mixed $definition,
    bool $shared = false
): ServiceInterface;

Registers a service in the services container

setDefault()

public static function setDefault( object $container ): void;

Set a default dependency injection container to be obtained into static methods

setService()

public function setService(
    string $name,
    ServiceInterface $rawDefinition
): ServiceInterface;

Sets a service using a raw Phalcon\Di\Service definition

setShared()

public function setShared(
    string $name,
    mixed $definition
): ServiceInterface;

Registers an "always shared" service in the services container

Di\Exception

Class Source on GitHub

Exceptions thrown in Phalcon\Di will use this class

Di\Exception\ServiceResolutionException

Class Source on GitHub

Phalcon\Di\Exception\ServiceResolutionException

Uses Phalcon\Di\Exception

Di\Exceptions\AliasAlreadyInUse

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $alias );

Di\Exceptions\AliasNameMustBeString

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\ArgumentTypeRequired

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\CallArgumentsMustBeArray

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\CircularAliasReference

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $name );

Di\Exceptions\ContainerRequired

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\DefinitionMustBeArrayForRead

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\DefinitionMustBeArrayForUpdate

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\MethodCallMustBeArray

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\MethodNameRequired

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\MissingClassNameParameter

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\MissingParameterKey

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct(
    string $key,
    int $position
);

Di\Exceptions\PropertyInjectionRequiresInstance

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\PropertyMustBeArray

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\PropertyNameRequired

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\PropertyValueRequired

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\Exceptions\ServiceCannotBeResolved

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( string $name );

Di\Exceptions\SetterInjectionRequiresInstance

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\SetterParametersMustBeArray

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Di\Exceptions\UnknownServiceType

Class Source on GitHub

Uses Phalcon\Di\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct( int $position );

Di\FactoryDefault

Class Source on GitHub

This is a variant of the standard Phalcon\Di\Di. By default it automatically registers all the services provided by the framework. Thanks to this, the developer does not need to register each service individually providing a full stack framework

@property Annotations $annotations @property AnnotationsMemory $annotationsMemory @property AssetsManager $assets @property Crypt $crypt @property Cookies $cookies @property Dispatcher $dispatcher @property Escaper $escaper @property EventsManager $eventsManager @property Factory $modelsEventFactory @property Direct $flash @property Session $flashSession @property Filter $filter @property HelperFactory $helper @property ModelsManager $modelsManager @property MetadataManager $modelsMetadata @property QueueFactory $queueFactory @property Request $request @property Response $response @property Router $router @property Security $security @property Settings $settings @property SerializerFactory $storageSerializer @property TagFactory $tag @property TransactionManager $transactionManager @property Url $url

Uses Phalcon\Annotations\Adapter\Memory · Phalcon\Annotations\Annotations · Phalcon\Assets\Manager · Phalcon\Db\Event\Factory · Phalcon\Encryption\Crypt · Phalcon\Encryption\Security · Phalcon\Events\Manager · Phalcon\Filter\Filter · Phalcon\Filter\FilterFactory · Phalcon\Flash\Direct · Phalcon\Flash\Session · Phalcon\Html\Escaper · Phalcon\Html\TagFactory · Phalcon\Http\Request · Phalcon\Http\Response · Phalcon\Http\Response\Cookies · Phalcon\Mvc\Dispatcher · Phalcon\Mvc\Model\Manager · Phalcon\Mvc\Model\MetaData\Memory · Phalcon\Mvc\Model\Transaction\Manager · Phalcon\Mvc\Router · Phalcon\Mvc\Url · Phalcon\Queue\QueueFactory · Phalcon\Storage\SerializerFactory · Phalcon\Support\HelperFactory · Phalcon\Support\Settings

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Phalcon\Di\FactoryDefault constructor

Di\FactoryDefault\Cli

Class Source on GitHub

Phalcon\Di\FactoryDefault\Cli

This is a variant of the standard Phalcon\Di. By default, it automatically registers all the services provided by the framework. Thanks to this, the developer does not need to register each service individually. This class is specially suitable for CLI applications

Uses Phalcon\Annotations\Adapter\Memory · Phalcon\Annotations\Annotations · Phalcon\Cli\Dispatcher · Phalcon\Cli\Router · Phalcon\Di\FactoryDefault · Phalcon\Di\Service · Phalcon\Encryption\Security · Phalcon\Events\Manager · Phalcon\Filter\FilterFactory · Phalcon\Html\Escaper · Phalcon\Html\TagFactory · Phalcon\Mvc\Model\Manager · Phalcon\Mvc\Model\MetaData\Memory · Phalcon\Mvc\Model\Transaction\Manager · Phalcon\Queue\QueueFactory · Phalcon\Storage\SerializerFactory · Phalcon\Support\HelperFactory · Phalcon\Support\Settings

Method Summary

Methods

Public · 1

__construct()

public function __construct();

Phalcon\Di\FactoryDefault\Cli constructor

Di\InitializationAwareInterface

Interface Source on GitHub

Interface for components that have initialize()

  • Phalcon\Di\InitializationAwareInterface

Method Summary

Methods

Public · 1

initialize()

public function initialize(): void;

Di\Injectable

Abstract Source on GitHub

This class allows to access services in the services container by just only accessing a public property with the same name of a registered service

@property AnnotationsAdapterInterface|AnnotationsMemory $annotations @property AssetsManager $assets @property DiInterface|null $container @property DbAdapterInterface $db @property DiInterface|null $di @property Cookies|CookiesInterface $cookies @property Crypt|CryptInterface $crypt @property EventsManager|EventsManagerInterface $eventsManager @property Escaper|EscaperInterface $escaper @property Direct $flash @property Session $flashSession @property Filter|FilterInterface $filter @property HelperFactory $helper @property Bag|BagInterface $persistent @property Request|RequestInterface $request @property Response|ResponseInterface $response @property Router|RouterInterface $router @property Security $security @property SessionManager $session @property Settings $settings @property Url|UrlInterface $url

// * @property Manager|ManagerInterface $modelsManager // * @property AnnotationsMemory|MetadataInterface $modelsMetadata // * @property ManagerInterface $transactionManager // * @property View|ViewInterface $view

Uses Phalcon\Annotations\Adapter\AdapterInterface · Phalcon\Annotations\Adapter\Memory · Phalcon\Assets\Manager · Phalcon\Db\Adapter\AdapterInterface · Phalcon\Di\Traits\InjectionAwareTrait · Phalcon\Encryption\Crypt · Phalcon\Encryption\Crypt\CryptInterface · Phalcon\Encryption\Security · Phalcon\Events\Manager · Phalcon\Events\ManagerInterface · Phalcon\Filter\Filter · Phalcon\Filter\FilterInterface · Phalcon\Flash\Direct · Phalcon\Flash\Session · Phalcon\Html\Escaper · Phalcon\Html\Escaper\EscaperInterface · Phalcon\Http\Request · Phalcon\Http\RequestInterface · Phalcon\Http\Response · Phalcon\Http\ResponseInterface · Phalcon\Http\Response\Cookies · Phalcon\Http\Response\CookiesInterface · Phalcon\Mvc\Model\Manager · Phalcon\Mvc\Model\ManagerInterface · Phalcon\Mvc\Router · Phalcon\Mvc\RouterInterface · Phalcon\Mvc\Url · Phalcon\Mvc\Url\UrlInterface · Phalcon\Session\Bag · Phalcon\Session\BagInterface · Phalcon\Session\ManagerInterface · Phalcon\Support\HelperFactory · Phalcon\Support\Settings · stdClass

Method Summary

Methods

Public · 3

__get()

public function __get( string $propertyName );

Magic method __get

__isset()

public function __isset( string $name ): bool;

Magic method __isset

getDI()

public function getDI(): DiInterface|null;

Returns the internal dependency injector

Di\InjectionAwareInterface

Interface Source on GitHub

This interface must be implemented in those classes that uses internally the Phalcon\Di that creates them

  • Phalcon\Di\InjectionAwareInterface

Method Summary

Methods

Public · 2

getDI()

public function getDI(): DiInterface|null;

Returns the internal dependency injector

setDI()

public function setDI( DiInterface $container ): void;

Sets the dependency injector

Di\Service

Class Source on GitHub

Represents individually a service in the services container

$service = new \Phalcon\Di\Service(
    "request",
    \Phalcon\Http\Request::class
);

$request = service->resolve();

@property array $definition @property bool $resolved @property bool $shared @property mixed $sharedInstance

Uses Closure · Phalcon\Di\Exception\ServiceResolutionException · Phalcon\Di\Exceptions\DefinitionMustBeArrayForRead · Phalcon\Di\Exceptions\DefinitionMustBeArrayForUpdate · Phalcon\Di\Service\Builder · Phalcon\Di\Traits\DiInstanceTrait

Method Summary

Properties

protected mixed $definition
protected bool $resolved = false
protected bool $shared = false
protected mixed $sharedInstance

Methods

Public · 10

__construct()

final public function __construct(
    mixed $definition,
    bool $shared = false
);

Service constructor.

getDefinition()

public function getDefinition(): mixed;

Returns the service definition

getParameter()

public function getParameter( int $position ): mixed;

Returns a parameter in a specific position

isResolved()

public function isResolved(): bool;

Returns true if the service was resolved

isShared()

public function isShared(): bool;

Check whether the service is shared or not

resolve()

public function resolve(
    array|null $parameters = null,
    DiInterface|null $container = null
): mixed;

Resolves the service

setDefinition()

public function setDefinition( mixed $definition ): void;

Set the service definition

setParameter()

public function setParameter(
    int $position,
    array $parameter
): ServiceInterface;

Changes a parameter in the definition without resolve the service

setShared()

public function setShared( bool $shared ): void;

Sets if the service is shared or not

setSharedInstance()

public function setSharedInstance( mixed $sharedInstance ): void;

Sets/Resets the shared instance related to the service

Di\ServiceInterface

Interface Source on GitHub

Represents a service in the services container

  • Phalcon\Di\ServiceInterface

Method Summary

Methods

Public · 8

getDefinition()

public function getDefinition(): mixed;

Returns the service definition

getParameter()

public function getParameter( int $position ): mixed;

Returns a parameter in a specific position

isResolved()

public function isResolved(): bool;

Returns true if the service was resolved

isShared()

public function isShared(): bool;

Check whether the service is shared or not

resolve()

public function resolve(
    array|null $parameters = null,
    DiInterface|null $container = null
): mixed;

Resolves the service

setDefinition()

public function setDefinition( mixed $definition );

Set the service definition

setParameter()

public function setParameter(
    int $position,
    array $parameter
): ServiceInterface;

Changes a parameter in the definition without resolve the service

setShared()

public function setShared( bool $shared );

Sets if the service is shared or not

Di\ServiceProviderInterface

Interface Source on GitHub

Should be implemented by service providers, or such components, which register a service in the service container.

namespace Acme;

use Phalcon\Di\DiInterface;
use Phalcon\Di\ServiceProviderInterface;

class SomeServiceProvider implements ServiceProviderInterface
{
    public function register(DiInterface $di)
    {
        $di->setShared(
            'service',
            function () {
                // ...
            }
        );
    }
}
  • Phalcon\Di\ServiceProviderInterface

Method Summary

Methods

Public · 1

register()

public function register( DiInterface $container ): void;

Registers a service provider.

Di\Service\Builder

Class Source on GitHub

This class builds instances based on complex definitions

  • Phalcon\Di\Service\Builder

Uses Phalcon\Di\DiInterface · Phalcon\Di\Exception · Phalcon\Di\Traits\DiExceptionsTrait · Phalcon\Di\Traits\DiInstanceTrait

Method Summary

Methods

Public · 1

build()

public function build(
    DiInterface $container,
    array $definition,
    array|null $parameters = null
);

Builds a service using a complex service definition

Di\Traits\DiArrayAccessTrait

Trait Source on GitHub

  • Phalcon\Di\Traits\DiArrayAccessTrait

Uses Phalcon\Di\Exception · Phalcon\Di\InjectionAwareInterface · Phalcon\Di\ServiceInterface · ReturnTypeWillChange

Used by Phalcon\Di\Di

Method Summary

Methods

Public · 9

getShared()

abstract public function getShared(
    string $name,
    array|null $parameters = null
);

Resolves a service, the resolved service is stored in the DI, subsequent requests for this service will return the same instance

has()

abstract public function has( string $name ): bool;

Check whether the DI contains a service by a name

offsetExists()

public function offsetExists( mixed $name ): bool;

Check if a service is registered using the array syntax

offsetGet()

public function offsetGet( mixed $name );

Allows to obtain a shared service using the array syntax

var_dump($di["request"]);

offsetSet()

public function offsetSet(
    mixed $name,
    mixed $definition
): void;

Allows to register a shared service using the array syntax

$di["request"] = new \Phalcon\Http\Request();

offsetUnset()

public function offsetUnset( mixed $name ): void;

Removes a service from the services container using the array syntax

remove()

abstract public function remove( string $name ): void;

Removes a service in the services container It also removes any shared instance created for the service

set()

abstract public function set(
    string $name,
    mixed $definition,
    bool $shared = false
): ServiceInterface;

Registers a service in the services container

setShared()

public function setShared(
    string $name,
    mixed $definition
): ServiceInterface;

Registers an "always shared" service in the services container

Di\Traits\DiEventsTrait

Trait Source on GitHub

Trait DiEventsTrait

  • Phalcon\Di\Traits\DiEventsTrait

Uses Phalcon\Events\ManagerInterface

Used by Phalcon\Di\Di

Di\Traits\DiExceptionsTrait

Trait Source on GitHub

Trait DiExceptionsTrait

@package Phalcon\Di\Traits

  • Phalcon\Di\Traits\DiExceptionsTrait

Uses Phalcon\Di\Exception · Phalcon\Di\Exceptions\MissingParameterKey

Used by Phalcon\Di\Di · Phalcon\Di\Service\Builder

Di\Traits\DiInstanceTrait

Trait Source on GitHub

Trait DiInstanceTrait

@package Phalcon\Di\Traits

  • Phalcon\Di\Traits\DiInstanceTrait

Used by Phalcon\Di\Di · Phalcon\Di\Service · Phalcon\Di\Service\Builder

Di\Traits\DiLoadTrait

Trait Source on GitHub

Trait DiLoadTrait

@package Phalcon\Di\Traits

  • Phalcon\Di\Traits\DiLoadTrait

Uses Phalcon\Config\Adapter\Php · Phalcon\Config\Adapter\Yaml · Phalcon\Config\ConfigInterface

Used by Phalcon\Di\Di

Method Summary

Methods

Public · 2

loadFromPhp()

public function loadFromPhp( string $filePath ): void;

Loads services from a php config file.

$di->loadFromPhp("path/services.php");

And the services can be specified in the file as:

return [
     'myComponent' => [
         'className' => '\Acme\Components\MyComponent',
         'shared' => true,
     ],
     'group' => [
         'className' => '\Acme\Group',
         'arguments' => [
             [
                 'type' => 'service',
                 'service' => 'myComponent',
             ],
         ],
     ],
     'user' => [
         'className' => '\Acme\User',
     ],
];

@link https://docs.phalcon.io/en/latest/di

loadFromYaml()

public function loadFromYaml(
    string $filePath,
    array|null $callbacks = null
): void;

Loads services from a yaml file.

$di->loadFromYaml(
    "path/services.yaml",
    [
        "!approot" => function ($value) {
            return dirname(__DIR__) . $value;
        }
    ]
);

And the services can be specified in the file as:

myComponent:
    className: \Acme\Components\MyComponent
    shared: true

group:
    className: \Acme\Group
    arguments:
        - type: service
          name: myComponent

user:
   className: \Acme\User

@link https://docs.phalcon.io/latest/di

Protected · 1

loadFromConfig()

protected function loadFromConfig( ConfigInterface $config ): void;

Loads services from a Config object.

Di\Traits\InjectionAwareTrait

Trait Source on GitHub

This abstract class offers common access to the DI in a class

Class AbstractInjectionAware

@package Phalcon\Di

@property object $container

  • Phalcon\Di\Traits\InjectionAwareTrait

Uses Phalcon\Di\DiInterface

Used by Phalcon\Assets\Manager · Phalcon\Di\AbstractInjectionAware · Phalcon\Di\Injectable · Phalcon\Flash\AbstractFlash · Phalcon\Mvc\Model\Manager · Phalcon\Mvc\Model\Query · Phalcon\Mvc\View\Engine\Volt\Compiler · Phalcon\Session\Bag · Phalcon\Session\Manager

Method Summary

Properties

protected object|null $container = null Dependency Injector

Methods

Public · 2

getDI()

public function getDI(): DiInterface|null;

Returns the internal dependency injector

setDI()

public function setDI( DiInterface $container ): void;

Sets the dependency injector

Protected · 1

checkContainer()

protected function checkContainer(
    string $exceptionClass,
    string $message,
    int $code = 0
): void;