Archive for the tag 'Zend'

Feb 20 2008

Mehr zu PHP IDEs

veröffentlicht in Kategorie: WebWork  

Zends Studio für Eclipse größtes Ärgernis – das fehlende FTP Sync – kann mit der kostenlosen Aptana Studio Community Edition, welche sich auch als Plugin in Eclipse installieren lässt, wett gemacht werden.

Aptana Studio ist insgesamt ein sehr interessantes Produkt. Auch wenn der Schwerpunkt doch mehr in Richtung Ajax geht, scheint es auf den ersten Blick für PHP durchaus auch zu taugen – und preislich liegt es auch im Rahmen, mit dem Einführungspreis von 99,- US$ für 1 User auf 2 PCs – bzw. der kostenlosen Community Edition macht das Produkt keinen schlechten Eindruck.

Im Moment tendiere ich immer mehr zu Zend Studio für Eclipse dazu Aptana als Plugin. Übrigens, Zend Studio für Eclipse kauft man auf der USA Seite, da kostet es derzeit nur 299,- USD – das ist doch etwas günstiger als 399,- Euro. 

Mit Eclipse hab ich noch so meine Probleme, das Konzept hinter dem IDE ist mir etwas fremd, im Moment kämpfe ich noch immer mehr mit dem IDE, das mir seinen Workflow aufzwängen will, als mit dem Quellcode. Gar nicht vermisse ich jedoch die in letzter Zeit permanenten Crashes dank Dreamweaver CS3 Resource Leaks.

Für die HTML Entwicklung mit ein bissl PHP nebenbei ist Dreamweaver ganz klar noch das beste Paket, trotz all der Bugs und Schwierigkeiten. Aber für PHP mit ein bissl HTML dazu…

One response so far

Feb 19 2008

Auf der Suche nach einem brauchbaren PHP IDE

veröffentlicht in Kategorie: WebWork  

Sicher, bislang ging das erstellen von PHP Anwendungen auch in Dreamweaver recht gut. Immerhin besitzt es neben Code Vervollständigung, farbige Code Darstellung und rudimentären Syntax Check auch ein (sehr rudimentäres) FTP Interface, ein funktionierendes CheckIn/CheckOut System damit man sich nicht gegenseitig auf die Füße tritt und noch einiges mehr…

…aber leider ist Dreamweaver auch in seiner letzten Instanz Dreamweaver CS3 mehr als nur ein bissel buggy und seine Fehler – darunter ein schleichendes Resource Leak, dubiose FTP Probleme, sporadische auftretenden Abstürze etc. – rauben  mir inzwischen den letzten Nerv.

Was liegt also näher als mal zu schauen, was es denn so für PHP IDEs heute auf dem Markt gibt?

weiter »

2 responses so far

Jul 12 2006

PHP Quellcodes schützen mit Ioncube oder Zend Encoder

veröffentlicht in Kategorie: WebWork  

Ein Problem, das uns immer wieder vor dem Einsatz von PHP im professionellen Einsatz im Agenturumfeld zurückschrecken lies, war die Tatsache, dass in PHP geschriebene Anwendungen immer als mehr oder weniger frei zuänglicher Quellcode ausgeliefert werden mussten. In der klassischen Variante werden PHP Quelltexte frei lesbar und vom Kunden modifizierbar auf deren Homepage abgelegt. Jeder, der FTP Zugang auf den entsprechenden Host hat, ist so in der Lage, die Quelltexte der Anwendungen nicht nur einzusehen, sondern auch beliebig zu modifizieren. Das mag vielleicht gut und recht sein, wenn man sowieso Open Source Lösungen anbieten will, hat aber für den kommerziellen Einsatz einen eklatanten Nachteil:
PHP ist eine Scriptsprache, in der die frei einsehbaren Quellcodes (eingebettet in einer HTML Seite bzw. verlinkten PHP Dateien) einer Anwendung zu Laufzeit interpretiert werden. Das heisst also in der Praxis: Ihre PHP Anwendung ist zu jeder Zeit voll einsehbar. Um eine klassische PHP Anwendungen auf dem Webserver installieren zu können,  muss der komplette Quellcode zu Verfügung gestellten werden. Ein kommerzieller Vertrieb von PHP Anwendungen kommt deshalb kaum in Frage.

Aber auch im Hosting Umfeld ist die Sache problematisch, jeder, der per FTP auf den Host zugreifen kann, auf dem Ihre PHP Anwendung installiert ist, kann sich an den Quellcodes bedienen. Ein weiteres Problem sind experimentierfreudige Kunden, welche eigenmächtig Änderungen oder “Verbesserungen” an Ihrer PHP Anwendung vornehmen und dann im Problemfall Supportleistungen von Ihnen verlangen, weil nix mehr geht oder Probleme auftauchen. Auf Dauer war es mir dann irgendwann zu dumm, jedesmal die komplette Anwendung erst mal per WinDiff zu prüfen, ob nicht wieder mal jemand dran rum gefummelt hatte.

Die Lösung für all diese Problem heisst: Codierung der PHP Quellcodes. Die 2 bekanntesten und zuverlässigsten Lösungen dafür sind zum einen der Zend Encoder aus dem Hause Zend oder aber der Ioncube Encoder aus dem Hause Ioncube.

Beide Programme sind in der Lage, den PHP Quellcode sicher zu verschlüsseln und so vor neugierigen Blicken, Langfingern und Möchtegerne-Programmverbesserer zu schützen. Die Verschlüsselung ist irreversibel, ein Reverse Engineering oder die Rückverwandlung der verschlüsselten Dateien in lesbaren und bearbeitbaren Quellcodes ist nicht mehr möglich. Bei beiden Lösungen ist uns kein Fall bekannt, in dem die Verschlüsselung jemals geknackt wurde. Dies unterscheidet Zend Encoder und IonCube Encoder auch vor reinen “Obfuscating”-Lösungen, welche zwar das Lesen eines Quellcodes erschweren, aber eine Reverse-Entwicklung nicht verhindern können.

