Unsere kreativen Köpfe entwickeln maßgeschneiderte Apps für Geräte wie das iPhone, das iPad, den iPod Touch oder Facebook. Zu unseren Kunden zählen Unternehmen aus den Bereichen Dienstleistung, Handel, Banken, Versicherung, Immobilien sowie Tourismus und Freizeit.

Neu: PHP5 Grundlagen-Kurse

Abgelegt von Sascha Schoppengerd am 02.05.2010 um 09:15 Uhr

Durch die neue Plugin-Technologie in easyLink V3 haben viele unserer Kunden ein wenig PHP-Duft schnuppern können und da wir bei einigen Kunden hier scheinbar großes Interesse an diesem Thema geweckt haben, möchten wir diesen Trend nun durch die Einführung eines PHP5 Grundlagen-Kurses unterstützen.

Die beiden Webinare PHP5 Grundlagen – Modul I und Modul II vermitteln Ihnen das notwenige Wissen um PHP-Anwendungen in Zukunft eigenständig erweitern oder sogar entwicklen zu können. Damit Sie mit dem Lernstoff auch nicht überfordert werden, haben wir den gesamten Kurs auf insgesamt 8 interaktive Lernstunden aufgeteilt.

Hier mal ein Ausschnitt aus dem Inhalt der Module

  • Installation
    Installation und Konfiguration eines lokalen Testsystems mit Webserver Apache, PHP und MySQL auf einem Windowssystem.
  • Fehlerbehandlung
    Einstellung des Fehlerlevels in der php.ini, Unterdrückung von PHP-Fehlermeldungen im Skript.
  • PHP und HTML
    Einbettung von PHP in HTML, die PHP-Tags, Ausgabe mit print und echo.
  • Kommentare
    Wie werden Kommentare gesetzt und wozu sind sie gut?
  • Datentypen
    Typen von Variablen, Zahlen, Zeichenketten und Wahrheitswerte.
  • Arrays
    Lernen Sie indizierte, assoziative und mehrdimensionale Arrays in PHP kennen.
  • Bedingte Anweisungen
    Bedingte Anweisungen mit if, elseif und else, Anweisungssequenzen mit switch.
  • u.v.m

Wenn auch Sie gern mehr über PHP5 und die damit verbundenen Möglichkeiten erfahren möchten, dann sollten Sie sich noch heute für das erste Grundlagen-Modul anmelden.

Selbstverständlich sind die Kurse nicht exklusiv auf unsere Kunden zugeschnitten, sondern vielmehr steht jedem interessiertem Leser die Teilnahme an diesem Angebot offen.

Wir suchen Verstärkung für unser Team

Abgelegt von Sascha Schoppengerd am 17.03.2010 um 07:43 Uhr

Für die Erstellung und Weiterentwicklung anspruchsvoller Online-Applikationen und Online-Shops suchen wir ab sofort einen PHP-Entwickler (m/w) mit ausreichenden Erfahrungen in der Entwicklung von gehosteten Systemen auf Basis von PHP und MySQL. Wenn du beispielsweise Freelancer bist, gerade eine studentische Nebentätigkeit suchst oder wenn du dich beruflich vielleicht neu orientieren möchtest und Lust hast in einem jungen, engagiertem Team zu arbeiten, dann ist das jetzt Deine Chance!

Deine Skills

  • Du verfügst über ein fundiertes Wissen im Bereich (X)HTML, CSS, jQuery, AJAX
  • Du verfügst über ein fundiertes Wissen im Bereich PHP5 (Zend-Framework) und MySQL
  • Von Vorteil sind Kenntnisse im Open Social-Bereich, OAuth
  • Zumindest theoretisches XML/XSL Wissen
  • Du verfügst über eine ausreichende Praxiserfahrung
  • Du kannst ggf. Referenzprojekte & Codebeispiele angeben
  • Du bist belastbar, stressfest, lösungsorientiert und kommunikativ
  • Du bist sicher im Umgang mit Werkzeugen wie SVN, Ticketsystemen oder Bug-Trackern

Deine Aufgaben

  • Du arbeitest eigenverantwortlich an umfangreichen Webprojekten.
  • Du beschäftigst dich mit dem Design von Datenbanken.
  • Die Dokumentation der Sourcen, sowie die Versionskontrolle gehören zu deinen Aufgaben.

