Dateigröße darstellen

Mit Hilfe der folgenden kleinen Funktion können Dateigrößen, die in der Regel als Bytezahl geliefert werden, einfach als lesbare Einheit ausgegeben werden:

    public function formatBytes($size,$level=0,$base=1024) 
    {
        $unit = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB','YB');
        $times = floor(log($size,$base));
        return sprintf("%.2f",$size/pow($base,($times+$level)))." ".$unit[$times+$level];
    }

So werden dann z.B. "5456789" als "5.20 MB" dargestellt. Über den Parameter $level kann noch die Einheitebene verschoben werden. So werden dann mit $level = -1 "5456789" als "5328.90 kB" ausgegeben. Über $base kann dann noch angegeben werden ob mit 1000 oder 1024 als Basis für die nächste Einheitebene gerechnet wird.

Symfony 2 und TCPDF

Für die Erstellung von PDF-Dokumenten gibt es diverse gute oder schlechte PHP-Bibliotheken im Netz. Besonders gut finde ich persönlich das Paket TCPDF.

Wer TCPDF mit Symfony 2 (Version 2.3.x) nutzen möchte, kann dies relativ einfach tun. Dazu muss zunächst das Paket via composer geladen werden. Dazu muss die composer.json im root-Directory wie folgt angepasst werden:

    "require": {
        ...
        "tecnick.com/tcpdf": "dev-master"
        ...
    },

Anschließend führt ihr ein Composer-Update aus:

php composer.phar update

Wer hier Probleme mit einem Composer-Timeout aufgrund einer langsamen Internetleitung bekommt, dem sei dieses kleine Tutorial ans Herz gelegt.

Im Controller könnt ihr nun ganz einfach und wie in der Dokumentation von TCPDF beschrieben die PDF-Klasse nutzen. Der Klassenaufruf erfolgt dann so:

$pdf = new \TCPDF(...)

Um den führenden Slash zu vermeiden, könnt ihr im Controller ein use TCPDF; nutzen. Dann kann die Klasse wie gewohnt aufgerufen werden:

$pdf = new TCPDF(...)

Editor: Sublime Text

Heute möchte ich euch mal einen sehr guten, robusten und vor allem plattformübergreifenden Editor vorstellen. Mit Sublime Text existiert ein Editor, der bereits nach der Installation viele sehr gute Funktionen enthält und daher nur noch wenig angepasst werden muss. Für mich ein wichtiges Kriterium, da oft die Zahl der Probleme mit der Anzahl der Installationen von Plug-Ins etc. ansteigt.

Weiterlesen