PHP Sammelthread: Zend Framework und alles was dazugehört

Du hast recht, ich hab im anderen Controller eine neue Instanz aufgerufen, und jetzt funktionierts^^

Danke dir, nach den letzten Karnevalsnächten habe ich glaube ich etwas Gehirnschmalz eingebüßt^^
 
[Zend_Layout] Variablen zuweisung per Object

Hey Leute,

habe gerade ein sehr seltsamen Problem bei der Variablenzuweisung als Object.

Mein bissheriger Code war:
PHP:
$objLayout->user->id = 'deine UserID';
so hat er es mir aber nicht angenommen und nu habe ich folgendes:
PHP:
$objLayout->user = (object) array('id' => 'deine UserID');
so nimmt er es an.

Mein Code im layout.phtml:
PHP:
<?php echo $this->layout()->user->id; ?>
*habe es mal als PHP formatieren lassen.

Als Hintergrund der Geschichte, ich mag nicht auf nochmal auf Array oder sowas prüfen da ich im Kopf habe das Zend_Auth beim lesen ein Object zurück gibt. Dazu folgender kompletter Code:
PHP:
		if(!($objLayout->user = Zend_Auth::getInstance()->getIdentity())) {
			$objLayout->user->id = 'deine UserID';
		}

Nun meine Frage ob das so korrekt ist, obwohl es sinnlos doppelt gemoppelt ist :-?
 
Zuletzt bearbeitet:
[Zend_Session_Namespace] Daten speicherung

So Leute ich hab ein Problem mit der Datenspeicherung im Session_Namespace, bei folgendem Szenario:

Master_Controller:
PHP:
	public function preDispatch()
	{
		$this->_helper->getSession('User')->ref = $this->_request->getParam('ref');
	}
Index_Controller(erbt vom Master):
PHP:
	public function indexAction()
	{
		Zend_Debug::dump($this->_helper->getSession('User'));
	}
Helper:
PHP:
	public function getSession($strNameSpace = 'Default')
	{
		if(!in_array($strNameSpace, $this->_arrSpace)) {
			$this->_arrSpace[$strNameSpace] = new Zend_Session_Namespace($strNameSpace);
			if($this->_arrSpace[$strNameSpace]->isLocked()){
				$this->_arrSpace[$strNameSpace]->unLock();
			}		
		}

		return $this->_arrSpace[$strNameSpace];
	}
Das ganze sollte vom Code her genauso wie folgende Schreibweise sein:
PHP:
$_user = new Zend_Session_Namespace('User');
$user->ref = $this->_request->getParam('ref');
Allerdings bekomme ich damit nur folgende Ausgabe:
object(Zend_Session_Namespace)#119 (1) {
["_namespace:protected"] => string(4) "User"
}

Sieht einer von euch den Fehler? Danke schonmal @all.
 
*push* *push* Man man man, ist der Thread weit unten8O

Kleine Formalitätsfrage:
Wo pack ich so ganz globale Funktionen rein, wie Kontobuchungen, Designteile usw. und wie binde ich die ein?:roll:
 
Sieht einer von euch den Fehler? Danke schonmal @all.
In der zweiten Zeile hast du den Unterstrich nach dem Variablen-Schlüsselsymbol vergessen. ;)
(auch wenn die Antwort arg spät kommt... sorry :-?)

Wo pack ich so ganz globale Funktionen rein, wie Kontobuchungen, Designteile usw. und wie binde ich die ein?:roll:
Designteile - dafür gibts den Zend_View und ggf. Templates einer anderen Template-Engine via Viewhelper. Oder verstehe ich dich grad falsch? ;)

Kontobuchungen würde ich persönlich als Funktion in die Klasse implementieren, die einen einzelnen User repräsentiert.

Globale Funktion ohne direkten Zusammenhang zu einander bzw. einer konkreten anderen Klasse würde ich als statische Funktionen in eine extra Klasse (resp. mehrere extra Klassen) packen.
 
Designteile - dafür gibts den Zend_View und ggf. Templates einer anderen Template-Engine via Viewhelper. Oder verstehe ich dich grad falsch? ;)