Wenn wir jetzt dein Interesse geweckt haben sollten, dann freuen wir uns über Deine aussagekräftige Bewerbung (inkl. aussagekräftiger Referenzen und ggf. Codebeispielen). Bitte sende uns Deine Unterlagen unter Angabe Deiner Honorarvorstellung und Deines frühest möglichen Starttermins per E-Mail an: info@mountaingrafix.eu

Die eigene php.ini als Haftungsfalle?

Abgelegt von Sascha Schoppengerd am 04.11.2009 um 08:52 Uhr

Fast jeder Provider ermöglicht heute seinen Kunden die Anpassung der PHP Installation über eine eigene php.ini zu modifizieren und die Geschichte ist ja auch wirklich zu verlockend. Wenn meine Anforderungen von der Standard-Installation des Providers abweicht, dann erstelle ich mir meine persönliche php.ini, werfe diese auf den Server und schon sind alle glücklich.

Aber ist das wirklich so? Nicht immer wie wir bei unser täglichen Arbeit mit den einzelnen Providern feststellen mussten, den viele Anbieter nutzen genau diese Gelegenheit um den eigenen Kopf bei Haftungsfragen aus der Schlinge zu ziehen oder um zumindest einen Teil der Kosten auf den eigenen Kunden zu übertragen. Und wer liest schon wirklich die ganzen AGB?

So findet sich z.B. bei der Strato AG der folgende Text:

Der Kunde ersetzt STRATO alle Schäden, die aus einer Verletzung der vorstehenden Regelungen entstehen, soweit er dies zu vertreten hat. Der Schadensersatz erfasst auch die angemessenen Kosten einer notwendigen Rechtsverteidigung.

Hört sich ja erst einmal nicht so dramatisch an, aber was besagen die vorstehenden Regelungen denn genau? Schaut man dann ein weiteres mal hin, dann stößt man auch auf Passagen wie diese:

4.3 Der Kunde ist verpflichtet, seine Systeme und Programme so einzurichten, dass weder die Sicherheit, die Integrität noch die Verfügbarkeit der Systeme, die STRATO zur Erbringung ihrer Dienste einsetzt, beeinträchtigt wird.

Doch was soll man als Kunde unter diesen Zeilen nun verstehen? Was genau darf ich den tun um die Sicherheit und die Stabilität der einzelnen Systeme nicht zu gefährden. Gefährde ich diese Sicherheit bereits dann, wenn ich z.B. über meine php.ini den safe_mode deaktiviere oder wenn ich allow_url_fopen aktiviere?

Eine Antwort auf genau diese Fragen bleiben und die Geschäftsbedingungen schuldig und so ist es vermutlich eine reine Auslegungsache der Firma Strato ist, was hier erlaubt ist und was nicht. Nachfragen beim Support ergeben jedenfalls in genau dieses Bild, denn verschiedenen Kunden wurde in der Vergangenheit vom Anbieter mitgeteilt, dass er bei Nutzung einer eigenen php.ini sowohl den Support-Anspruch verliert, als auch bei einem Problem in Haftung genommen wird.

Nun mag ich nicht darüber urteilen, in wie weit eine solche Reglung rechtlich überhaupt tragbar ist, doch fest steht das ein möglicher Rechtsstreit um eine derartige Haftungsfrage mächtig ins Geld gehen dürfte und so sollte man lieber im Vorfeld etwas vorsichtiger sein. Schaut also mal genauer in die AGB eures Providers und fragt im Zweifel einfach mal nach, wie es sich beim Einsatz einer individuellen Konfiguration mit der Haftung verhält.

Zend Framework: Beispiel für ein Auth Plugin

Abgelegt von Sascha Schoppengerd am 23.10.2009 um 10:41 Uhr

Wenn ein Projekt über einen geschlossenen Nutzer- oder Adminbereich verfügt, dann steht man immer wieder vor der Problematik, dass man den Login-Status des Besuchers auf vielen Unterseiten abfragen und ggf. auswerten muss. Bei großen Projekten kann das manchmal ziemlich mühselig werden, doch wenn das Projekt auf dem Zend Framework basiert, dann läßt sich so etwas mit Hilfe der Controller-Plugins sehr schnell umsetzen.

Zunächst benötigen wir innerhalb des Plugin’s die aktive Objekt-Instanz von Zend_Auth. Das unser Beispiel jedoch auch eine Rechteverwaltung auf Basis von Zend_Acl besitzt, lesen wir die dazu notwendige Objekt-Instanz gleich mal mit ein.

1
2
$aclObject = Zend_Registry::get('Zend_Acl');
$authObject = Zend_Auth::getInstance();

mehr…

Modulspezifisches LayoutScript im ZF

