php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.12.2005, 11:55  
Gast
 
Beiträge: n/a
Standard Sauber formatierte Debug-Ausgabe

Hallo zusammen,

ich grüble gerade an einer bestmöglichen Lösung für eine sauber formatiert Debug-Ausgabe.

Mein Grundgedanke ist, am Anfang eines Scripts eine konstante auf true zu setzen, was dann am Ende des Scripts zum includen einer debug.inc.php führt.

In dieser werden diverse Abfragen getätigt und vorhandene Variablen, Arrays, etc. ausgegeben, die ich immer wieder verwende. (macht das überhaupt sinn so?

Nun stellt sich die Frage wie ich diese Ausgabe möglichst einfach "gut lesbar" machen kann. print_r ansich liefert ja einen relativ schlecht lesbaren output.

Evtl. gibt's auch dafür schon fertige Lösungen?

Danke für Eure Hilfe!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.12.2005, 12:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

ich habe ne Funktion debug():

PHP-Code:
<?php
define
('DEBUG_PRINTR'1);
define('DEBUG_VARDUMP'2);
define('DEBUG_VAREXPORT'3);

function 
debug($var$output DEBUG_PRINTR$pre true)
{
  if (
$pre) {
    print 
'</td></tr></table>'// manchmal verschwinden Debug-Ausgaben in Tabellenoutput.
    
print '<pre>';
  }
  switch (
$output) {
  case 
DEBUG_VARDUMP:
    
var_dump($var);
    break;
  case 
DEBUG_VAREXPORT:
    
var_export($var);
    break;
  case 
DEBUG_PRINTR:
  default:
    
print_r($var);
  }
  if (
$pre) {
    print 
'</pre>';
  }
}
?>
Meine DB-Klasse hat außerdem ne report() Methode, die gibt alle Methodenaufrufe mit Argumentenliste aus.

PHP-Code:
<?php
$db 
singleton('Database');
$db->report();
?>
Zergling-new ist offline   Mit Zitat antworten
Alt 29.12.2005, 12:15  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Vielleicht ist das hier ja was für dich:
http://xdebug.org/

Erfordert aber natürlich ein wenig Einarbeitung.
Corvin ist offline   Mit Zitat antworten
Alt 29.12.2005, 12:16  
Gast
 
Beiträge: n/a
Standard

Hi ihr beiden,

immer wieder die selben von denen man hier brauchbare Antworten kriegt

Vielen Dank dafür.

Zitat:
Erfordert aber natürlich ein wenig Einarbeitung.
besser jetzt als später / nie
  Mit Zitat antworten
Alt 29.12.2005, 20:28  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP-Code:
<?php
/**
 * transforms a path by replacing backslashes with slashes and
 * adding a closing slash
 */
function validatePath($path)
{
    
$path trim($path);
    
$path realpath($path);
    
$path str_replace('\\''/'$path);
    
// is the last char a slash?
    
if (strrpos($path'/') != strlen($path) - 1) {
        
$path .= '/';
    }
    return 
$path;
}

// this file's position depending on the project root
define('SELF',             '/..'); // use an empty string if this file lies in the project root
define('ROOT',             validatePath($_SERVER['DOCUMENT_ROOT']));
define('PROJECT_REL',      str_replace(ROOT''validatePath(dirname(__FILE__).SELF)));
define('PROJECT',          ROOT.PROJECT_REL);
define('INCLUDES_REL',     'includes/');
define('PROJECT_INCLUDES'PROJECT.INCLUDES_REL);
define('INCLUDES',         validatePath(ROOT.'../'.INCLUDES_REL));
define('TEMPLATE_REL',     'tpl/');
define('TEMPLATE',         PROJECT.TEMPLATE_REL);
define('CSS_REL',          'css/');
define('CSS',              PROJECT.CSS_REL);
define('JAVASCRIPT_REL',   'js/');
define('JAVASCRIPT',       PROJECT.JAVASCRIPT_REL);

define('WEB',              '/'.PROJECT_REL);
define('WWW',              'http://'.$_SERVER['HTTP_HOST'].WEB);

define('USE_PEAR'true);
define('DEBUG_ON'true);

set_include_path(
    
get_include_path()  .PATH_SEPARATOR.
    
INCLUDES            .PATH_SEPARATOR.
    
PROJECT_INCLUDES);
if (
USE_PEAR)
    
set_include_path(get_include_path().PATH_SEPARATOR.validatePath(ROOT.'../PEAR/'));
?>
Momentan nur lokal getestet, müsste online auch funktionieren, auf Schlund wohl angepasst werden.
Zergling-new ist offline   Mit Zitat antworten
Alt 29.12.2005, 21:07  
Gast
 
Beiträge: n/a
Standard

Ein codeunabhängiger Debugger ist immer besser als Codeänderungen (printf-debugger-Hölle).
http://php.net/debugger
  Mit Zitat antworten
Alt 29.12.2005, 23:47  
Gast
 
Beiträge: n/a
Standard

heute Abend entdeckt und eben mal getestet... nice:
http://www.atomar.de/public/code/deb...r=1&name=dipsy

Zitat:
Ein codeunabhängiger Debugger ist immer besser als Codeänderungen (printf-debugger-Hölle).
http://php.net/debugger
der will bei mir nicht - mein aktuell eingesetztes PHP auf dem dev-server ist mit --disable-debug compiled, warum auch immer
  Mit Zitat antworten
Alt 30.12.2005, 08:37  
Gast
 
Beiträge: n/a
Standard

--enable/disable-debug bezieht sich auf etwas bisschen anderes, nämlich auf php selbst.
Das ist ja auch "nur" ein Programm und kann auch debugged werden.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
imagejpeg ausgabe funkt nicht zoro PHP Tipps 2007 5 30.07.2007 22:31
Problem mit der Ausgabe Kein Genie PHP Tipps 2006 5 26.11.2006 21:24
Objekt Ausgabe in Array konvertieren duderino PHP Tipps 2006 8 11.11.2006 14:29
Farbe des SQL-Ergebnisses in der Ausgabe Peer PHP Tipps 2006 14 14.09.2006 08:51
Problem mit Ausgabe bzw. Abfrage mit ORDER BY mayer Datenbanken 7 02.07.2006 21:45
Ausgabe nach häufigkeit eines Treffers sortieren axelnes Datenbanken 1 17.02.2006 12:14
Ausgabe der datei klappt nicht Mondschein PHP Tipps 2005-2 3 28.09.2005 00:01
[Erledigt] Ausgabe der Datenabfrage in einer Tabelle? Datenbanken 2 26.09.2005 21:28
Ausgabe der Auswahlliste PHP Tipps 2005-2 6 21.09.2005 13:43
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
[Erledigt] Geteilte Ausgabe an den Browser... PHP-Fortgeschrittene 4 01.07.2005 13:07
Ausgabe nur dann, wenn htmlspecialchars() verwendet PHP Tipps 2004 1 27.10.2004 21:17
[Erledigt] Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
Bei ausgabe jede 2. Zeile einfärben PHP Tipps 2004 20 05.08.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
debugger.inc.php, php debug ausgaben, php debugausgabe in datei, debug() ausgabe php, define projectroot, debug.inc.php, debugausgabe phph, formatierte debug ausgabe php, php debug ausgabe format, php code sauber, php nice format debug, formatierte php script ausgabe, php array debugausgabe, debug ausgaben, xdebug ausgabe formatieren css, php debug ausgabe in datei, php debugausgabe array, was ist ne debugger, php code sauber formattieren, php var_export trim

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.