Nein, danke, genau das wars.
Ich gurk die ganze Zeit auf der Seite herum, aber immer nur bei den vordefinierten Helpern:ugly:
Aber weiterführend: Muss das jetzt wirklich alles in eine extra Datei, oder kann ich das irgendwie zusammenführen?8O

Kontobuchungen würde ich persönlich als Funktion in die Klasse implementieren, die einen einzelnen User repräsentiert.

Sooo weit bin ich noch nicht einmal, hab mich eben mal wieder drangesetzt:-?

Globale Funktion ohne direkten Zusammenhang zu einander bzw. einer konkreten anderen Klasse würde ich als statische Funktionen in eine extra Klasse (resp. mehrere extra Klassen) packen.

Und wo würde ich die entsprechende Klasse dann einbinden? Direkt im Bootstrapper?:-?

Vorerst mal danke, ist mir eine Ehre;)
 
Nein, danke, genau das wars.
Ich gurk die ganze Zeit auf der Seite herum, aber immer nur bei den vordefinierten Helpern:ugly:
Aber weiterführend: Muss das jetzt wirklich alles in eine extra Datei, oder kann ich das irgendwie zusammenführen?8O
du musst schon spezifizieren, was du meinst ;)
View-Script, View-Helper, Layout-Placeholder usw usw


Und wo würde ich die entsprechende Klasse dann einbinden? Direkt im Bootstrapper?:-?
normale Klassen der Applikationslogik? Da die nichts mit dem MVC-Prozess zu tun haben, packst du die nicht in den Bootstrapper sondern lädst sie einfach wenn du sie mal brauchst.

Edit: Es gibt brandaktuell von Ralf Eggert ein Buch über das Zend Framework, nach dem was ich gehört habe, soll das wohl eine totale Kaufempfehlung sein.
 
Nein, danke, genau das wars.
Ich gurk die ganze Zeit auf der Seite herum, aber immer nur bei den vordefinierten Helpern:ugly:
Aber weiterführend: Muss das jetzt wirklich alles in eine extra Datei, oder kann ich das irgendwie zusammenführen?8O

Ich hoffe ich hab deine Frage verstanden ;) [edit: wohl nicht ;)]
Du hast in einem Zend_Controller_Action eine Methode xyAction() - sofern der viewRenderer nicht deaktiviert ist, wird dann automatisch das Template xy.suffix (das Suffix kannst du im Zend_View-Objekt afaik festlegen) eingebunden.
Ansonsten kannst du das auch machen, indem du die Methode render(tplname) des Zend_View-Objekts aufrufst.

Und wo würde ich die entsprechende Klasse dann einbinden? Direkt im Bootstrapper?:-?

Ich würde sie in einen Library-Ordner stecken, dem PEAR-Namensschema folgend, und dann per autoload-Funktion bei Bedarf einbinden.
 
Ich hab jetzt ein paar View-Helper definiert, funktioniert auch wunderbar, nur ich denke, wenn das jetzt immer mehr werden, ist das ein "zu großer" Aufwand, immer wieder File erstellen, Klasse definieren, Funktion reinschreiben. Viel besser wäre es doch, alles in eine einzige Datei zu packen und nur unterschiedliche Funktionen aufzurufen.

@Buch: Wo kriegt man denn sowas? Ich bezweifle, dass ich sowas im lokalen Buchhandel finde:ugly:
 
Ich hab jetzt ein paar View-Helper definiert, funktioniert auch wunderbar, nur ich denke, wenn das jetzt immer mehr werden, ist das ein "zu großer" Aufwand, immer wieder File erstellen, Klasse definieren, Funktion reinschreiben. Viel besser wäre es doch, alles in eine einzige Datei zu packen und nur unterschiedliche Funktionen aufzurufen.

Es ist ein wenig mehr Aufwand, ja. Aber auch einiges mehr Ordnung ;)

@Buch: Wo kriegt man denn sowas? Ich bezweifle, dass ich sowas im lokalen Buchhandel finde:ugly:

Internet? ;) Da gibt es so große Buchseiten. Eine bekannte fängt mit 'Amaz' an.
 