Abgelegt von Sascha Schoppengerd am 21.10.2009 um 15:10 Uhr

Auch wenn durch die Einführung von Zend_Application der Initialisierungsprozess einer Anwendung erheblich beschleunigt wurde, so bleibt noch immer der Wehrmutstropfen, dass in der zentralen application.ini noch immer kein modulspezifisches Layout geladen werden kann, da der Dispatch Prozeß in der Bootstrap-Datei noch nicht gestartet wurde.

Was also tun, wenn wir z.B. für einen Adminbereich ein vollkommen neues LayoutScript benötigen? Genau vor dieser Frage stand ich heute schon den ganzen Tag und wenn das Zend Framework schon ziemlich weit verbreitet ist, waren mit Hilfe der Suchmaschinen nur wenige Informationen zu diesem Thema zu finden.

Aktuell sieht der Layout-Abschnitt meiner application.ini wie folgt aus:

1
2
resources.layout.layout = "default"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

Zunächst hatte ich daran gedacht, das neue Layout in jedem Controller des Adminbereiches innerhalb der Methode init() zu setzen, doch das würde ja bedeuten, dass ich allen Controllern den gleichen Code hinterlegen muss und das wäre wohl ziemlich ineffektiv.

Die Lösung wäre also, denn Code automatisch bei jedem Aufruf des Admin-Moduls zu starten um so das LayoutScript zentral für alle abhängigen Controller zu setzen. Leider kommt man immer viel zu spät auf die Möglichkeit, den FrontController mit Hilfe von Plugins zu erweitern und so hat es auch bei mir eine ganze Weile gedauert, bis auf die folgende Lösung gekommen bin. mehr…

Die Ausgabe von var_dump formatieren

Abgelegt von Sascha Schoppengerd am 18.09.2009 um 08:57 Uhr

Anscheinend besteht bei meinen Lesern ein erhöhtes Interesse bei diesem Thema, denn immer wieder gelangen Besucher über die entsprechenden Keywords auf unseren Blog. Damit eurer Bemühen nun auch von Erfolg gekrönt ist, möchte ich euch kurz meine Methode zur Formatierung der var_dump() Ausgabe aufzeigen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
  * Wrapper für PHP var_dump()
  */
function debugVar($var, $exit = false) {
    echo "*** DEBUGGING VAR ***< pre >";
 
    if (is_array($var) || is_object($var)) {
        echo htmlentities(print_r($var, true));
    } elseif (is_string($var)) {
        echo "string(" . strlen($var) . ") \"" . htmlentities($var) . "\"\n";
    } else {
    	var_dump($var);
    }
 
    echo "\n</ pre >";
 
    if ($exit) {
        exit;
    }
}

Ich denke zu der Funktion selber brauche ich nicht viel zu sagen, denn die sollte sich eigentlich jeder selber erklären können. Bitte beachtet jedoch, dass ich den < pre > Tag aufgrund der Code Formatierung hier im Blog mit entsprechenden Leerzeichen ausrüsten musste. Das müßt Ihr bei der Nutzung in euren Scripts natürlich noch korrigieren.

Wenn eure Projekte jedoch auf dem Zend Framework basieren, dann braucht Ihr keine gesonderte Funktion zur Formatierung der var_dump() Ausgabe mehr definieren, denn hier könnt Ihr eigentlich ganz bequem auf die Methode Zend_Debug::dump() zurückgreifen.

Das Zend Framework Buch von Ralf Eggert

Abgelegt von Sascha Schoppengerd am 15.09.2009 um 08:54 Uhr

Cover Zend Framework BuchBedingt durch mein kürzlich durchgeführtes Upgrade auf Mac OSX SnowLeopard war ich in den letzten Tagen gezwungen auf die aktuelle Version 7 des Zend Studios zu aktualisieren.

In diesem Zusammenhang wollte ich mich dann natürlich auch mal wieder etwas näher mit dem Zend Framework beschäftigen, denn was nutzen einem all die schönen Funktionen in der IDE, wenn man sie am Ende kaum benutzt?

Also habe ich mich mal nach einigen deutschen Informationsquellen umgesehen und wurde eigentlich schnell wieder auf den Boden geholt, denn bis auf die bekannte Community habe ich lediglich das Zend Framework Buch von Ralf Eggert ausfindig machen können.

Sicherlich gibt es noch einige andere Bücher zu diesem Thema, doch letztendlich konnten mich bei diesen Kandidaten die Rezensionen der anderen Leser nicht wirklich zu einem Kauf bewegen. mehr…