mijane Blog

ein paar interessante Sachen gibt es immer

Blog Kommentare

Geschrieben von Peter Rother • Mittwoch, 18. Februar 2009 • Kategorie: Aktuelles

Zum Glück wies mich Dominik darauf hin, dass die Kommentar Funktion nicht mehr funktioniert, sobald das Captcha aktiviert ist (dies passiert momentan nach sieben Tagen nach Artikel Erstellung). Eigentlich wollte ich die Funktion schon debuggt haben, fühle mich momentan aber ein wenig bescheiden, so das ich dies noch nicht geschafft habe. Als ich das Captcha aber deaktiviert habe kammen auch schon die ganzen Spammer. Die Moral von der Geschit das Captcha ist erstmal wieder ein geschaltet und ich werde die Funktion am Samstag debuggen um euch das kommentieren von älteren Artikel wieder zu ermöglichen.
Tweet This!Tweet This!

20 Tips für schnelleren PHP Code

Geschrieben von Peter Rother • Dienstag, 17. Februar 2009 • Kategorie: Better Code

Heute habe ich für euch ein paar Tips wie ihr euren PHP Code ein wenig schneller und effizienter gestalten könnt. Ich hoffe mal, dass für jeden der ein oder andere Tip dabei ist.

  1. Falls eine Methode als static deklariert werden kann, sollte dies auch getan werden. Dies erhöht die Geschwindigkeit um das 4fache.
  2. echo() ist schneller als print()
  3. Sollten Variablen, Arrays oder Objekte nicht mehr benötigt werden, zerstört sie mit unset().
  4. Meidet magische Funktionen wie __get(), __set() und __autoload().
  5. require_once() ist sehr kostspielig.
  6. Benutzt für include() und require() den vollständigen Pfad.
  7. Benötigt ihr die Zeit an der ein Script gestartet ist, benutzt $_SERVER[’REQUEST_TIME’] anstelle von time().
  8. str_replace() ist schneller als preg_replace().
  9. Es ist besser Switch Statemantes, anstatt große if else Blöcke zu verwenden.
  10. Das Unterdrücken von Fehlern mit @ ist sehr teuer.
  11. Schaltet die Apache mod_deflate Extension ein.
  12. Schließt die Datenbank Verbindungen wenn diese nicht mehr benötigt werden.
  13. Benutzt, falls möglich, keine Funktionen in Schleifen, da diese Funktionen jedes mal ausgeführt werden.
  14. Das Hochzählen einer globalen Variablen ist 2mal langsamer als bei einer Lokalen Variable.
  15. Das Hochzählen einer Objekt Eigenschaft ist 3mal langsamer als bei einer Lokalen Variable.
  16. Das Hochzählen einer nicht initialisierten Variablen ist 9 -10mal langsamer als bei einer initalisierten Variablen.
  17. Probiert so viel wie möglich zu cachen. Benutzt hierfür z.B. den Memcache oder eine OP Code Cache. Bei einem OP Code Cache muss das PHP File nicht jedes mal neu kompiliert werden.
  18. Es muss nicht jede Datenstruktur als Objekt abgebildet werden, ein Array kann hier manchmal genau so helfen.
  19. Benutzt, falls möglich, das Apache Modul mod_gzip. Das Modul komprimiert die Daten um bis zu 80%.
  20. Benutzt eine Profiler wie XDebug für eure Scripte, hier könnt ihr schnell Funktionen finden die zu langsam laufen.
Tags für diesen Artikel: ,
Tweet This!Tweet This!

phpDocumentor installieren

Geschrieben von Peter Rother • Dienstag, 27. Januar 2009 • Kategorie: Doc Blocks

Wie bereits angekündigt, habe ich beschlossen eine Serie zu dem Thema Doc Blocks in PHP zu starten. Als Doc Block System habe ich mir phpDocumentor ausgesucht, da ich hiermit schon länger arbeite und phpDocumentor alles benötigte bereit stellt.

Starten, werde ich logischerweise mit der Installation von phpDocumentor. Die Installation lässt sich wirklich einfach bewerkstelligen und bietet unter anderem eine Installation unter PEAR (so langsam liebe ich PEAR wirklich). Ihr könnt eure Dokumentationen über die Kommandozeile erstellen oder das Webinterface von phpDocumentor benutzen. In den nächsten beiden Blöcke werde ich auf die Erstellung der Dokumentation unter Benutzung der Konsole und danach durch das Webinterface eingehen.

"phpDocumentor installieren" vollständig lesen

Tags für diesen Artikel: , ,
Tweet This!Tweet This!

