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(...)

Symfony 2 Composer timeout

Wer timeout-Probleme hat bei der Nutzung des Composers hat (z.B. weil er eine lahme Leitung hat wie ich ;-)) dem sei die Variable COMPOSER_PROCESS_TIMEOUT ans Herz gelegt. Vergleicht dazu auch http://getcomposer.org/doc/03-cli.md.

In der Windows-Kommandozeile könnt ihr den Wert wie folgt setzen:

SET COMPOSER_PROCESS_TIMEOUT=20000

für 20 Minuten z.B. Beim anschließenden composer-Aufruf via

php composer.phar update

wird dann der längere Timeout verwendet und bricht nicht vorzeitig ab. Hoffe damit dem ein oder anderen weiterhelfen zu können.

 

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

Symfony 2

Symfony-Logo

Das Symfony Framework ist ein robustes PHP-Framework mit dem spielend kleinere und größere Projekte effizient umgesetzt werden können.

Das Framework Symfony 2 ist ein mächtiges und solides Framework mit dem die Realisierung kleiner und großer Webprojekte schnell möglich ist. Auf den Seiten des Frameworks findet ihr verschiedene Tutorials und Dokumentationen zu verschiedenen Aspekten des Frameworks. Weiterlesen