|
|
|
|
|
|
|
#1 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 28.05.2008
Beiträge: 1.222
![]() |
Hallo zusammen,
habe mich vorhin mal überwunden und mir endlich mal eine debug classe geschrieben. Ich stell die mal hier in den Raum, wäre super, wenn sich jemand die genauer anschauen könnte hinsichtlich Programmierstil. PHP-Code:
![]() Basti
__________________
Kernelnotes: Zitat:
|
|
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#2 (permalink) |
|
Moderator
Registriert seit: 11.05.2008
Beiträge: 3.846
![]() ![]() ![]() ![]() |
Hallo,
du hast zuviele Abhängigkeiten in deiner Klasse, als dass sie für jemand anderen als dich hilfreich wäre. Und ob sie das für dich ist, kannst nur du beurteilen. Meine findest du hier, vielleicht findest du ja Ideen darin: Debug_class - PHP Classes PS: Zum Autor-Kommentar gehört immer noch eine Emailadresse. |
|
|
|
|
|
#3 (permalink) |
|
Moderator und Wett-König
|
Hallo rudygotya,
eine Debug-Klasse zu schreiben macht aus meiner Sicht keinen Sinn, denn diese wird niemals den Anforderungen an Debugging gerecht, die du heutzutage benötigts. Wenn du sinnvolle Mittel für die Entwicklung und den Betrieb bereitstellen möchtest, so solltest du
Viele Grüße, Dr.E.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#4 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 28.05.2008
Beiträge: 1.222
![]() |
Hallo,
schon mal danke für das feedback Habe diesbezüglich anscheinend einige Lücken @ Chriz: - deine log methode find ich sehr genial, func_num_args und func_get_arg kannte ich noch nicht! - debug_backtrace kannte ich auch noch nicht, memory usage hab ich bisher direkt in linux mit top oder mit xdebug überwacht Mir ist leider nicht ganz klar, wieso du output buffering benutzt? Mit error_log zu arbeiten schaut sehr elegant aus. Benutzt du die Klasse auch mit irgendwelchen Frameworks ohne Probleme? Das output buffering schreckt mich irgendwie ab. Zu den phpdoc kommentaren: Da habe ich leider ehrlich gesagt ein schlechtes Halbwissen mit ekelhaftem Gefühl in der Bauchgegend. Danke für den Hinweis, falls mehr falsch ist bzw. ich mehr Standards verletze, nur raus damit. Zur Wiederverwendbarkeit: Imho richte ich für alle meine pages einen logging table ein (wenn nicht schon vorhanden), ein Interface oder eine parent abstract class wäre vielleicht dennoch sinnvoll. (Falls man dann doch nicht nur mysql verwendet, etc.). Darf ich Teile deiner Klasse abwandeln? ![]() @ Dr.E. : Ich hatte mir schon ewig vorgenommen, das APF genauer anzusehen, der output des benchmarks sieht wirklich sehr gut aus. Xdebug + div. eclipse derivate (hauptsächlich aptana) benutze ich schon länger- netbeans habe ich mir erst vor 2 Tagen angesehen (und das dann natürlich noch nicht so genau). Die rendertime habe ich auch berechnen lassen, jedoch nie so modular. Was mich wirklich interessiert, wie du an die ganzen Objekte und Module kommst? Muss ich die alle manuell zuweisen ?Oder doch automatisch, wenn beim Scriptstart das Singletion gestartet wird (irgendwie unvorstellbar)? In der Produktion lasse ich mir atm alle queries loggen, die länger als 10 Sekunden dauern. Und das ist mir zu wenig Info, da will und muss ich an der Ablaufverfolgung arbeiten. Und was mich dabei wirklich brennend interessiert: Entfernt ihr alle Debug- Ausgaben für das Produktiv- System oder laßt ihr die im quelltext stehen und arbeitet dann mit der Unterscheidung Produktions-/Entwicklungsumgebung? Im 2. Falle würden mich Erfahrungswerte interessieren, inwieweit die Latenz der Seite durch Debugging/Logging unnütz leidet. Der Unterschied sollte doch marginal sein oder irre ich mich da? ______________ edit: hab mir das apf mal runtergeladen, ich probiers bei Gelegenheit das benchmarking selbst aus
__________________
Kernelnotes: Zitat:
Geändert von rudygotya (20.06.2009 um 11:45 Uhr). |
|
|
|
|
|
|
#5 (permalink) | |||||
|
Moderator
Registriert seit: 11.05.2008
Beiträge: 3.846
![]() ![]() ![]() ![]() |
Zitat:
Zitat:
Zitat:
Da Outputbuffering geschachtelt werden kann, macht es überhaupt keine Probleme, var_dump() ist einfach besser als print_r(), deshalb muss ich puffern. Zitat:
Zitat:
|
|||||
|
|
|
|
|
#6 (permalink) | ||||
|
Moderator und Wett-König
|
Hi,
Zitat:
Dabei nutze ich die Klasse benchmarkTimer als Singleton und starte/stoppe verschiedene Messpunkte wann immer ich es möchte. Den Bencharker rufe ich dabei so auf: PHP-Code:
PHP-Code:
Zitat:
Zitat:
Was den Benchmark angeht, so kann ich nur sagen, dass das APF trotz "dauerhaft" integriertem Benchmarker trotzdem schneller als der Rest der Welt ist (siehe Yii vs. APF :: Adventure PHP Framework (APF)). Wenn du nun den Benchmarker bedingt einbaust, etwa so: PHP-Code:
Zitat:
Viele Grüße, Dr.E.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||||
|
|
|
|
|
#7 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 28.05.2008
Beiträge: 1.222
![]() |
Hi,
danke für eure Antworten, komme leider jetzt erst zum antworten. @ Chris: Aptana (auch Eclipse Derivat, aber das kennst du sicher). Meiner Meinung nach auch nur eine halbe Suggestion. PDT erst vor 2 Wochen runtergeladen, aber noch nicht viel ausprobiert. Bisher habe ich zum loggen immer erst versucht, in die DB zu schreiben, danach erst als textdatei. Allerdings habe ich das über ein exception Objekt gemacht, der ich nur einen string übergeben mußte und das ich im Bedarfsfall auch nicht geworfen habe. Noch stukturell zu unsauber mit zu wenig info. @ Dr. E. Soweit ich das richtig sehe, müßte ich für das APF benchmarking jedes Backend ins APF integrieren... Wär genial!! Alternativ: Durch den quellcode und deine Beispiele inspiriert habe ich mir überlegt, eine 3. Umgebung (development/production/benchmark) einzubauen. Zu benchmark- Zwecken über die autoload methode jedes Objekt auffangen (über Konstanten regeln) , dann hätte ich am Ende den gewünschten benchmark output. Gruß Basti
__________________
Kernelnotes: Zitat:
|
|
|
|
|
|
|
#8 (permalink) | ||
|
Moderator und Wett-König
|
Hallo,
Zitat:
Wenn du nicht mit dem APF direkt arbeiten möchtest, musst du dir die Klassen benchmarkTimer und Singleton aus dem Release-Package ziehen und diese in deine Applikation integrieren. Vorsicht: die import() statements müssen durch include()/require() ersetzt werden. Alleine genutzt, bringen dir die beiden Klassen jedoch nicht den beschriebenen Mehrwert, da du dann selbst Benchmark-Messpunkte setzen musst. Zitat:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
|
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Datenbank Class | Shuyio88 | PHP Einsteiger | 2 | 02.03.2009 19:47 |
| Der "richtige" Programmierstil | Matze | PHP Tipps 2007 | 15 | 18.01.2007 14:37 |
| Programmierstil | Fatal Error | Off-Topic Diskussionen | 19 | 04.10.2006 21:37 |
| Frage zu Programmierstil | inu | PHP Tipps 2006 | 8 | 26.05.2006 08:11 |
| Class Vars | fmueller | PHP Tipps 2006 | 10 | 14.02.2006 19:54 |
| [OS|FreeGW] Class Problem ( cl_extended_database ) | PHP Tipps 2006 | 20 | 08.02.2006 01:09 | |
| Mehrere Div-Layer per Class schliessen | Diego1978 | HTML, Usability und Barrierefreiheit | 4 | 02.12.2005 12:10 |
| php.de debug mode -> php.de ? php error ? | notyyy | Off-Topic Diskussionen | 0 | 13.10.2005 00:03 |
| PHP Class Datei Basirende Datenbank mit MySQL Syntax | atom-dragon | Beitragsarchiv | 4 | 01.08.2005 06:57 |
| Thema: class; Problem: Grundlegende :) | PHP Tipps 2005-2 | 4 | 13.07.2005 18:40 | |
| bb stringparser class | search | Beitragsarchiv | 4 | 14.04.2005 18:18 |
| Class -- Funktion | Creativ | PHP Tipps 2005 | 2 | 30.03.2005 23:10 |
| a mouseover class ändern | 022.9 | HTML, Usability und Barrierefreiheit | 4 | 18.02.2005 15:51 |
| Class und require("mydbconnection.inc.php") | MadCro | PHP Tipps 2004-2 | 2 | 23.11.2004 11:29 |
| Klassenschachtelung -> Cannot Redeclare Class ... Fehler | PHP-Fortgeschrittene | 5 | 21.10.2004 18:04 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| fatal error: [singleton::getinstance()] class \benchmarktimer\, programmierstil phpdoc |