Freitag, 25. Februar 2005
PHP Resources bei IBM developerWorks
Geschrieben von Harald Lapp in PHP um 21:21
IBM hat auf seiner Seite developerWorks, auf der viele äußerst interessante Artikel für Entwickler und Informationen zu Open Source Projekten zu finden sind, einen eigenen Bereich für PHP eingerichtet.
PHP Maguma Studio wird Open Source
Geschrieben von Harald Lapp in Open Source Tools, PHP um 12:05
Laut einem Bericht des Online News Services golem.de, plant der Software Hersteller Maguma seine PHP Enwicklungsumgebung Maguma Studio demnächst als Open Source freizugeben. Maguma Studio ist der Vorgänger der Maguma Workbench, die im Moment in der Version 2.2 vorliegt.
Donnerstag, 24. Februar 2005
PHP, Apache und FastCGI
Geschrieben von Harald Lapp in PHP um 10:44
Timo Gmell hat eine Anleitung zum Installieren und Konfigurieren von PHP4 bzw. PHP5 in Verbindung mit FastCGI veröffentlicht.
Warum FastCGI?
Die Installation von PHP Mittels mod_php bringt zwar im Vergleich zu PHP-CGI erhebliche Geschwindigkeitsvorteile mit sich, hat aber auch mehrere Nachteile. So werden PHP Scripte mit dem Apache User ausgeführt wodurch verhindert wird, daß in über den FTP Benutzer angelegte Dateien und Verzeichnisse, die keine Schreibberechtigung für Andere Benutzer besitzen, geschrieben wird. Ein weiterer gravierender Nachteil und eine Sicherheitslücke ist, daß u.U. ein virtueller Host die Dateien eines anderen virtuellen Hosts lesen kann.
Mod_fastcgi führt PHP Prozesse mit dem User aus, der im jeweiligen virtuellen Host von Apache konfiguriert ist. Außerdem wird beim Start eine beliebige Anzahl von PHP-FCGI Prozessen geladen, die fest im Speicher verbleiben und nicht bei jedem neuen Request neu gestartet werden müssen. Die Konfiguration von PHP über FastCGI kann für einen virtuellen Host individuell eingestellt werden. So könnte man beispielsweise pro Host eine eigene php.ini Konfiguration oder sogar ein eigenes PHP Binary verwenden.
Warum FastCGI?
Die Installation von PHP Mittels mod_php bringt zwar im Vergleich zu PHP-CGI erhebliche Geschwindigkeitsvorteile mit sich, hat aber auch mehrere Nachteile. So werden PHP Scripte mit dem Apache User ausgeführt wodurch verhindert wird, daß in über den FTP Benutzer angelegte Dateien und Verzeichnisse, die keine Schreibberechtigung für Andere Benutzer besitzen, geschrieben wird. Ein weiterer gravierender Nachteil und eine Sicherheitslücke ist, daß u.U. ein virtueller Host die Dateien eines anderen virtuellen Hosts lesen kann.
Mod_fastcgi führt PHP Prozesse mit dem User aus, der im jeweiligen virtuellen Host von Apache konfiguriert ist. Außerdem wird beim Start eine beliebige Anzahl von PHP-FCGI Prozessen geladen, die fest im Speicher verbleiben und nicht bei jedem neuen Request neu gestartet werden müssen. Die Konfiguration von PHP über FastCGI kann für einen virtuellen Host individuell eingestellt werden. So könnte man beispielsweise pro Host eine eigene php.ini Konfiguration oder sogar ein eigenes PHP Binary verwenden.
PHP Abstraktion einer Abstraktion
Geschrieben von Harald Lapp in PHP um 10:07
ActiveDBLib ist eine Abstraktionsschicht für Datenbankabstraktionsschichten...(!) ActiveDBLib möchte ein einheitliches Interface für Datenbankabstraktionsschichten zur Verfügung stellen. Im Moment werden die Schichten ADODB, Pear:DB und Metabase unterstützt.
Ich frage mich gerade, wie sinnvoll der Einsatz einer solchen weiteren Schicht ist. Wenn jetzt jemand ein ähnliches Projekt startet, können wir vielleicht bald mit einer Abstraktionsschicht der Abstraktionsschichten der Datenbankabstraktionsschichten rechnen.
Ich glaube auf diese Art von "Flexibilität" verzichte ich dann doch lieber (und wende mich wiederCreole zu).
Ich frage mich gerade, wie sinnvoll der Einsatz einer solchen weiteren Schicht ist. Wenn jetzt jemand ein ähnliches Projekt startet, können wir vielleicht bald mit einer Abstraktionsschicht der Abstraktionsschichten der Datenbankabstraktionsschichten rechnen.
Ich glaube auf diese Art von "Flexibilität" verzichte ich dann doch lieber (und wende mich wiederCreole zu).
Donnerstag, 17. Februar 2005
Javascript Datenbank und SQL Interpreter
Geschrieben von Harald Lapp in Javascript um 09:50
Jsdb ist eine kleine komplett in JavaScript geschriebene und in Standard Browsern ausführbare Datenbank mit einfachem SQL Interpreter. Eine in jsdb angelegte Datenbank existiert nur im Speicher des Web Clients. Die Datenbank ist sehr rudimentär gehalten, der SQL Interpreter unterstützt einfache SELECT Abfragen mit multiplen Joins, Bedingungen sowie Sortierung der Datensätze. Zum Manipulieren der Datenbank findet sich lediglich die INSERT Anweisung.
Nett - leider ist die Web Seite fast ausschließlich in catalan bzw. spanisch verfaßt - das gilt auch für die Kommentare im Quellcode. Da das Script aber ohnehin sehr einfach gehalten ist, ist die Funktionsweise mehr oder weniger selbsterklärend.
Nett - leider ist die Web Seite fast ausschließlich in catalan bzw. spanisch verfaßt - das gilt auch für die Kommentare im Quellcode. Da das Script aber ohnehin sehr einfach gehalten ist, ist die Funktionsweise mehr oder weniger selbsterklärend.
Mittwoch, 16. Februar 2005
PHP in MySQL ausführen
Geschrieben von Harald Lapp in PHP um 13:59
Ich habe mir gerade die Web Seite von David Sklar, Autor mehrerer PHP Fachbücher und Gründer und Betreiber der PHP Funktionssammlung px.sklar.com, näher angesehen und bin dabei auf folgendes Projekt gestoßen:
Myphp ist eine Benutzerdefinierte Funktion (UDF) für MySQL, die PHP Code ausführen kann. Nach der Installation von myphp lässt sich über die Funktion 'php' PHP Code direkt in einer MySQL Datenbankabfrage ausführen, wobei die Funktion wie alle anderen in MySQL eingebauten Funktionen angewendet wird. Somit kann der zu interpretierende Code entweder direkt als Funktionsparameter angegeben werden oder aber durch Übergabe des Namens einer Tabellenspalte direkt aus einer Tabelle gelesen werden.
Nett!
Myphp ist eine Benutzerdefinierte Funktion (UDF) für MySQL, die PHP Code ausführen kann. Nach der Installation von myphp lässt sich über die Funktion 'php' PHP Code direkt in einer MySQL Datenbankabfrage ausführen, wobei die Funktion wie alle anderen in MySQL eingebauten Funktionen angewendet wird. Somit kann der zu interpretierende Code entweder direkt als Funktionsparameter angegeben werden oder aber durch Übergabe des Namens einer Tabellenspalte direkt aus einer Tabelle gelesen werden.
Nett!
PHP Magazine 02.2005
Geschrieben von Harald Lapp in PHP um 11:08
Abonennten hatten gestern bereits die neue Ausgabe des internationalen PHP Magazins in ihrem Briefkasten. Besonders erwähnenswert sind sicherlich die Artikel zu drei der Siegerprojekten des PHP5 Coding Contest von Zend, die man sehr gut auch als einführende Tutorials in die Thematik und Arbeitsweise des jeweiligen Projektes ansehen kann:
- Prado, ein objekt orientiertes, komponenten- und ereignisbasiertes Framework über das ich an anderer Stelle (hier und hier) schon berichtet habe.
- MyObjects stellt Werkzeuge zur Entwicklung von Datenbankschemas und der Generierung von Klassen für MySQL In Verbindung mit PHP bereit. MyObjects bietet ein komfortables webbasiertes Frontend zum schnellen und automatisierten Generieren von Datenbankschemas und den daraus resultierenden Klassen bereit.
- Hive ist eine Art Application Server für komponenten- und ereignisbasierte Web Anwendungen.
Dienstag, 15. Februar 2005
Firefox Plugins für Web Entwickler
Geschrieben von Harald Lapp in Firefox, Programmierung um 14:33
Es gibt eine ganze Reihe für Web Entwickler äußerst nützlicher Plugins und Add-ons für den Browser Firefox bzw. Mozilla.
- Die Web Developer Toolbar von Chris Pederick fügt dem Browser eine komplette Toolbar mit Funktionen für HTML und Web Entwickler hinzu. Die Toolbar bietet funktionen zum markieren von HTML Elementen, Anzeigen von Elementattributen, Tools zum Testen von Formularen und vieles andere mehr.
- HTML Validator erweitert den Browser um ein Prüfwerkzeug für HTML Seiten. Die Erweiterung gibt in der Statusleiste des Browsers die Anzahl der Fehler und Warnungen der entsprechenden HTML Seite aus. Öffnet man das Fenster zur Ansicht des Quellcodes einer HTML Seite, erhält man zusätzlich eine Übersicht sowie Details der Fehler und Unstimmigkeiten der Seite.
- Venkman ist ein kompletter Javascript Debugger, der ursprünglich für Mozilla entwickelt wurde, aber auch unter Firefox lauffähig ist. Venkman dürfte eines der komplexesten Add-ons für den Browser sein und demonstriert gleichzeitig eindrucksvoll die Möglichkeiten Mozilla basierter Browser und Anwendungen. Venkman ist ein vollständiger Debugger mit der Möglichkeit zum setzen von Breakpoints, Überwachung von Aurufen und Inhalten von Variablen und Objekten. Da Venkman eine sehr komplexe Applikation mit unzähligen Funktionen ist, möchte ich an dieser Stelle auch auf das hervorragende Tutorial "Learning the Javascript Debugger Venkman" von Svend Tofte verweisen.
- Live HTTP Headers schließlich ist eine Erweiterung mit der es möglich ist, die Header eines Seitenaufrufs zu inspizieren. So ist es möglich auf einfachste Art und Weise festzustellen, welche Daten bei dem Aufruf einer Web Seite zwischen dem Browser und dem Server über den HTTP Header ausgetauscht werden. Dies ist zum Debuggen von Web Applikationen und Web Formularen äußerst nützlich. Wenn man nur schnell mal die übertragenen HTTP Header betrachten möchte und keine Lust hat das Ganze über eine zwar professionelle aber für den schnellen Test auch etwas umständlichere Proxy basierte Lösung wie den HTTP monitor Charles zu lösen, ist man mit live HTTP headers durchaus gut bedient.
PHP Entwicklung mit jEdit
Geschrieben von Harald Lapp in PHP um 11:55
Als ich mir vor gut einem Jahr meinen ersten Mac kaufte, machte ich mich auf die Suche nach einer brauchbaren Entwicklungsumgebung für PHP - hat man unter Linux die Qual der Wahl, gestaltete sich die Suche für eine unter OSX lauffähige Software viel schwieriger. Nachdem ich eine Weile mit Eclipse arbeitete, die als Entwicklungsumgebung für Java zwar ausgezeichnet ist, für PHP aber zu komplex und auf meinem Powerbook außerdem auch etwas träge ist, stieß ich schließlich auf die Java Applikation jedit, die sich auf Grund der guten Integration von Java in Mac OSX fast wie eine native Anwendung anfühlt.
Jedit ist eine ausgereifte Entwicklungsumgebung, die seit vielen Jahren aktiv entwickelt wird. Jedit ist dank seiner Plugin Architektur hervorragend erweiterbar und individuell konfigurierbar. Der Plugin Manager erlaubt das komfortable Installieren von vielen Plugins. Natürlich bietet jedit Syntax Highlightning für viele populäre und auch weniger populärer Programmiersprachen und unterstützt selbstverständlich auch automatisches Einrücken sowie das Einfalten von Blöcken. Mittlerweile möchte ich auf jedit nicht mehr verzichten und verwende es auch an meinem Arbeitsplatz unter Linux.
Als weiterführenden Lesestoff kann ich den auf der Seite sitepoint.com erschienenen Artikel "Use jedit to edit your PHP" sehr empfehlen.
Jedit ist eine ausgereifte Entwicklungsumgebung, die seit vielen Jahren aktiv entwickelt wird. Jedit ist dank seiner Plugin Architektur hervorragend erweiterbar und individuell konfigurierbar. Der Plugin Manager erlaubt das komfortable Installieren von vielen Plugins. Natürlich bietet jedit Syntax Highlightning für viele populäre und auch weniger populärer Programmiersprachen und unterstützt selbstverständlich auch automatisches Einrücken sowie das Einfalten von Blöcken. Mittlerweile möchte ich auf jedit nicht mehr verzichten und verwende es auch an meinem Arbeitsplatz unter Linux.
Als weiterführenden Lesestoff kann ich den auf der Seite sitepoint.com erschienenen Artikel "Use jedit to edit your PHP" sehr empfehlen.
Montag, 14. Februar 2005
PHP Compiler für .Net
Geschrieben von Harald Lapp in PHP um 20:30
Die aktuelle Ausgabe der Zeitschrift iX beinhaltet unter anderem auch einen interessanten Artikel über Mono, die freie und platformübergreifende .Net Implementation. In dem Artikel wird auch erwähnt, daß es mittlerweile über 30 Programmiersprachen für .Net gibt. Neugierig wie ich bin, habe ich mich deshalb auf die Suche nach einem .Net Compiler für PHP gemacht.
Ich bin tatsächlich fündig geworden. Phalanger ist ein PHP Compiler für .Net, der aktiv entwickelt wird. Leider ist das Lizenzmodell sehr restriktiv: so verbietet die Lizenz eine kommerzielle Nutzung des Compilers. Für mich persönlich ist außerdem entscheidend, daß es derzeit nicht möglich ist Phalanger unter Mono zu verwenden. Nichtsdestotrotz enthält die Web Seite interessante Informationen bezüglich PHP und .Net und ist in jedem Fall einen Besuch wert.
Ich bin tatsächlich fündig geworden. Phalanger ist ein PHP Compiler für .Net, der aktiv entwickelt wird. Leider ist das Lizenzmodell sehr restriktiv: so verbietet die Lizenz eine kommerzielle Nutzung des Compilers. Für mich persönlich ist außerdem entscheidend, daß es derzeit nicht möglich ist Phalanger unter Mono zu verwenden. Nichtsdestotrotz enthält die Web Seite interessante Informationen bezüglich PHP und .Net und ist in jedem Fall einen Besuch wert.
Freitag, 11. Februar 2005
PHP & Javascript
Geschrieben von Harald Lapp in AJAX, Javascript, PHP um 14:29
Googles Gmail Service sowie die Google Maps verdanken ihre komfortable Benutzerführung nicht zuletzt auch einer Methode, die es ermöglicht Daten zwischen einem Web Client und dem Server auszutauschen - nachdem eine Seite schon fertig geladen ist und ohne diese erneut komplett laden zu müssen.
Im Wiki von JSPan findet sich eine Sammlung an Informationen und Notizen zu dem Javascript Objekt XMLHTTPRequest welches einen Datenaustausch zwischen Client und Server bewerkstelligt, ohne dabei einen komplett neuen Reload der Seite zu benötigen.
JSPan ist ein Projekt welches die einfache Interaktion eines Javascript Clients mit einer PHP Serveranwendung ermöglichen soll, sodaß sich der Programmieraufwand diesbezüglich in Grenzen hält und die möglichen Fehlerquellen reduziert werden. Kurz gesagt soll es möglich sein eine Klasse in PHP zu definieren und deren Methoden auf Client Seite über Javascript aufzurufen als wären es native Methoden.
Im Wiki von JSPan findet sich eine Sammlung an Informationen und Notizen zu dem Javascript Objekt XMLHTTPRequest welches einen Datenaustausch zwischen Client und Server bewerkstelligt, ohne dabei einen komplett neuen Reload der Seite zu benötigen.
JSPan ist ein Projekt welches die einfache Interaktion eines Javascript Clients mit einer PHP Serveranwendung ermöglichen soll, sodaß sich der Programmieraufwand diesbezüglich in Grenzen hält und die möglichen Fehlerquellen reduziert werden. Kurz gesagt soll es möglich sein eine Klasse in PHP zu definieren und deren Methoden auf Client Seite über Javascript aufzurufen als wären es native Methoden.
XForms - xslt2xforms
Geschrieben von Harald Lapp in XML/XSLT um 13:20
XForms soll u.a. auch die in HTML Seiten verwendeten Formulare erweitern und möglicherweise irgendwann ablösen. Über XForms wird eine Trennung der Darstellung und des Modells eines Formulars erreicht und bietet so wesentlich mehr Möglichkeiten um interaktive Formulare in Web Seiten zu integrieren. Durch die Verwendung von Datentypen, Wertebereiche und die Möglichkeit Abhängigkeiten zwischen Formularfeldern zu definieren, kann eine Interaktion mit dem Benutzer viel komfortabler gestaltet werden und eine erste Validierungen der Eingabedaten schon auf Browser Seite erfolgen.
Die Browser Firefox und Mozilla sollen in ihren nächsten Versionen (1.1 bzw. 1.
native Unterstützung von XForms erhalten, für den Internet Explorer 6 gibt es immerhin die Beta Version eines Plugins von Novell.
Bis jedoch alle gängigen Browser XForms nativ unterstützen und XForms damit für Standard Web Seiten einsetzbar werden, dürfte noch einige Zeit vergehen. Hier soll xslt2xforms Abhilfe schaffen. Es handelt sich dabei um ein Stylesheet, das ein XForms basiertes Formular in xhtml in Verbindung mit CSS und Javascript umwandelt, sodaß das entsprechende Formular ohne Funktionalität einzubüßen auf den gängigsten Browsern funktionieren soll. Auf der Web Seite des Projektes kann man sich Demos ansehen, u.a. ein funktionsfähiger XForms basierter Taschenrechner. Das Projekt unterliegt der GPL - für kommerzielle Projekte soll jedoch bald eine kostenpflichtige Lizenz angeboten werden.
Die Browser Firefox und Mozilla sollen in ihren nächsten Versionen (1.1 bzw. 1.
Bis jedoch alle gängigen Browser XForms nativ unterstützen und XForms damit für Standard Web Seiten einsetzbar werden, dürfte noch einige Zeit vergehen. Hier soll xslt2xforms Abhilfe schaffen. Es handelt sich dabei um ein Stylesheet, das ein XForms basiertes Formular in xhtml in Verbindung mit CSS und Javascript umwandelt, sodaß das entsprechende Formular ohne Funktionalität einzubüßen auf den gängigsten Browsern funktionieren soll. Auf der Web Seite des Projektes kann man sich Demos ansehen, u.a. ein funktionsfähiger XForms basierter Taschenrechner. Das Projekt unterliegt der GPL - für kommerzielle Projekte soll jedoch bald eine kostenpflichtige Lizenz angeboten werden.
PHP Code Sammlungen
Geschrieben von Harald Lapp in PHP um 10:04
Auf der Suche nach Problemlösungen hat mir schon hin wieder "the PHP code exchange" gute Dienste geleistet. Übersichtlich in Kategorien unterteilt finden sich hier unmengen an Code Schnippsel und Funktionen zu den verschiedensten Themen.
Mein Kollege Robert hat mich gerade auf die Source Code Suchmaschine aufmerksam gemacht:
Interessant...
Mein Kollege Robert hat mich gerade auf die Source Code Suchmaschine aufmerksam gemacht:
Koders is a search engine for source code. It enables developers to easily search and browse source code in thousands of projects hosted at hundreds of open source repositories.
Interessant...
PHP in der aktuellen iX
Geschrieben von Harald Lapp in PHP um 09:40
In der gestern erschienenen Ausgabe März 2005 des Magazins iX aus dem Heise Verlag gibt es einige Artikel zum Theme Datenbankprogrammierung mit PHP zu lesen. Im auch Online verfügbaren Artikel "Abstraktionsvermögen" werden die Abstraktionsschichten ADOdb, Metabase, Pear DB sowie Pear MDB vorgestellt und verglichen. Ausserdem gibt es im Heft noch einen Artikel speziell zur Datenbankprogrammierung mit ADOdb.
Ich selbst beschäftige mich seit einiger Zeit mit der Abstraktionsschicht Creole und den darauf basierenden Projekten Jargon und Propel.
Ich selbst beschäftige mich seit einiger Zeit mit der Abstraktionsschicht Creole und den darauf basierenden Projekten Jargon und Propel.
Dienstag, 8. Februar 2005
PHP - A Programmer\'s Introduction to PHP 4.0
Geschrieben von Harald Lapp in PHP um 10:29
Der Verlag Apress bietet auf Grund des großen Verkaufserfolges des Titels "Beginning PHP 5 and MySQL: From Novice to Professional" von Jason Gilmore unter Angabe einer gültigen e-mail Adresse dessen Buch "A Programmer's Introduction to PHP 4.0" als ebook kostenlos zum download an.
[via The Farm]
[via The Farm]