Zuletzt bearbeitet:
Viel besser wäre es doch, alles in eine einzige Datei zu packen und nur unterschiedliche Funktionen aufzurufen.
Das wirst du spätestens, wenn das Skript mal richtig umfangreich wird, anders sehen - glaub mir. Und ansonsten empfehle ich dir einen gescheiten Editor, ich benutze eclipse, dann ist das halb so wild mit dem Dateien erstellen. ;)

@Buch: Wo kriegt man denn sowas? Ich bezweifle, dass ich sowas im lokalen Buchhandel finde:ugly:
Im lokalen Buchhandel wirds meistens schwierig - auch, wenn die das sicherlich bestellen könnten. Direkt beziehen könntest du es beispielsweise bei Amazon, wie Chrissel schon sagte - einfach nach "Ralf Eggert" suchenhttps://www.amazon.de/Das-Zend-Fram...=sr_1_1?ie=UTF8&s=books&qid=1239664153&sr=8-1 ... ;)
 
Das wirst du spätestens, wenn das Skript mal richtig umfangreich wird, anders sehen - glaub mir. Und ansonsten empfehle ich dir einen gescheiten Editor, ich benutze eclipse, dann ist das halb so wild mit dem Dateien erstellen. ;)

Ach, für mich ist das kein Problem, die Dateien zu erstellen, mir gings um die Handlichkeit bei evtl. Änderungen anderer:biggrin:

Im lokalen Buchhandel wirds meistens schwierig - auch, wenn die das sicherlich bestellen könnten. Direkt beziehen könntest du es beispielsweise bei Amazon, wie Chrissel schon sagte - einfach nach "Ralf Eggert" suchen ... ;)

Jap, mal sehen, ich bevorzuge aber wahrscheinlich eher den lokalen Buchhandel:-?
 
Ich hab jetzt ein paar View-Helper definiert, funktioniert auch wunderbar, nur ich denke, wenn das jetzt immer mehr werden, ist das ein "zu großer" Aufwand, immer wieder File erstellen, Klasse definieren, Funktion reinschreiben.
du schreibst alles in view-helper?
hmm, irgendwie klingt das komisch, normalerweise schreibt man den großteil in die view-skripts, view-helper nutzt man nur selten.
geh nochmal das quickstart-tutorial durch, da wirst du dann auch sehen, dass man die ausgaben eigentlich in view-skripts schreibt.
 
Da ich selber ein wenig mehr mit dem Zend Framework drauf haben möchte habe ich mir dann mal das hier genannte Buch bestellt ;)
Mal schauen in wie viele Jahrtausende ich so weit gelesen habe um hier ein wenig drüber berichten zu können :biggrin:
 
du schreibst alles in view-helper?
hmm, irgendwie klingt das komisch, normalerweise schreibt man den großteil in die view-skripts, view-helper nutzt man nur selten.
geh nochmal das quickstart-tutorial durch, da wirst du dann auch sehen, dass man die ausgaben eigentlich in view-skripts schreibt.

Mir gehts doch nur drum, mir bei den alltäglichen Layoutaufgaben wie Erzeugen von Divs rund um den Content das Leben zu erleichtern, so bewandert bin ich doch in Zend nicht, dass ich weiß, wie ich was lösen kann/könnte. Allerdings funktioniert das mit den View-Helpern ziemlich gut:mrgreen:
 
achso, für contentboxen usw werden view-helper wahrscheinlich keine schlechte sache sein.

Dann bin ich ja beruhigt:mrgreen:

Ich hab mir jetzt mein Sessionmanagment zusammengeschrieben (, das letztendlich doch mit einem Controller statt Plugin geschrieben ist) und läuft auch soweit ganz okay.

Diese Hilfe hier ist immer unglaublich, ohne euch hätte ich eh schon wieder aufgegeben:roll:

Aber jetzt geh ich auch mal langsam:sleep:

EDIT:
Neuer Tag, neues Problem :)():
Definition von Ressourcen: Wie definiere ich für Zend_Acl eine Controller-Klasse als Ressource, oder ist das gar nicht so vorgesehen? WIe wäre das dann zu lösen?
Ui, jetzt erst gesehen, dass Ressourcen virtuelle Konstrukte sind :mrgreen:

@Buch: Schon so gut wie bestellt ;) Zusammen mit dem Buch von Carsten Möhrke
 
Zuletzt bearbeitet: