Lebensdauer von Objekten in PHP

Seit Version 5 ist PHP nun vollständig objektorientiert. Dies war bisher nur bedingt möglich, da das Überladen von Klassen oder Datenkappselung nicht möglich war.

Nach diesen Änderungen stellt sich für viele nun die Frage, wie lange denn diese Objekte existieren.

Dabei gilt das selbe wie bei Java. Objekte existieren, solange bis ihr Gültigkeitsbereich (auch Scope genannt) verlassen wird.

Hat man vor, Objekte auch nach einem neuen Seitenaufruf noch benutzen zu können, so kann man diese als Sessionvariable speichern. Dabei ist wichtig, dass die PHP-Datei, welche den Code der Klasse enthält eingebunden wird, bevor ein Objekt aus einer Session geholt wird. Ansonsten gehen die Daten des Objekts verloren

Wer zur Performanceoptimierung nicht jedes mal auf die Datenbank zugreifen will, um Objekte von Klassen zu erzeugen, dem sei gesagt, dass das Abspeichern der Objekte in einer Session keine geeignete Alternative ist. Denn das Zurückholen der Daten aus der Session dauert länger als das Zugrefein auf die Datenbank. Das liegt daran, dass auch die Daten der Session irgendwo in Datei-Form gespeicher sein müssen, und erst wieder deserialisiert werden müssen

Veröffentlicht unter PHP | Verschlagwortet mit , , , , , | Hinterlasse einen Kommentar

SVN Hooks

SVN hat die Möglichkeit bei beliebigen Aktionen des Nutzers wie beispielsweise einem Commit Programme automatisch zu starten. Im Falle des Pre-Commit-Hooks würde dies vor der Commit-Funktion geschehen.

In den SVN-Tortoise Settings kann man Hooks einrichten. Dazu wählt man die Art des Hooks aus, in welchem Verzeichnis er gültig sein soll, und welches Programm gestartet werden soll. Hier empfiehlt es sich, eine Batch-Datei oder ähnliches zu starten, welche die Aufrufe des gewünschten Programmes beinhaltet.

Wer einen solchen Hook auf mehreren Rechnern installieren muss, für den empfiehlt es sich, den Eintrag automatisch vornehmen zu lassen. Die Hooks werden in der Registry abgespeichert und können somit automatisch per Script eingegeben werden. Einzige Problematik stellt hier die Kodierung des Registry-Schlüssels dar, der Zeilenumbrüche beinhaltet.

Achtung: Wer den Pre-Commit-Hook dazu verwendet, Dateien zu formatieren, der muss damit rechnen, dass man danach nicht mehr nachvollziehen kann, welche Dateien sich beim Commit geändert haben, da sich durch die Formatierung alle Zeilen ändern

Veröffentlicht unter SVN | Verschlagwortet mit , , , , | Hinterlasse einen Kommentar

JMeter und JSF (ViewState)

Beim simulieren von JSF-Seitenaufrufe mit JMeter muss man beachten, dass im generierten HTML-Code ein Hidden-Field ist, welches ein ViewState beinhaltet. Der Inhalt dieses Feldes muss bei jedem Request an den Server mitgesendet werden.

Um diese ViewState zu ermitteln benötigt man einen Regular Expression Extractor. Dieser kann anhand eines Regulären Ausdrucks im Quellcode der vorherigen Seite nach diesem versteckten Feld suchen und die ViewState ermitteln.

Der reguläre Ausdruck sollte in etwa so aussehen:

Als Reference-Name gibt man den Namen an, mit dem man die ViewState später abrufen möchte. Das funktioniert wie bei Variablen so: ${ViewState}

Veröffentlicht unter JMeter | Verschlagwortet mit , , , , , , , , , | Hinterlasse einen Kommentar