Start einer Serie zum Thema Doc Blocks

Geschrieben von Peter Rother • Samstag, 24. Januar 2009 • Kategorie: Doc Blocks

Eine Serie zu einem bestimmtem Thema ist doch immer was nettes, so sehe ich das wenigstens. Also habe ich mir vorgenommen hier eine Serie zum Thema Doc Blocks in PHP zu starten.

Als Doc Block Engine habe ich mir phpDocumentor ausgesucht, da ich hiermit schon länger arbeite und ich dieses Tool ohne Einschränkung empfehlen kann. Ein Blick über den Tellerrand kann aber auch nicht schaden, also werden wir uns auch noch ein Paar andere Programme zur Quellcode Dokumentation anschauen. Vielleicht findet sich ja auch jemand der schon mit anderen Systemen wie z.B. Doxygen gearbeitet hat und gerne ein bisschen darüber erzählen möchte. Bei Interesse meldet euch bitte bei mir über das Kontakt - Formular oder über meine E - Mail Adresse aus dem Impressum.

Starten wir werden mit der Installation von phpDocumentor unter PEAR und als Web Interface. Danach gibt es eine kleine Einführung wie ihr den phpDocumentor auf der Kommandozeile ausführen könnt. Natürlich darf auch ein Einblick in die ganzen Doc Block Parameter nicht fehlen, die ich hier im Kommentar schon Angekündigt habe. Darauf wird eine kleine Session zu dem Thema Doc Block Formatierungen folgen, wo vielleicht auch einige von den erfahreneren Leser noch ein Paar neue Sachen kennen lernen können.

Ich glaube dass das ein ganz interessantes Thema werden wird. Ich persönlich freue mich schon darauf.

Tags für diesen Artikel: , , ,
Tweet This!Tweet This!

Wer kennt !important

Geschrieben von Peter Rother • Freitag, 16. Januar 2009 • Kategorie: CSS

In den meisten Browsern kann man seine eigenen Style Angaben wie z.B. die Schriftgröße oder die Schriftfamilie festlegen. Was aber tun wenn man für sein Layout einen bestimmten Wert benötigt? Dies kann wichtig sein, falls man das Layout auf eine bestimmte Font Größe festgelegt hat. Hierfür könnt ihr das CSS Tag !important verwenden. !important legt fest, dass der angelegte Style vom Browser nicht überschrieben werden darf.


.css-klasse { font-size: 12px !impotant; }

Der Browser vom User kann jetzt ruhig eine Standard Font Größe von z.B. 16px haben. Die Angabe aus dem Style Tag haben aber Vorrang und überschrieben die User Einstellungen. Ohne !impotant würden die Browser Einstellungen die CSS Angaben überschreiben.

Tags für diesen Artikel: ,
Tweet This!Tweet This!

Verkürzte if Bedingung

Geschrieben von Peter Rother • Donnerstag, 15. Januar 2009 • Kategorie: PHP

Viele werden die folgende Notation schon kennen, manch ein Anfänger aber vielleicht noch nicht. Man kann eine einfache if / else Bedingung noch ein wenig abkürzen und sich so schreibarbeit ersparen. Bei den ersten Anwendungen übersieht man vielleicht diese Schreibweise, aber nach ein paar Einsätzen geht es eigentlich ins Blut über.

Standard Bedingung:

if($variable == true) {

$andereVariable = "stimmt";

} else {

$andereVariable = "stimmt nicht";

}


Verkürzte Anweisung:

$andereVariable = ($variable == true) ? "stimmt" : "stimmt nicht";

Die Bedingung wird hierbei in die Klammern () geschrieben. Das Fragezeichen ? leitet den if Block ein, der Doppelpunkt : den else Block.

Tags für diesen Artikel:
Tweet This!Tweet This!

Deklaration von Variablen

Geschrieben von Peter Rother • Mittwoch, 14. Januar 2009 • Kategorie: Better Code

Leider oder auch zum Glück ist PHP keine stark Typisierte Sprache. Aus diesem Grund sollte man sich aber einen besseren Überblick über die verwendeten Variablen verschaffen, in dem man diese mit einem Kürzel versieht. Dies hat den Vorteil, dass man im Quellcode erkennt um was für eine Typ es sich handeln sollte. Nachfolgend bekommt ihr einen kleinen Überblick darüber wie ich mit der deklaration von Variablen umgehe.


Das erste oder die beiden ersten Zeichen einer Variable nach dem $ bezeichnet den Typ der aktuellen Variablen, danach wird in CamelCase weiter geschrieben.


String:
$sIrgendEinString


