PHPUnit mit Codeigniter 3 installieren

Um PHPUnit mit Codeigniter 3 zu verwenden benötigt man die Erweiterung ci-phpunit-test die mindestens PHP Version 5.4 voraussetzt.

Die neuste Version von PHPunit benötigt PHP 5.6, es sollte also eine möglichst aktuelle PHP Version installiert sein.

Als kann PHPUnit installiert werden.

Dann kann man den application/test Ordner aus dem downloadbaren .zip Archiv von ci-phpunit-test in das Codeigniter Projekt entpackt werden. weiterlesen…

Teil 1: Clean Code – Regeln für guten, sauberen Code

Sauberen und leicht verständlichen Code zu schreiben ist das höchste Ziel in einem guten IT-Projet. Vieles hängt davon ab:

  • Wartbarkeit
  • Einarbeitungszeit für andere Programmierer, versteht man schnell, was einzelne Funktionen erledigen
  • Robustheit bei Änderungen
  • Testbarkeit, fällt alles zusammen, bei kleinen Änderungen, können schnell stabile Updates bereitgestellt werden
  • Popularität bei anderen Programmierern z.B: bei Open Source Projekten, als negative Beispiel sei XT-Commerce genannt

Das sehr zu empfehlende Standardwerk zu dem Thema ist “Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code” von Robert C. Martin. In diesem Artikel werden Kapitel 1 bis 3 behandelt.

Aussagekräftige Namen

Der Namen einer Variable, Funktion oder Klasse sollte sofort erklären, warum Sie existiert, was sie tut und wie sie benutzt wird. Wenn eine Variable einen Kommentar benötigt, drückt Sie ihren Zweck nicht aus.

Bsp:

int d //Anzahl vergangener Tage
besser ist:
int daysSinceCreation;

Aussprechbare Namen verwenden

Keine Konstrukte mit unklaren Abkürzungen wie: int daSiCre anstatt von daysSinceCreation.

Suchbare Namen verwenden

Moderne IDEs machen das Suchen einfach, aber es nützt nichts, wenn man nach dem Buchstaben e einer Laufvariable suchen muss und von Ergebnissen überschwemmt wird.

Variablen Namen mit einem Buchstaben sind nur als lokale Variablen in kurzen Methoden zu verwenden.

weiterlesen…

$_GET Variablen in CodeIgniter und SEO

CodeIgniter hat aufgrund der Sichheitsprobleme von Get-Variablen dieses standmäßig deaktiviert, d.h. sie werden überschrieben beim Starten der Webseite.

Ein Möglichkeit GET-Variablen trotzdem zu nutzen und gleichzeitig suchmaschinenfreundliche URLs zu erzeugen ist:

$this->uri->segment(3)

Dieser Befehl gibt bei einer URL namens:http://www.foo.de/1/2/3/ den Wert 3 zurück.

Der Vorteil ist, dass keine Namen-Wert-Paare mehr in der URL befindlich sind, sondern nur noch die Werte, was die Länge der URL verkürzt und sehr seo freundlich ist. Der Nachteil ist, dass die Reihenfolge sich natürlich verändern kann und es dann zu Problen kommt.

RESTful Services in CodeIgniter und White Screen

Um einen RESTful Service in CodeIgniter einzubauen, nutzt man am besten die sehr gute Bibliothek von Phil Sturgeon, vielen Dank dafür!

Ich habe mich leider mit dem White Screen of Death bei Code Igniter rumschlagen müssen und folgende Lösung gefunden: Die Bibliothek in der neusten Version 2.4 funktioniert nicht mit CodeIgniter 1.7x. Es sollte die Version 2.2 der Bibliothek installiert werden.

Um das zu überprüfen, kann die Versionsnummer von CodeIgniter in der Datei system/codeigniter/CodeIgniter.php herausgefunden werden.

Wenn der REST-Service läuft, sollte man übrigends die folgende Zeile in der  REST_controller.php abändern,damit deutsche Umlaute und Sonderzeichen korrekt ohne Error : Entity ‘ouml’ not defined usw. angezeigt werden:

Zeile 693

$value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, "UTF-8");

CodeIgniter debuggen mit FirePHP

Codeignitor macht einem das debuggen nicht einfach, weil bei einem normalen printf oder var_dump() Ausgaben die komplette Seite nicht geladen wird und es nur einen Serverfehler zurückgibt. Deshalb wird der Entwickler gezwungen, sein Projekt ordentlich zu debuggen, es gibt mehrer Möglichkeiten:

  1. per Logfile
  2. nutzen der oben benannten Funktion und danach ein die()
  3. XDebug, was aber lokal einfach möglich ist
  4. FirePHP für den Firefox
  5. per Codeigniter Profiler

Die Installation von FirePHP in Codeignitor ist sehr gut hier beschrieben.

Die Debug Informationen können mit folgendem Code in der Firebug Konsole ausgegeben werde:

$this->firephp->log('Message');

Der sehr gute Codeigniter Profiler kann mit dem folgenden Befehl aktiviert werden:

            $this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
            $this->output->set_header("Cache-Control: post-check=0, pre-check=0");
            $this->output->set_header("Pragma: no-cache");
            $this->output->enable_profiler(TRUE);