Cli presenter a volíbí metod z jihého presenteru

MW
Člen | 615
+
0
-

Zdravím a prosím o pomoc.

Mám namespace CliModule, kde mám vytvořený CliPresenter, který volám cronem.

Pokud potřebuji sáhnout do modelu aplikace pro data, nemám problém, protože mám všechny modely registrované jako služby.

Nyní však potřebuji sáhnout a zavolat metodu z presenteru, který se náchází v samostatném namespace.

Snažím se přes DI a kontruktor, ale hlasí mě, že nemůže najít contruktor.

Jak mohu prosím nejlépe zavolat metodu jiného presenteru z CliPresenteru?

CliPresenter:

public function __construct(\IkonisModule\InvoicesModel $invoicesModel,
  			    \IkonisModule\CuzkPresenter $cuzkPresenter,
			    $year = null) {

	$this->invoicesModel = $invoicesModel;
	$this->cuzkPresenter = $cuzkPresenter;
	$this->year = $year;
    }
....

a pak $this->cuzkPresenter->handleMailToClient($message['id']);

dostávám chybu, které sice rozumím, ale nejde to nějak jinak?

Service 'application.1': Service of type IkonisModule\CuzkPresenter needed by CliModule\CliPresenter::__construct() not found. Did you register it in configuration file?

Moc díky!

David Matějka
Moderator | 6445
+
+3
-

presun logiku z presenteru do samotne sluzby a tu vyzaduj jak v cli presenteru tak v tom druhem

MW
Člen | 615
+
0
-

Toho jsem se bal :D , ale předpokládám, že to jinak nejde…

Moc díky

David Matějka
Moderator | 6445
+
+2
-

Toho jsem se bal :D ,

jako ses bal, ze to budes muset napsat spravne a ne to hackovat? :)

ale předpokládám, že to jinak nejde…

slo by to, ale hackovanim…

MW
Člen | 615
+
0
-

Jasně, že to chci mít správně, ale v tom presneteru toho je moc a napojuje se na něj hodně šablon.. tak se mě do toho teď nechtělo :)

No a kdybych to chtěl hackout? To jistě jen ze zvědavosti :)

Editoval MW (6. 6. 2017 13:09)

CZechBoY
Člen | 3608
+
0
-

Tak potom je refactoring na místě, ne? :)
Možná ten presenter by šel rozdělit na víc částí a udělat z toho úplně samostatnej modul? Pokud pracuje s hodně šablonama tak se mi nezdá, že by to dělalo jen jednu věc.

MW
Člen | 615
+
0
-

No je to provázané, protože to sahá do služeb 3.strany, mailuje a loguje..
No ale asi to tak dopadne, ze to cele předělám…

Ale stejně mě to nedá, lze si přes nějakou čuňárnu sáhnout na ten presenter?

Díky

MW
Člen | 615
+
0
-

Ještě jsem našel, že od verze 2.1 lze presenter registrovat jako službu.. Ale to mě nejde.. Presenter to nenalezne.

Bylo to odstraněno? Mám verzi 2.3.1.

Díky

David Matějka
Moderator | 6445
+
0
-

nesnaz se to hackovat, napis to spravne

MW
Člen | 615
+
0
-

Já koukám do dokumentace.

Nějak se mě nechce věřit, že by to nešlo i jinak :)

David Matějka
Moderator | 6445
+
0
-

presenter jako sluzba slouzi kdyz potrebujes presenteru pri registraci predat nejaky zavislosti/parametry. ne k tomu, aby se presenter vyzadoval nekde jinde.

MW
Člen | 615
+
0
-

Ahaa.. :)

Prozraď mě prosím ještě ten hack.. potřebuji to nutně aspoň jako dočasné řešení …

Moc díky :)

David Matějka
Moderator | 6445
+
0
-

presne ani nevim, jak by ten hack mel vypadat – asi nejak vytvorit presenter pres presenter factory, ale musel bych to zkoumat vic.

jako mensi hack by bylo presunout ten kod do traity

MW
Člen | 615
+
0
-

Traita by bylo asi to samé, jako z toho udělat službu, co? :) Ušetřil bych si asi jen config ..

Já jsem spíše hledal, jestli se tam nedá probojovat přes nějaký context nebo jiný kontejner…

Asi na to zapomenu a předělám to :)

Moc díky

David Matějka
Moderator | 6445
+
0
-

tak s traitou nemusis resit refactoring, zavislosti atd.