DIC in Subscribern benutzen

Ich bastel gerade an einem Plugin und wundere mich warum ich nicht Standardmäßg auf die DI Container zugreifen kann. Ich möchte gerne einige DB Queries einsetzen ($this->container->get(‚dbal_connection‘)) - mit    übergebe ich ja eigentlich in meiner services.xml eine Instanz des DI Containers.

Jemand ne Idee?

Warum möchtest Du auf den ganzen DI-Container zugreifen wenn Du nur die Dbal_Connection benötigst? 

Folgendes snippet sollte funktionieren:
services.xml

EventSubscriber.php
 

connection = $connection;
    }

    public static function getSubscribedEvents()
    {
        return ['Enlight_Controller_Action_PostDispatchSecure_Frontend' => 'onPostDispatchSecure'];
    }

    public function onPostDispatchSecure(\Enlight_Event_EventArgs $args)
    {
        $articles = $this->connection->fetchAll('SELECT * FROM s_articles LIMIT 10');
    }
}

 

Ist nicht getestet, sollte aber passen :slight_smile:
 

1 Like

@Thomas schrieb:

Warum möchtest Du auf den ganzen DI-Container zugreifen wenn Du nur die Dbal_Connection benötigst? 

Folgendes snippet sollte funktionieren:
services.xml

http://symfony.com/schema/dic/services";
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”;
xsi:schemaLocation=“http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd”>;

EventSubscriber.php
 

connection = $connection;
}

public static function getSubscribedEvents()
{
return [‘Enlight_Controller_Action_PostDispatchSecure_Frontend’ => ‘onPostDispatchSecure’];
}

public function onPostDispatchSecure(\Enlight_Event_EventArgs $args)
{
$articles = $this->connection->fetchAll(‘SELECT * FROM s_articles LIMIT 10’);
}
}

 

Ist nicht getestet, sollte aber passen :)
 

Danke dir! 

1 Like