Re: [TYPO3-german] Factories in Dependency Injection

2016-06-28 Diskussionsfäden Helmut Hummel

Hallo Tim!

Tim Jordans wrote:


Gibt es eine gute Möglichkeit diese Factory für die Dependency Injection 
bekannt zu geben.


Nein. Das kann das auto wiring von TYPO3 nicht.

Mein Vorschlag wäre den Code so zu bauen, dass Du die Dependency 
Injection manuell (idealer Weise an einer zentralen Stelle in Deinem 
Code) machst.


Kind regards,
Helmut

--
Helmut Hummel
Release Manager TYPO3 6.0
TYPO3 CMS Active Contributor, TYPO3 Security Team Member

TYPO3  inspiring people to share!
Get involved: typo3.org
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-28 Diskussionsfäden Tim Jordans

Wieso erweitern?
Ich habe meine Klasse und möchte nun fremde injecten.
Da diese fremden Klassen einen Konstruktor mit Parametern besitzen geht dies 
nicht einfach per @inject.

Vielen Dank und Grüße
Tim
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-27 Diskussionsfäden Dr. Dieter Porth

Hallo Tim,

du willst also fremden Code erweitern.

Am 27.06.2016 um 17:51 schrieb Tim Jordans:
Ich möchte nicht Klassen von mir injecten, sondern welche auf die ich 
keinen Einfluß habe.
Das dort im Konstruktor Strings benötigt werden, ist somit (leider) 
gegeben. 


Dann sind je nach Extension und Alter drei mögliche Verfahrensweisen von 
TYPO3 vorgesehen denkbar.

a) Signal-Slot-Injection (modern)
b) Hooks (früher
c) xclass (sehr alt - selbst nicht mit gearbeitet
https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Xclasses/Index.html)


Mit besten Grüßen
 Dieter
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-27 Diskussionsfäden Tim Jordans

Hallo Dieter,

ich habe nicht vor den inject-Mechanismus zu erweitern. Eigentlich suche ich nach dem 
"Wie in TYPO3-DI lösen".

Ich möchte nicht Klassen von mir injecten, sondern welche auf die ich keinen 
Einfluß habe.
Das dort im Konstruktor Strings benötigt werden, ist somit (leider) gegeben.

Ein Beispiel ist z. B. ein PDO Objekt für den Zugriff auf eine Datenbank, die 
nicht von TYPO3 verwaltet wird.

Die Übergabestrings ändern sich nicht bei jedem inject-Aufruf.

Viele Dank und Grüße
Tim
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-27 Diskussionsfäden Dr. Dieter Porth

Hallo Tim,

Weiß ich nicht. Ich habe keine Ahnung, wie man den Injection-Mechanismus 
von TYPO3 erweitert Ich glaube auch nicht, dass es dafür eine Anleitung 
gibt. Ich bin bislang jedenfalls über keine gestolpert.


Es ist mir nicht klar, warum du die String wirklich als 
Übergabe-Parameter brauchst. Dazu hast du dich bisher leider nicht 
geäußert. Außer deinen Willen diesen deinen Weg gehen zu wollen/müssen, 
kann ich bislang keinen Grund erkennen.


Ändern sich die Übergabestring bei jedem Injection Aufruf, dann ist 
deine Klasse bzw. dein Object-Konzept vermutlich unvorteilhaft 
definiert. Sollen die Strings nur pflegbar, also jederzeit durch einen 
Redakteur Änderbar sein, könntest du die String zum Beispiel einfach 
global bei den Konstanten im TypoScript hinterlegen.


Kurzum. Ich verstehe dein Problem nicht.

Mit besten Grüßen

Dieter



Am 27.06.2016 um 09:34 schrieb Tim Jordans:

Hallo Dieter,

danke für deine Antwort.

Mein Problem ist, dass durch @inject eine Klasse erwartet wird, deren 
Konstruktor keine Argumente benötigt.

Nun habe ich eine solche Klasse und möchte Sie trotzdem injecten.
Deshalb würde ich gerne eine Factory "dazwischen schalten".

Wie bringe ich dies nun Typo3 bei?

Vielen Dank und Grüße
Tim
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-27 Diskussionsfäden Tim Jordans

Was ich vergessen habe zu erwähnen, dass es sich bei den Argumenten des 
Konstruktors um Strings handelt.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-27 Diskussionsfäden Tim Jordans

Hallo Dieter,

danke für deine Antwort.

Mein Problem ist, dass durch @inject eine Klasse erwartet wird, deren 
Konstruktor keine Argumente benötigt.
Nun habe ich eine solche Klasse und möchte Sie trotzdem injecten.
Deshalb würde ich gerne eine Factory "dazwischen schalten".

Wie bringe ich dies nun Typo3 bei?

Vielen Dank und Grüße
Tim
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] Factories in Dependency Injection

2016-06-26 Diskussionsfäden Dr. Dieter Porth

Hallo Tim,

Konfigurationangaben sind keine Parameter und können/müssen innerhalb 
des Constructors der Klasse A bestimmt werden - auch ohne dezidierte 
Übergabe.


Parameter sind Angaben, die erst zur Laufzeit konstruiert und bestimmt 
werden. Dieser Fall liegt, wenn ich deine Beschreibung richtig gelesen 
habe, augenscheinlich nicht vor.


Was ist dein Problem? Ich verstehe es nicht.

Mit besten Grüßen

Dieter




Am 27.06.2016 um 04:23 schrieb Tim Jordans:

Hallo zusammen,

aktuell nutze ich für meine Dependency Injection die inject-Annotation.
Damit gebe ich die zu injizierende Klasse an.
Es gibt jedoch Klassen die durch eine Factory erzeugt werden sollen.
Gibt es eine gute Möglichkeit diese Factory für die Dependency 
Injection bekannt zu geben.


Beispiel:
Ich möchte eine Klasse A injecten die im Konstruktor mehrere Parameter 
(kann nicht verändert werden) erwartet.

Die Parameter werden durch die Konfiguration gesetzt.
Meine Idee ist es, eine Factory zu schreiben die die Konfiguration 
injiziert bekommt und die Klasse A dadurch erstellen kann.
Eine Klasse Z die Klasse A benutzen möchte, soll diese injiziert 
bekommen (bestenfalls per @inject).


Wie kann ich dies in TYPO3 realisieren?
Über Vorschläge würde ich mich sehr freuen.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

[TYPO3-german] Factories in Dependency Injection

2016-06-26 Diskussionsfäden Tim Jordans

Hallo zusammen,

aktuell nutze ich für meine Dependency Injection die inject-Annotation.
Damit gebe ich die zu injizierende Klasse an.
Es gibt jedoch Klassen die durch eine Factory erzeugt werden sollen.
Gibt es eine gute Möglichkeit diese Factory für die Dependency Injection 
bekannt zu geben.

Beispiel:
Ich möchte eine Klasse A injecten die im Konstruktor mehrere Parameter (kann 
nicht verändert werden) erwartet.
Die Parameter werden durch die Konfiguration gesetzt.
Meine Idee ist es, eine Factory zu schreiben die die Konfiguration injiziert 
bekommt und die Klasse A dadurch erstellen kann.
Eine Klasse Z die Klasse A benutzen möchte, soll diese injiziert bekommen 
(bestenfalls per @inject).

Wie kann ich dies in TYPO3 realisieren?
Über Vorschläge würde ich mich sehr freuen.
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german