Die Funktionsweise der Encoder ist dabei wie folgt: der frei einsehbare Quellcode in ASCII Text einer PHP Anwendung wird zunächst compiliert und in ein binäres byte-code Interims Format umgewandelt und darüber hinaus mehrere Stufen der Verschlüsselung angewendet. Die beim Verschlüsselungsvorgang entstehenden Dateien sind nun nicht mehr einsehbar/modifizierbar, zuverlässig geschützt und plattformunabhängig einsetzbar. Nur diese codierten Dateien müssen an den Kunden weitergegeben werden, damit die PHP Anwendung eingerichtet und ausgeführt werden kann, die Quellcodes bleiben sicher bei Ihnen.

Weitere Vorteile von codierten PHP Anwendungen:

  • Durch die Verschlüsselung ergeben sich neben der generellen Möglichkeit, PHP Anwendungen kommerziell als “Closed Source” zu vertreiben auch ein ganz neues Lizenzmodelle für die von Ihnen entwickelten PHP Anwendungen: Verkauf des Produktes inkl. Quelltext an den Kunden oder aber Verkauf eines einfachen Nutzungsrechtes welches keine Quellcodes mehr beinhaltet. Je nach Encoder sind auch Modelle wie Zeitmodelle oder in der Useranzahl beschränkte Linzenzen möglich.
  • Die Ausführung der codierten PHP Programme erfolgt in der Regel schneller als nicht codierte PHP Programme. Das steigert die Performance und kann die Serverlast reduzieren.
  • Nachträgliche Änderungsversuche an den codierten Dateien sind nicht mehr möglich. Eine einmal installierte PHP Anwendung kann vom Kunden nicht mehr verschlimmbessert werden, jeder Versuch einer Änderung würde die jeweilige Datei unbrauchbar machen (die Datei muss dann nochmal aufgespielt werden). Auf diese Weise können Sie sicherstellen, dass Ihre Anwendung unverändert bleibt.
  • Vielleicht etwas zweifelhaft, aber nicht unwichtig in einer Branche, in der mit harten Bandagen gekämpft wird: Codierte PHP Anwendungen binden den Kunden an Sie und verhindern die unbefugte Nutzung durch Dritte. Nehmen Sie an, Sie erstellen für einen Kunden eine PHP Anwendung. Nach einiger Zeit nun will der Kunde mit dem gesamten Projekt zu Ihrer Konkurrenz wechseln. Die Frage, ob der Kunde nun berechtigt ist, die von Ihnen erstellten Quellcodes seiner neuen Agentur zur Weiterbearbeitung zu geben und wie Sie das verhindern können stellt sich erst gar nicht, wenn der Kunde nur ein reines Nutzungsrecht bezahlt hatte und somit nur die codierten Dateien, aber nie die Quellcodes erhalten hat. Der Wechsel zu einer anderen Agentur hieße dann, das die andere Agentur nicht einfach die von Ihnen geschaffene Lösung einheimsen kann.

Nachteile der Codierung:

  • Damit die so kodierten PHP Dateien auf dem Webserver auch wirklich ausgeführt werden können, muss das jeweils passende kostenlose PHP Erweiterungsmodul zur Ausführung der codierten Dateien auf dem WebServer vorhanden sein. Also entweder der Zend Optimizer, oder der Ioncube Loader.
    Wer Zugriff auf die PHP.INI seines Webserver hat, kann die Installation des Zend Optimizers bzw. Ioncube Loaders leicht selbst vornehmen. Aber auch Nutzer günstiger Shared Hosting Angebote ohne die Möglichkeit PHP Erweiterungen zu installieren können codierte PHP Anwendungen ausführen: sowohl der Zend Optimizer als auch der Ioncube Loader sind auf vielen Servern bereits vorinstalliert – Tendenz steigend – oder sie werden auf Anfrage vom Serverbetreiber dann nachinstalliert.
    Kann man aus welchen Gründen auch immer die entsprechende Erweiterung nicht auf seiner Homepage installieren (lassen), dann hat Ioncube übrigens deutlich die Nase vorne:  Unter Linux basierten Servern reicht es schon aus, wenn man den entsprechenden Loader einfach mit in das Hauptverzeichnis der PHP Anwendung kopiert – die Anwendung lädt falls notwendig den entsprechenden Loader automatisch nach. Zend untersützt dieses Nachladen bei Bedarf leider nicht.
  • Codierte PHP Dateien sind etwas zickig im Handling, so müssen die PHP Dateien von FTP Programmen im Binärmodus übertragen werden, damit die Datei nicht während der Übertragung beschädigt wird.
  • Der Preis. Beide Produkte sind kostenpflichtig und für Hobbyautoren nicht gerade billig, wobei der Preis des Ioncube Encoders in der Basisversion mit 199 USD deutlich unter dem Preis des Zend Encoders liegt, welcher in der günstigsten Variante als SmallBusinessEdition mir 395,- USD pro Jahr schon deutlich größere Löcher in das Budget kleiner Entwickler reisst. PHP Programmierer mit knappem Budget sollten mal schnell unseren 2. Artikel zum Thema PHP codiert durchlesen, dort stellen wir den Ioncube Online Encoder vor, mit dem man sehr preiswert, oft unter 1 Euro, seine Projekte verschlüsseln lassen kann.

No responses yet