Jak nakonfigurovat extension ve vlastní extension (Kdyby/RabbitMq)
- Croc
- Člen | 270
Zdravím,
moc prosím o radu. Mám aplikaci, která se skládá z vlastních extension.
Ve dvou těchto extensions potřebuji použít Kdyby/RabbitMq.
Chtěl jsem to udělat tak, že bych měl v configu mojí extension definici
rabbitmq, protože veškerá definice, komunikace a zpracování probíhá
právě v té extension. Nicméně vůbec netuším, jak nakonfigurovat DI aby
to fungovalo. Koukal jsem na hromadu návodů a příkladů, ale vůbec mi to
nepomohlo. Obdobný příklad jsem nikde nenašel.
agenda.neon – config pro extension
services:
//----
- Agenda\Api\ExchangeService
extensions:
rabbitmq: Kdyby\RabbitMq\DI\RabbitMqExtension
rabbitmq:
connection: %rabbitmq_connection%
producers:
agendaExchangeApi:
exchange: {name: 'agenda-exchange-api', type: direct}
queue: {name: 'agenda-exchange-api'}
contentType: application/json
consumers:
agendaExchangeApi:
connection: default
exchange: {name: 'agenda-exchange-api', type: direct}
queue: {name: 'agenda-exchange-api'}
tags: [kdyby.console.command]
qos: {prefetchSize: 0, prefetchCount: 10, global: false}
callback: [@\Agenda\Api\ExchangeService, process]
AgendaExtension.php
namespace Agenda\DI;
use Nette;
/**
* Class AgendaExtension
* @package Agenda\DI
*/
class AgendaExtension extends Nette\DI\CompilerExtension {
// private $defaults = [
// 'tempFilesDir' => 'temp_files',
// 'agendaFilesDir' => 'agenda_files'
// ];
/**
*
*/
public function loadConfiguration() {
// $this->validateConfig($this->defaults);
parent::loadConfiguration();
$config = $this->loadFromFile(__DIR__ . '/agenda.neon');
$config = Nette\DI\Helpers::expand($config, $this->validateConfig($this->config));
Nette\DI\Compiler::loadDefinitions(
$this->getContainerBuilder(),
$config['services'],
$this->name
);
}
}
aktuálně dostávám tuto chybu (což je jasné, protože o rabbitmq extension neví):
Service '85' (type of Agenda\Agenda\AgendaModel): Service of type Kdyby\RabbitMq\Connection needed by $bunny in __construct() not found. Did you register it in configuration file?
Moc tedy prosím alespoň o nasměrování. Už jsem na tomto zaseknutý dlouho :-(
- Petr Parolek
- Člen | 455
Ahoj, řeším stejnou situaci a nevím si rady též. Našel jsem třídu https://github.com/…xtension.php , ale vůbev nevím, jak použít. Poradíte mi prosím někdo? Vyřešil jsi to nakonec nějak @Croc ?