Skip to content

Finder should use closure in DI config.  #3

@SamMousa

Description

@SamMousa

Current code:

            Yii::$container->setSingleton(Finder::className(), [
                'userQuery'    => Yii::$container->get('UserQuery'),
                'profileQuery' => Yii::$container->get('ProfileQuery'),
                'tokenQuery'   => Yii::$container->get('TokenQuery'),
                'accountQuery' => Yii::$container->get('AccountQuery'),
            ]);

This is not lazy; all those query objects will get instantiated regardless of whether any of them are used.
Instead use a closure:

Yii::$container->setSingleton(Finder::className(), function($container, $params, $config) {
    return new Finder([
        'userQuery'    => $container->get('UserQuery'),
        'profileQuery' => $container->get('ProfileQuery'),
        'tokenQuery'   => $container->get('TokenQuery'),
        'accountQuery' => $container->get('AccountQuery'),
    ]);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions