Nefungujici Kdyby events (nezavola se listener)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Raek
- Člen | 5
Ahoj,
začínám s kdyby events a mám s tím trochu problém. Pročetl jsem co nejvíce forum (už se to tu řešilo), ale bohužel se mi stále novolá listener. Nevím už co dělám špatně. Poradil by mi někdo, je to opravdu basic příklad, jsem si toho vědom.
Config
<?php
extensions:
events: Kdyby\Events\DI\EventsExtension
events:
subscribers:
- App\OrderMailerListener
services:
- App\OrderProcess
?>
Třída OrderProcess
<?php
namespace App;
use Nette;
class OrderProcess extends Nette\Object
{
public $onSuccess = array();
public function __construct()
{
}
public function process($value)
{
$this->onSuccess($value);
}
}
?>
Presenter
<?php
namespace App\Presenters;
use Nette;
class TestPresenter extends BasePresenter
{
/** @var \App\OrderProcess @inject */
public $OrderProcess;
public function renderDefault()
{
$process = $this->OrderProcess;
$process->process("Test1");
}
}
?>
Listener
<?php
namespace App;
use Nette,
Nette\Mail\IMailer;
class OrderMailerListener extends Nette\Object implements \Kdyby\Events\Subscriber
{
public function onSuccess()
{
echo "Test";
}
public function getSubscribedEvents()
{
return array('OrderProcess::onSuccess' => 'onSuccess');
}
}
?>
Neporadí někdo? Zkusil jsem co šlo a nic mi bohužel nepomohlo, je mi jasný, že to bude nějaká „drobnost“, ale nemohu ten problém najít. Předem děkuji za váš čas.
- David Matějka
- Moderator | 6445
Musis to uvest vcetne namespace:
return array('App\OrderProcess::onSuccess' => 'onSuccess');