MVC "Globale" Funktionen
Naps
- php
Hi,
ich hätte da wieder eine Frage zu der ich ein paar Lösungsansätze bräuchte...
Wie macht man es am besten wenn man von allen Controllern auf eine bestimmte Funktion zugreifen will?
Typisches beispiel um zu checken ob der User eingeloggt ist? In diesem Fall hab ich schon öfter gesehen, dass einfach eine statische Funktion verwendet wird.
Aber was ist, wenn diese Funktion auch auf bestimmtes Model zugreifen muss?
MfG Naps
Tach!
Wie macht man es am besten wenn man von allen Controllern auf eine bestimmte Funktion zugreifen will?
MVC zu verwenden bedeutet nicht, dass du nur noch dieses Muster bedienen darfst und nichts anderes mehr. Wenn du eine Klasse oder sonstwas für eine bestimmte Aufgabe brauchst, dann erstell dir diese(s).
Typisches beispiel um zu checken ob der User eingeloggt ist? In diesem Fall hab ich schon öfter gesehen, dass einfach eine statische Funktion verwendet wird. Aber was ist, wenn diese Funktion auch auf bestimmtes Model zugreifen muss?
Dann muss sie das tun. Am besten ist es dabei, um zu große Abhängigkeiten zu vermeiden, diese benötigten Teile als Parameter zu übergeben.
dedlfix.
Hallo,
Wie macht man es am besten wenn man von allen Controllern auf eine bestimmte Funktion zugreifen will?
Typisches beispiel um zu checken ob der User eingeloggt ist? In diesem Fall hab ich schon öfter gesehen, dass einfach eine statische Funktion verwendet wird.
Authentication sollte ein von Controllern getrennte Klasse bzw. ein Dienst sein. Was nicht heißt, dass in Controllern nicht einfach auf den User zugegriffen werden kann. Einige Authentication-Lösungen bieten dazu Controller-Instanzmethoden wie currentUser und loggedIn an, die dann mit dem Authentication-Dienst sprechen.
Aber was ist, wenn diese Funktion auch auf bestimmtes Model zugreifen muss?
Wie dedlfix sage: die stressfreieste Lösung ist, es zu übergeben. Wenn sowohl dieses Model als auch der User-Authentication-Dienst im Kontext der Instanz liegen, kann man einfach eine kleine Methode schreiben, die beide zusammenbringt.
Um welches Model handelt es sich denn?
Fürs Archiv, der Kontext dieser Diskussion:
https://forum.selfhtml.org/?t=217169&m=1491064
Mathias
Um welches Model handelt es sich denn?
Wie meinst du das genau?
MfG Naps
Aber was ist, wenn diese Funktion auch auf bestimmtes Model zugreifen muss?
MVC: Die Funktion ist eine Methode, alle Eigenschaften des Models stehen der Methode zur Verfügung.
hi,
Hi,
ich hätte da wieder eine Frage zu der ich ein paar Lösungsansätze bräuchte...
Wie macht man es am besten wenn man von allen Controllern auf eine bestimmte Funktion zugreifen will?
Typisches beispiel um zu checken ob der User eingeloggt ist? In diesem Fall hab ich schon öfter gesehen, dass einfach eine statische Funktion verwendet wird.
Eigene Klasse? http://framework.zend.com/manual/2.0/en/modules/zend.authentication.intro.html
mfg
tami
Hi,
Aber was ist, wenn diese Funktion auch auf bestimmtes Model zugreifen muss?
Möglicherweise suchst Du auch sowas: Multiple Models in MVC View
D.h., zwischen Models gibt es Abhängigkeiten, ich bin gerade dabei, aufzuschreiben, wie das mein Framework regelt.
PS: Die Login-Daten selbst sind nicht persistent. Diese auf ein Model abzubilden, würde bedeuten, dass eine Policy über den gesamten Code geschleift wird, was möglicherweise viel Code-Redundanzen mit sich bringt.
Alternative: Eine Policy wird vom MVC getrennt und die Berechtigungen werden vorher geprüft, noch bevor überhaupt ein View erzeugt wird.
Möglicherweise suchst Du auch sowas: Multiple Models in MVC View
Danke, schau ich mir mal genauer an.
MfG Naps