Archive for the ‘PHP Tutorials’ Category

PHP5: Klassenincludes automatisch laden

Wednesday, February 20th, 2008

php logoIch habe in meinen Webprojekten immer mehrere Klassen im Einsatz. Gerne erstelle ich auch eine neue Klasse, welche eine andere abstrahiert. Mein “Problem” in der index.php häufen sich die

require

-Zeilen. Gestern bin ich über die Autoload-Funktion von PHP5 gestolpert. Diese Funktion ermöglicht es, eine benötigte Klasse dynamisch zu laden bzw. in das Script einzubinden. Natürlich muss der Grundsatz “Eine Klasse, Eine Datei” eingehalten werden. Auch muss die Klasse gleich heissen wie das File bzw. das File muss gleich heissen wie die Klasse.
Hier mal ein Beispiel:
Ich alle meine Klassen sind im Ordner

classes

abgelegt. Nun mache ich die automatischen Includes mit der flogenden Funktion in der index.php

function __autoload($class) {
  require_once('./classes/'.$class.'.class.php');
}

Diese Funktion wird jedesmal aufgerufen wenn eine Klasse benötigt wird. Sei es wenn ein Objekt instanziert wird oder wenn eine statische Methode aufgerufen wird. Wenn ich also z.b die das Objek

$auto

mit der Klasse

Auto

instanziere, wird das File

./classes/Auto.class.php

includiert.

Ruby on Rails Port für PHP

Wednesday, October 10th, 2007

Gestern habe ich mal ein Bisschen mit Ruby on Rails herumgespielt. Ich habe mir gedacht, soetwas für PHP wäre doch genial. Weil ich habe nicht wirklich lust noch eine Programmiersprache zu lernen. Dadurch habe ich ein Bisschen im Internet herumgeschaut und bin dabei auf das Akelos Framework gestossen. Bei Akelos handelt es sich um ein Ruby on Rails Port für PHP4 und PHP5.  Was ich sehr wizig fand, ist der Screencast auf akelos.org. Es wird genau das selebe gemacht wie im Screencast für Ruby on Rails. So kann man die beiden Frameworks super vergleichen.

Ich denke ich werde mich mehr mit Akelos als mit Ruby on Rails auseinandersetzen. Ganz einfach darum, weil ich PHP besser kann.

php: skriptname einfach herausfinden

Tuesday, September 25th, 2007

php logoBis Heute habe ich einen recht umständlichen Weg gewählt, um den Dateinamen eines PHP-Skripts herauszufinden.
Aber wie es halt so ist, lernt man nie aus. Wie ein Kollege sagte: “Es ist wie in SAP man weiss erst dass es die Funktion gibt, wenn man weiss wie sie heisst.”
Meine bisherige Lösung sah so aus:

$script = explode('/',$_SERVER['SCRIPT_FILENAME']);
$script = array_reverse($script);
$filename = $script[0];

Das ist eine recht umständliche Lösung. Hier nun die Lösung welche ich bis heute nicht gekannt habe.

$filename = basename($_SERVER['SCRIPT_FILENAME']);

Ob diese Variante performanter ist sei dahingestellt. Bei meinen Tests sind beide Varianten im Durchschnitt gleich perfomant. Wer will kann sich die beiden Testfiles hier herunterladen und selbst testen.

Little server information script

Wednesday, April 11th, 2007

Server informationsToday i wrote a little PHP-Script for my Server. It shows me the usage, uptime, service status and disk space. This script is for my LAN server at home. So I have all informations which I need.

Later I will offer this little script to download.

Update: This afternoon I have extended my server information script. Look at this screenshot.

Server informations

How to copy a highlighted php to MS Word

Monday, March 19th, 2007

For my application I have to write a technical manual. In this manual I would like to show pieces of my php script. At the beginning I thought I can copy the code from eclipse to word. But when I do this, de code isn’t highlighted. Now I wrote a little php script that returns you the highlighted source from any php file you want. You have to wrote the foldernames write to an array. And this script will you highlight all php files in this folders.
After you have the highlighted source in your browser, copy and paste it.

 $folders = array('classes', 'functions','.');

 foreach($folders as $folder) {
    $verz = opendir($folder);
    while($file=readdir($verz)) {
      if($file!='.' AND $file!='..') {
        if(substr($file, -3)=='php') {
      	  echo ''.$file.'';
    	  show_source($folder.'/'.$file);
          echo '

'; } } } closedir($verz); }

Download the source here.