Integer:
$iEinSuperInterger


Boolean:
$blKannDasWarSein


Double:
$dEinDoubleMitPunkt


Array:
$aHierHabenWirVieleElemente


Object:
$oHabeIchAmLiebsten

Das sind eigentlich alle Kürzel die mir jetzt einfallen. Diese sollten auch die gängigsten Fälle abdecken. Falls jemand noch eine Idee hat, werde ich diese gerne hier mit aufnehmen.

Tags für diesen Artikel: ,
Tweet This!Tweet This!

Seven dwarfs, eh things about me you don’t really want to know

Geschrieben von Peter Rother • Mittwoch, 14. Januar 2009 • Kategorie: Aktuelles

So now i also got tagged to this silly "game", thanks to Dominik ;-) OK, now following my 7 secrets you really don't want to know.
  1. my first pc was an C16 with an cassette tape
  2. i started programming at the age of 12 and then i took a little break for 13 years
  3. i started with php by the tutorial of progman
  4. i never wanted to start with web programming, but then i wrote my first php scripts
  5. i don`t have an red - green color blindness like Ralf and Dominik
  6. sometimes i feel like i´m living in the matrix, but i came back to reallity when i realized that i can't crash through walls
  7. just like Lars i get drunken after 3 liters of beer (not allways)


And now its your turn:

And here I proudly present the rules
  • Link your original tagger(s), and list these rules on your blog.
  • Share seven facts about yourself in the post - some random, some wierd.
  • Tag seven people at the end of your post by leaving their names and the links to their blogs.
  • Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.
Tweet This!Tweet This!

Warum PHP Doc Blocks?

Geschrieben von Peter Rother • Sonntag, 11. Januar 2009 • Kategorie: Doc Blocks


Je umfangreicher ein Projekt wird, desto wichtiger wird die Dokumentation. Kommentare helfen, den Programmcode besser zu verstehen. Nach einiger Zeit wissen selbst die Progammierer nicht mehr, was sie vor x Wochen oder Monaten geschrieben haben. Hier kommen die Doc Blocks ins Spiel. Jede Klasse und / oder Methode sollte mit einem Kommentar versehen werden.
Der eigentliche Quellcode sollte durch Aussagekräftige Variablen und Methoden selbst erklärend sein. Ich finde das, wenn man einen Kommentar in einer Methode oder Funktion benötigt, der Code zu umständlich geschrieben ist.

Was genau sollte ein Doc Block erklären? Hier folgt ein kleiner Überblick:

  • welche Aufgabe hat die Funktion / Methode
  • welche Parameter erwartet sie
  • welchen Datentyp gibt sie zurück

Wie genau ist ein Doc Block aufgebaut?

/**
* Hier steht was genau in der Methode passiert
*
* @param int $sId
* @return string
*/

@param gibt an welche Parameter von der Methode benötigt werden.
@return gibt an welcher Typ von der Methode zurück gegeben wird


Der Doc Block wird direkt vor der Klasse oder der Methode angegeben und beginnt mit den Zeichen /**. Jede neue Zeile beginnt mit einem * und das Ende des Doc Blocks wird mit */ eingeleitet.

Eine Auflistung aller Doc Block Tags werde ich demnächst hier vorstellen.
Tags für diesen Artikel: ,
Tweet This!Tweet This!

Blog Umstellung

Geschrieben von Peter Rother • Donnerstag, 8. Januar 2009 • Kategorie: Aktuelles

Ich habe mir überlegt den Blog mal ein bisschen umzustrukturieren. Alleine über das Framework zu schreiben finde ich nicht so spannend und außerdem habe ich doch ein bisschen mehr zu erzählen.

Also wird der Developer Blog einfach zu meinem Blog. mijane wird aber bleiben, denn alles was ich ab jetzt mache, wird mijane sein. Das muss jetzt nicht jeder verstehen, reicht ja wenn ich weiß was es bedeutet. Ich werde aber bestimmt demnächst mal erzählen, wie ich auf mijane gekommen bin und was es bedeutet, aber noch bleibt es mein Geheimnis.
Die nächsten Tage werde ich auch das Layout ein bisschen umstellen. Ich mag zwar die Farben und das Layout, werde aber mal testen was es sonst noch gibt oder ich selber basteln kann.

Mit der Umstellung kann ich auch endlich über ein paar andere Sachen erzählen, die nicht zu dem alten Thema passen. Ich hoffe mal, dass ich euch weiter mit ein paar interessanten Beiträgen versorgen kann.
Tags für diesen Artikel:
Tweet This!Tweet This!