Einträge getaggt mit ‘PHP’

Test-Driven Bugfixing mit PHPUnit

geschrieben am 30.01.2010 von Stephan Hochdoerfer

Via diesem Beitrag von Jan Sorgalla bin ich auf das (relativ) neue Feature des Test-Driven Bugfixings aufmerksam geworden welches in PHPUnit seit Version 3.4.0 vorhanden ist. Out-of-the-box ist die Anbindung an Trac schon gegeben so dass dem Einsatz in unserer Development-Umgebung nichts entgegensteht, schließlich nutzen wir Trac seit 2005. Ich werde das Feature gleich mal in unsere Default-Framework-Konfiguration mitaufnehmen und bin gespannt was unsere Entwickler dazu sagen werden :)

Zugriff von PHP5 und Debian auf MSSQL Server – Teil 2

geschrieben am 06.01.2010 von Stephan Hochdoerfer

Als Alternative zur ODBC Verbindung in die Windows-Welt ist es möglich die MSSQL Extension für PHP nativ unter Linux zu kompilieren und einzubinden. Danne Lundqvist hat dazu in seinem Blog einen entsprechenden Artikel verfasst.

Zugriff von PHP5 und Debian auf MSSQL Server

geschrieben am 03.01.2010 von Stephan Hochdoerfer

In einem aktuell Projekt ist es notwendig dass unsere Anwendung mit einem MSSQL Server zu kommuniziert. Grundsätzlich natürlich kein Problem wenn wir die Möglichkeit hätten auf dem Server per PHP Skript einen direkten Zugriff zu erhalten um von dort aus die Daten in unsere Postgres Datenbank zu pushen. Allerdings haben die Systemadministratoren des Kunden naturgemäß etwas dagegen. Es bleibt also nur der Direktzugriff per unixODBC / FreeTDS von einem der Debian-Server auf dem unsere Anwendung läuft. unixODBC ist eine Open Source Implementation der in der Windows-Welt populären ODBC API. Bei FreeTDS handelt es sich um die freie Implementation des TDS Protokolls, welches unter anderem auch vom Microsoft SQL Server genutzt wird.
Den ganzen Beitrag lesen »

Custom Factories RFC für den PHP Kern

geschrieben am 22.11.2009 von Stephan Hochdoerfer

Dank Robert Lemke vom Typo3 Projekt gibt es seit einigen Tagen einen RFC für sog. Custom Factories für PHP. Die grundsätzliche Idee des RFC ist es via SPL die Objekterzeugung beeinflussen zu können, ähnlich wie es bsp. mit spl_autoload möglich ist eigene Klassenloader zu definieren. Er möchte damit Einschränkungen in Legacy Bibliotheken aufbrechen die es aufgrund von fest verdrahteten Abhängigkeiten nicht möglich machen eigene Komponenten innerhalb der Legacy Bibliothek zu verwenden. Im aufgeführten Beispiel wird dies gut anhand eines Logger-Beispiels aufgezeigt. Im Grunde halte ich die Idee für recht interessant. Ich denke viele Entwickler sind in der Vergangenheit über das Problem gestoßen dass sich Frameworks oder Bibliotheken von Drittanbietern an machen Stellen nicht optimal in die eigenen Anwendungsstrukturen einbinden lassen konnten bzw. es nur sehr umständlich möglich war eine Integration zu erreichen.

Etwas verwundert bin ich allerdings über die Beispiele mit der ObjectFactory, so schreibt er “If the mechanism of Dependency Injection is consequently used, this results in a lot of additional typing and many classes will need the ObjectFactory getting injected by the surrounding framework” . Dem kann ich leider nicht zustimmen. Das verwendete Framework sollte dem Entwickler alle Injection-Arbeiten abnehmen und statt der ObjectFactory die notwendigen Referenzen auf die real benötigen Klassen übergeben. Der Domaincode sollte m.E. so gut wie frei von Abhängigkeiten zu Frameworkklassen sein. Ich möchte weder in meinem Programmcode Objekte mit dem new Operator erzeugen noch abhängig zu Factories sein die das ganze für mich erledigen. Des weiteren halte ich es für extrem wichtig die Objektkonfiguration von der Implementierung zu trennen, denn nur so erreicht man eine maximal mögliche Wiederverwendung. Annotations im Programmcode oder das automatische Finden der Abhängigkeiten anhand von implementierten Interfaces scheint mir keine sinnvolle Umsetzung von DI zu sein.

XDebug mit mehreren Usern

geschrieben am 11.06.2009 von Stephan Hochdoerfer

Gefunden via planet-php.org: Derik hat in seinem Blog ein Howto veröffenlicht das erläutert via man via dbgproxy mit mehreren Usern gleichzeitig eine XDebug zum Remote-Debuggen nutzen kann. Die Möglichkeit war mir bislang nicht bekannt und von daher das Interesse groß das ganze einmal auszuprobieren. Den ganzen Beitrag lesen »