PDT / Zend

PDT mit Zend Executable Debugger.

Eclipse PDT (PHP Developer Tools) installieren

Zunächst die PDT installieren via Eclipse Update Manager http://download.eclipse.org/tools/pdt/updates/ oder von der Projekt Homepage www.eclipse.org/pdt/ herunterladen und installieren.

Zend Server Debugger  Binaries installieren

  • Debugger Extension Binaries ZendDebugger-5.2.10-darwin8.6-uni von http://downloads.zend.com/pdt/server-debugger/ herunterladen. (Leopard: ZendDebugger-5.2.12-darwin8.6-uni.tar.gz)
  • Das Archiv entpacken, das passende Modul ZendDebugger.so an einen sinnvollen Ort wie z.B. /usr/local/zend/ kopieren
  • Folgendes in die php.ini:

zend_extension=/usr/local/zend/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

  • Apache neu starten.
  • In phpinfo kontrollieren ob er geladen ist (with Zend Debugger v5.2.10, Copyright (c) 1999-2007, by Zend Technologies)

Achtung: Wenn cc_debug installiert ist und ein debug("xyz"); im Source funktioniert das debuggen ab dem Öffnen des Debugfensters im Browser nicht mehr!

Leopard Apache Startup

Unter Apache lädt der Debugger nicht - Fehlermeldung:

Failed loading /usr/local/zend/ZendDebugger.so:  (null)

Abhilfe schafft das laden im 32 Bit Modus:

sudo arch -i386 /usr/sbin/httpd

Aber um das zu automatisieren folgendes in /System/Library/LaunchDaemons/org.apache.httpd.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.apache.httpd</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/bin/arch</string>
                <string>-i386</string>
                <string>/usr/sbin/httpd</string>
                <string>-D</string>
                <string>FOREGROUND</string>
        </array>
        <key>SHAuthorizationRight</key>
        <string>system.preferences</string>
</dict>
</plist>

Und um apachectl wieeder verwenden zu können folgendes in /usr/sbin/apachectl

# the path to your httpd binary, including options if necessary
HTTPD='/usr/bin/arch -i386 /usr/sbin/httpd'

 

Eclipse Debug Setup

Debug PHP Script - interner Browser

Nicht so toll:

  • Wählen von: Debug PHP Script
  • PHP Executables auf /usr/local/php5/bin setzen
  • In /usr/local/php5/bin einen link php.ini auf /usr/local/php5/lib/php.ini setzen

Debug PHP Web Page - interner Browser

Besser:

  • Open in Browser, open all Pages
  • Als Browser den Internen wählen (Menü: Window/Web-Browser)
  • Debug klicken öffnet Browser, dann kann man auch Folgeseiten debuggen

Debug PHP Web Page - externer Browser

Am besten:

  • Zunächst Mozilla installieren.
  • Den Zend Toolbar für Mozilla installieren - Download unter http://www.zend.com/en/products/zend_studio/plug_ins#mozilla_firefox
  • Open in Browser, open all Pages
  • Als Browser den Externen wählen - Mozilla (Menü: Window/Web-Browser)
  • Debug klicken öffnet Browser mit der URL - öffnet die Startseite
  • Im Mozilla Toolbar all Pages on this Site wählen
  • Im Mozilla Toolbar Debug klicken

Nicht zu empfehlen

Zend Executable Debugger Eclipse Plugin - funktioniert nicht!

Dann habe ich von der ct DVD 19/2007 das Zend Executable Debugger Eclipse Plugin 5.2.6 installiert, was aber nicht funktioniert hat (bleibt bei den Breakpoints nicht stehen). Dürfte den Download von downloads.zend.com/pdt/debugger/ entsprechen.

Zum Verwenden Debug konfigurieren als PHP Script mit PHP Executable des ZendDebuger Plugins (dort liegt eine eigene php.ini die das ebenfalls dort befindliche ZendDebuger Plugin einbindet):

org.zend.php.debug.debugger.macosx_5.2.10.v20070826/resources/php5

Das hier eingebaute php stürzt aber leider ab mit folgendem Fehler:

Link (dyld) error:

Symbol not found: _inCoverageBL
  Referenced from: ./ZendDebugger.so
  Expected in: flat namespace

Nunja, ist eh keine allzu tolle Sache - mit eingebauten PHP debuggen - besser ist es mit dem Standrd PHP des Webservers mit allen php.ini Einstellungen - was in obigen Konfigurationen der Fall ist.

Erstellt: 07/2010| Geändert: 10/2015