<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ersocon.net - Science Blog &#187; PHP</title>
	<atom:link href="http://blog.ersocon.net/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.ersocon.net</link>
	<description>Zend Framework, PHP, Java</description>
	<lastBuildDate>Thu, 08 Jul 2010 11:53:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Geschichte und Syntax von PHP</title>
		<link>http://blog.ersocon.net/geschichte-und-syntax-von-php-pid34.html</link>
		<comments>http://blog.ersocon.net/geschichte-und-syntax-von-php-pid34.html#comments</comments>
		<pubDate>Sat, 19 Jun 2010 08:45:13 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Geschichte]]></category>
		<category><![CDATA[Syntax]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=34</guid>
		<description><![CDATA[In diesem Beitrag möchte ich euch die Syntax von PHP näher bringen. Die Syntax leitet sich geschichtlich von der Programmiersprache C ab. Allerdings finden sich auch Einflüsse der Programmiersprache Perl in PHP wieder. Seit PHP 5 und dem Einfluss von Java hat auch eine gewisse Java-Syntax in PHP Einzug gehalten. Dies mag aufgrund der vielen [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Beitrag möchte ich euch die Syntax von PHP näher bringen. Die Syntax leitet sich geschichtlich von der Programmiersprache C ab. Allerdings finden sich auch Einflüsse der Programmiersprache Perl in PHP wieder. Seit PHP 5 und dem Einfluss von Java hat auch eine gewisse Java-Syntax in PHP Einzug gehalten. Dies mag aufgrund der vielen unterschiedlichen Einflüsse im ersten Moment etwas verwirrend sein, so ist die Syntax von PHP doch recht einfach und simpel. Starten wir zunächst mit PHP-Dateien.<br />
<strong><br />
PHP-Dateien und PHP-Tags</strong></p>
<p>Um PHP-Dateien zu verstehen, schauen wir uns dazu einfach die ausformulierte Version der Abkürzung PHP an:Hypertext Preprocessor. Wie man sieht, handelt es sich scheinbar um eine Art Text, der verarbeitet werden kann. Das bedeutet im Umkehrschluss, dass wir PHP-Code auch in einer simplen Text-Datei unterbringen dürfen. Obligatorisch werden diese Dateien mit der Endung .php abgespeichert.</p>
<p>Als Kennzeichnung für PHP-Code dienen sogenannte PHP-Tags. Diese Tags bestimmen also wann Code beginnt und wann dieser endet. In PHP hat man vier verschiedene Möglichkeiten Tags auszuschreiben.</p>
<p>Die Standard-Tags (<?php ?>) sind der einfachste und beste Weg. Zum einen sind sie sowohl zukunftssicher als auch abwärtskompatibel. Ein weiterer Vorteil besteht darin, dass diese Notation nicht durch eine Änderung der PHP-Konfiguration abgestellt werden kann.</p>
<p>Die Kurztags (<? ?>) galten lange Zeit als Standard, sind jedoch mittlerweile in den aktuellen PHP-Versionen als deprecated gekennzeichnet. Diese Kennzeichnung bedeutet in der Software-Entwicklung, dass eine Klasse, Methode oder Notation veraltet ist und (aus gründen der Zukunftssicherheit der eigenen Anwendung) nicht mehr angewendet werden soll. Daneben kollidiert diese Notation oft mit der XML-Syntax.</p>
<p>Script-Tags wurden als Analogie zu Java-Script-Tags eingeführt. Somit konnten HTML-Programmierer leichter PHP-Code und HTML auseinander halten. Heutzutage spielt diese Notation fast keine Rolle mehr. Ebenso die ASP-Tags, die streng betrachtet noch nie eine gewisse Daseinsberechtigung genossen.</p>
<p>Ihr könnt selbstverständlich alle Tag-Notationen verwenden. Ich empfehle euch jedoch, sich an die impliziten Standards zu halten, damit ihre Web-Anwendung auch in Zukunft funktionsfähig bleibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/geschichte-und-syntax-von-php-pid34.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementierung des Singleton-Pattern in PHP</title>
		<link>http://blog.ersocon.net/implementierung-des-singleton-pattern-in-php-pid30.html</link>
		<comments>http://blog.ersocon.net/implementierung-des-singleton-pattern-in-php-pid30.html#comments</comments>
		<pubDate>Sun, 07 Mar 2010 10:03:34 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Singleton]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=30</guid>
		<description><![CDATA[Das Singleton-Pattern ist eines der einfachsten Pattern und lässt sich auch in PHP implementieren. Es sorgt dafür, dass von einer Singleton-Klasse jeweils nur eine Instanz erzeugt werden kann. Somit ist das Objekt zentral zugänglich, was allerdings auch als großer Nachteil ausgelegt werden kann.]]></description>
			<content:encoded><![CDATA[<p>Das Singleton-Pattern ist eines der einfachsten Pattern und lässt sich auch in PHP implementieren. Es sorgt dafür, dass von einer Singleton-Klasse jeweils nur eine Instanz erzeugt werden kann. Somit ist das Objekt zentral zugänglich, was allerdings auch als großer Nachteil ausgelegt werden kann.</p>
<p>Eine Beispielimplementierung kann z.B. wie folgt aussehen:</p>
<pre class="brush:php">
/**
 * Implementierung des Singleton Pattern
 *
 * Der Konstruktor und das Klonen sind private Methoden, können
 * somit nicht von außen aufgerufen werden.
 */
class Singleton
{
    /*
     * @var Singleton
     */
    static private $_instance = null;

    /**
     * Konstruktor
     */
    private function __constructor() {}
    private function __clone() {}

    /**
     * Liefert die einzelne Instanz
     */
    static public function getInstance()
    {
        if (is_null(self::$_instance)) {
            self::$_instance = new self;
        }
        return self::$_instance;
    }
}
</pre>
<p>Instanziierung im Programmcode</p>
<pre class="brush:php">
// Objekt instanziieren
$singleton = Singleton::getInstance();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/implementierung-des-singleton-pattern-in-php-pid30.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basics zu PHP Variablen</title>
		<link>http://blog.ersocon.net/basics-zu-php-variablen-pid28.html</link>
		<comments>http://blog.ersocon.net/basics-zu-php-variablen-pid28.html#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:38:19 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Variablen]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=28</guid>
		<description><![CDATA[In meinem ersten Tutorial zu PHP (Basics zu PHP &#8211; First Steps Tutorial) habe ich bereits einige kleine Beispiele geschildert. In diesem Beitrag soll sich nun alles um Variablen in PHP drehen. Das Tutorial richtet sich in erster Linie an PHP-Einsteiger, enthält aber auch interessante Tipps für erfahrene Entwickler.
Um PHP-Variablen beschreiben zu können, möchte ich [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem ersten Tutorial zu PHP (<a href="http://blog.ersocon.net/basics-zu-php-first-steps-tutorial-pid19.html">Basics zu PHP &#8211; First Steps Tutorial</a>) habe ich bereits einige kleine Beispiele geschildert. In diesem Beitrag soll sich nun alles um Variablen in PHP drehen. Das Tutorial richtet sich in erster Linie an PHP-Einsteiger, enthält aber auch interessante Tipps für erfahrene Entwickler.</p>
<p>Um PHP-Variablen beschreiben zu können, möchte ich zunächst die Frage klären, was Variablen eigentlich sind. Rein technisch müsste man nun kurz und knapp zusammenfassen: <em>Eine Variable ist eine veränderliche Größe im Programm</em>. Ein etwas anschaulicheres Bild &#8211; welches ich häufig verwende, um Laien Variablen zu erklären &#8211; könnte z.B. so aussehen: Man stelle sich ein Programm als einen großen Schrank mit vielen Schubladen vor. Die Schubladen sind beschriftet, man kann sie aufschieben/zuschieben, etwas hineinlegen und natürlich Dinge aus Schubladen entnehmen. Die Beschriftung der Schubladen sind sogenannte Variablennamen. Das Beschriften selbst, genauer gesagt die Aktion, nennt man <em>Variablendefinition</em>. Der Inhalt einer Schublade ist der Wert einer Variable, welcher natürlich auch leer sein kann. Ich kann nun eine Schublade öffnen, meine Schuhe hineinlegen und die Schublade zuschieben. In der Entwicklung spricht man hier von der <em>Wertzuweisung</em>. Der Zugriff auf eine Variable ist im weitesten Sinne das einfache Hineinschauen in eine Schublade (z.B. um zu prüfen, ob sie evtl. leer ist).</p>
<p>Im PHP-Code werden Variablen mit einem einfachen Dollarzeichen markiert, in etwa so:</p>
<pre class="brush:php">$meineErsteVariable = 'Hallo Welt';</pre>
<p>In der Zeile habe ich bereits mehrere Dinge erledigt. Ich habe eine Schublade beschriftet (mit dem Namen &#8220;meineErsteVariable&#8221;) und bereits den Text &#8220;Hallo Welt&#8221; hineingelegt. Ihr seht also, dass eine Wertzuweisung durch ein einfaches Gleichheitszeichen erfolgt. Was auch zu erkennen ist, dass Variablennamen aus einem zusammenhängenden Text bestehen müssen. In der Entwicklung verwendet man oft die CamelCase-Schreibweise (eine Schreibweise von zusammengesetzten Worten bei der die einzelnen Worte ohne Zwischenraum aber jeweils mit einem Großbuchstaben am Anfang geschrieben werden), um die Lesbarkeit zu erhöhen.</p>
<p><strong>Datentypen</strong></p>
<p>Mit diesem Verständnis könnt ihr nun mit den Variablen arbeiten. Der Wert einer Variable kann beliebig sein, PHP nimmt es hier ein wenig lockerer als andere Programmiersprachen, wie z.B. Java. Das bedeutet, dass ich in einer Variable einen &#8220;Text-Wert&#8221; (String) oder auch einen &#8220;Zahlen-Wert&#8221; (Integer) zuweisen kann, ohne dies vorher explizit festgelegt zu haben. String und Integer sind Datentypen und nur ein kleiner Auszug der insgesamt möglichen Datentypen in PHP.</p>
<p><strong>Mit Variablen arbeiten</strong></p>
<p>Eine Interessante Verwendung der Variablen findet sich beim Berechnen von Werten. Nachfolgend einige (kommentierte) Beispiele:</p>
<p>Beispiel Addition:</p>
<pre class="brush:php">
// Definition und Zuweisung der Variable $anzahlRoterBälle, Wert 4
$anzahlRoterBaelle = 4;

// Definition und Zuweisung der Variable $anzahlBlauerBälle, Wert 3
$anzahlBlauerBaelle = 3;

// Addition, die Gesamtanzahl aller Bälle, Wert 7
$gesamtAnzahl = $anzahlRoterBaelle + $anzahlBlauerBaelle;
</pre>
<p>Beispiel Subtraktion:</p>
<pre class="brush:php">
// Kontostand vorher, Wert 1500
$kontostand = 1500;

// Kosten für einen neuen PC, Wert 600
$kostenComputer = 600;

// Subtraktion, neuer Kontostand, Wert 900 (1500 - 600)
$kontostand = $kontostand - $kostenComputer;
</pre>
<p>An beiden Beispielen kann man bereits viele wichtige Aspekte beim Umgang mit Variablen erkennen. In Beispiel 1 habe ich eine Addition mit Hilfe des Plus-Operators durchgeführt. Des Weiteren sieht man, dass in Variablennamen keine Sonderzeichen vorkommen dürfen (am Anfang eine recht häufige Fehlerquelle). In Beispiel 2 (Subtraktion) ist das Besondere, dass wir in Zeile 8 einer Variable aus Zeile 2 einen neuen Wert zuweisen. D.h. bis zur Änderung hat die Variable $kontostand den Wert 1500 und danach 900. Natürlich gibt es auch verschiedene weitere Operatoren, die man zum Arbeiten mit Variablen verwenden kann. Die häufigsten notiere ich nachfolgend:</p>
<pre class="brush:php">
// Variable a
$a = 1;

//Variable b
$b = 2;

// Addition, (1 + 2 = 3)
$ergebnis = $a + $b;

// Subtraktion (2 - 1 = 1)
$ergebnis = $b - $a;

// Division (1/2 = 0.5)
$ergebnis = $a / $b;

// Multiplikation (1 x 2 = 2)
$ergebnis = $a * $b;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/basics-zu-php-variablen-pid28.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu für das Zend Framework konfigurieren</title>
		<link>http://blog.ersocon.net/ubuntu-fur-das-zend-framework-konfigurieren-pid20.html</link>
		<comments>http://blog.ersocon.net/ubuntu-fur-das-zend-framework-konfigurieren-pid20.html#comments</comments>
		<pubDate>Wed, 03 Mar 2010 21:11:18 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=20</guid>
		<description><![CDATA[Aus aktuellem Anlass &#8211; einer Neuinstallation meines Systems &#8211; möchte ich euch die Schritte erklären, die zu einer lokalen LAMP (Linux Apache MySQL und PHP) Entwicklungsumgebung für Zend-Framework Projekte unter Ubuntu 9.10 Karmic Koala führen.
Ein fertiges Linux-System solltet ihr mit Ubuntu ja bereits besitzen. D.h. den nächsten Schritt, den man gehen muss, ist den Apache-Server [...]]]></description>
			<content:encoded><![CDATA[<p>Aus aktuellem Anlass &#8211; einer Neuinstallation meines Systems &#8211; möchte ich euch die Schritte erklären, die zu einer lokalen LAMP (Linux Apache MySQL und PHP) Entwicklungsumgebung für Zend-Framework Projekte unter Ubuntu 9.10 Karmic Koala führen.</p>
<p>Ein fertiges Linux-System solltet ihr mit Ubuntu ja bereits besitzen. D.h. den nächsten Schritt, den man gehen muss, ist den Apache-Server zu installieren. Unter Ubuntu bewerkstelligt man dies in der Console mit dem einfachen Aufruf</p>
<pre class="brush:shell">sudo apt-get install apache2</pre>
<p>Eine Internetverbindung vorausgesetzt, solltet ihr nun die Download-, Installations- und Konfigurationsroutine sehen. Um zu überprüfen, ob der Apache nach der Installation läuft, öffnet einen Browser eurer Wahl und versucht die Adresse http://127.0.1.1 aus. Ihr solltet etwas in der Art &#8220;It Works&#8221; zu lesen erhalten.</p>
<p>Das Zend-Framework basiert ja bekanntlich auf PHP und so benötigen wie jetzt entsprechend PHP. Um PHP5 zu installieren, bemüht man widerum die Console und holt die aktuelle Version aus den Quellen:</p>
<pre class="brush:shell">sudo apt-get install php5</pre>
<p>Nach erfolgreicher Installation sollte der Apache neu starten und wir können überprüfen, ob die Installation korrekt ausgeführt wurde. Dazu wechselt man in das Web-Verzeichnis des Servers:</p>
<pre class="brush:shell">cd /var/www</pre>
<p>Hier sollte bereits eine index.html existieren, die wir schon im Web-Browser bewundern durften. Mit dem Aufruf&#8230;</p>
<pre class="brush:shell">sudo gedit phpinfo.php</pre>
<p>&#8230; erstellt man die Datei phpinfo.php und öffnet diese gleichzeitig mit dem (in Ubuntu mitgelieferten) Editor, welcher übrigens um einges mächtiger ist, als z.B. Notepad unter Windows, da er für sehr viele Dateitypen Syntax-Highlighting unterstützt. In diese Datei fügt ihr nun folgende Zeile ein und speichert die Datei ab:</p>
<pre class="brush:php">&lt;?php phpinfo(); ?&gt;</pre>
<p>Damit haben wir eine Test-PHP-Datei erstellt, welche die Methode phpinfo aufruft und uns somit ausführliche Informationen über die installierte PHP-Version liefert. Diese Datei könnt ihr über den Web-Browser unter http://127.0.1.1/phpinfo.php aufrufen. Bei erfolgreicher PHP-Installation solltet ihr nun PHP-Informationen (z.B. die Version) sehen.</p>
<p>Einen großen Teil habt ihr damit schon geschafft und könntet schon fast  mit einem Zend-Projekt anfangen. Was noch fehlt ist die Datenbank und  das Apache ModRewrite Modul. Wofür die Datenbank (MySQL) gebraucht wird, sollte klar sein. Das Modul benötigen wir, um euer Projekt zu &#8220;privatisieren&#8221;. Das bedeutet, dass wir &#8211; gemäß ZF-Vorgabe &#8211; einzig und allein einen öffentlichen Zugriff auf die index.php anbieten.</p>
<p>Starten wir doch mit dem Einfacheren, dem Modul. Dieses ist nämlich schon installiert und muss nur noch aktiviert werden. Dazu wieder die Konsole:</p>
<pre class="brush:shell">sudo a2enmod rewrite</pre>
<p>Kurze Erklärung dazu: a2 (Apache2, unser Server) en (enable, aktivieren) mod (Modul) rewrite. Eventuell &#8211; falls nicht automatisch durchgeführt &#8211; müsst ihr den Apache neu starten.</p>
<p>Nun möchten wir uns noch um die letzte Komponente, einen MySQL-Server kümmern. Dazu bemühen wir wieder die geliebte Konsole und holen uns den mysql-server mit Hilfe von apt:</p>
<pre class="brush:shell">sudo apt-get install mysql-server</pre>
<p>Bei der Installation solltet ihr die entsprechenden Zugriffspasswörter wählen, der Rest passiert automatisch. Für diejenigen, die phpMyAdmin kennen und nutzen möchten, bietet sich an das Paket phpmyadmin zu installieren, welches dann unter http://127.0.1.1/phpmyadmin zu finden ist.</p>
<pre class="brush:shell">sudo apt-get install phpmyadmin</pre>
<p>Mit dieser Konfiguration könnt ihr euch nun in aller Ruhe in ein neues Zend-Projekt stürzen. Falls ihr möchtet, könnt ihr auch entsprechende Tipps und Tutorials dazu in meinem kleinen ScienceBlog zur Hilfe nehmen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/ubuntu-fur-das-zend-framework-konfigurieren-pid20.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basics zu PHP &#8211; First Steps Tutorial</title>
		<link>http://blog.ersocon.net/basics-zu-php-first-steps-tutorial-pid19.html</link>
		<comments>http://blog.ersocon.net/basics-zu-php-first-steps-tutorial-pid19.html#comments</comments>
		<pubDate>Wed, 03 Mar 2010 09:28:24 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Hello World]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=19</guid>
		<description><![CDATA[In meinem ersten Tutorial werde ich versuchen euch die (absoluten) Grundlagen von PHP zu vermitteln. Ich hoffe, dass ich nicht zu sehr technisch abschweife, falls doch, weist mich gerne mit Hilfe der Kommentare darauf hin.
Nun also zu den ersten Schritten bei PHP. Ich gehe einfach mal davon aus, dass ihr es schon hinbekommen habt PHP [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem ersten Tutorial werde ich versuchen euch die (absoluten) Grundlagen von PHP zu vermitteln. Ich hoffe, dass ich nicht zu sehr technisch abschweife, falls doch, weist mich gerne mit Hilfe der Kommentare darauf hin.</p>
<p>Nun also zu den ersten Schritten bei PHP. Ich gehe einfach mal davon aus, dass ihr es schon hinbekommen habt PHP lauffähig zu bekommen, d.h. ihr seid in der Lage PHP Code auf einem Server (z.B. Apache) ausführen zu lassen. Um dies zu überprüfen, versucht doch bitte eine Datei zu erstellen (bei Windows z.B: mit dem Editor/Notepad und bei Ubuntu-Linux mit dem gedit) und diesen Inhalt abzuspeichern:</p>
<pre class="brush: php; ruler: true; first-line: 1;">&lt;?php phpinfo(); ?&gt;</pre>
<p>Speichert diese Datei unter dem Namen phpinfo.php ab und ruft es über den Browser eurer Wahl auf. Ihr sollte nun eine Ausgabe sehen, welche euch über die auf dem Server installierte PHP-Version Auskunft gibt und viele weitere Informationen bereit stellt. Die Ausgabe können wir später noch verwenden, zunächst reicht es aber als Nachweiss, dass PHP erfolgreich installiert ist.</p>
<p><strong>PHP-Code schreiben</strong></p>
<p>In einer PHP-Datei, d.h. mit der Endung .php kann man sowohl PHP-Code als auch reines HTML unterbringen. Mir als Entwickler sträuben sich leider des Öfteren die Haare, wenn beides in einer Datei passiert, aber ganz unvermeidbar ist es nicht. Gehen wir doch Schritt für Schritt vor. Um PHP-Code in der Datei zu markieren, verwendet man sogenannte öffnende und schließende PHP-Tags, in etwa so:</p>
<pre class="brush: shell; ruler: true; first-line: 1;">&lt;?php // Hier würde nun PHP Code stehen ?&gt;</pre>
<p>HTML-Elemente darf man &#8216;einfach-so&#8217; hinschreiben. Ein kleiner Mix aus PHP- und HTML-Code könnte z.B. so aussehen:</p>
<pre class="brush: php; ruler: true; first-line: 1;">&lt;?php
// Hier würde nun PHP Code stehen
?&gt;
<div>Hello PHP-World</div>

&lt;?php
// Hier würde nun weiterer PHP Code stehen
?&gt;</pre>
<p>Damit sind auch schon die ersten Beispiele für PHP fertig. Ihr könnt diese gerne speichern und auf eurem Entwicklungsrechner ausprobieren. Viele passieren wird dabei nicht, da wir ja eigentlich auch noch nichts programmiert haben.</p>
<p><strong>Kommentieren lernen</strong></p>
<p>Ganz wichtig sind sogenannte Kommentare. Kommentare dienen dazu den Code zu erklären. D.h. man macht sich direkt im Code Notizen. Diese Notizen werden bei der Ausführung des PHP-Codes einfach ignoriert. Das bedeutet, dass man hier Freitext verwenden darf. In PHP kann man diese entweder mit einem &#8220;//&#8221; (Doppelslash) oder &#8220;/* */&#8221; markieren. Allgemein gilt in der Entwicklung: Einzeilige Kommentare mit einem Doppelslash und mehrzeilige Kommentare mit der anderen Variante verwenden.</p>
<pre class="brush: php; ruler: true; first-line: 1;">// Einzeiliger Kommentar</pre>
<pre class="brush: php; ruler: true; first-line: 1;">/**
 * Mehrzeiliger Kommentar
 * Hier darf man ruhig etwas mehr schreiben
 */</pre>
<p>Wozu brauche ich Kommentare? Nun, das wird man spätestens dann merken, wenn man ein etwas größeres Projekt vor sich hat und der PHP-Code nicht mehr so übersichtlich und einfach zu lesen ist, wie in den ersten Beispielen. Kommentare können z.B. dabei helfen komplizierte Methoden zu erklären. Ich rate jedem an sich das Kommentieren so schnell wie möglich anzueignen. Es ist kein Muss, hilft aber unheimlich weiter.</p>
<p><strong>Das Hello World Beispiel</strong></p>
<p>Als Nächstes möchten wir einen Text ausgeben. Per HTML könnt ihr das bestimmt schon. Es gibt verschiedene Möglichkeiten Text direkt in PHP auszugeben. Ich verwende ganz gerne das <em>echo</em>.  Da es in PHP ein sogenanntes &#8220;reserviertes&#8221; Wort ist, sollte euer Editor &#8211; sofern er dies Unterstützt &#8211; auch entsprechend highlighten, in etwa so:</p>
<pre class="brush: php; ruler: true; first-line: 1;">echo 'Hello PHP-World';</pre>
<p>Diese Zeile würde und nun den &#8220;Hello PHP-World&#8221; in die Browser-Ausgabe zaubern. Einige Dinge möchte ich zu dem Echo noch erklären, es gibt nämlich auch die folgende Variante, von der ich aber abrate:</p>
<pre class="brush: php; ruler: true; first-line: 1;">echo "Hello PHP-World";</pre>
<p>An dieser Stelle sind die einfachen Anführungszeichen den doppelten gewichen. Der Nachteil ist, dass man nun im Text keine doppelten Anführungszeichen verwenden kann, ohne sie zu &#8220;Escapen&#8221;. Dazu wieder ein kleines Beispiel:</p>
<pre class="brush: php; ruler: true; first-line: 1;">echo 'Hello "PHP-World" in einem Satz';
echo "Hello \"PHP-World\" in einem Satz";</pre>
<p>Den Unterschied kann man recht schnell sehen. Was nun noch dazu kommen würde, wären die Variablen, die in den beiden Varianten unterschiedlich behandelt werden. Ich lasse es allerdings an dieser Stelle weg, da die Variablen erst in dem nächsten Tutorial erklärt werden. Für eine kleine PHP-Einführung soll es das zunächst gewesen sein. Falls es euch gefallen hat, könnt ihr euch natürlich direkt auf das nächste Tutorial stürzen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/basics-zu-php-first-steps-tutorial-pid19.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration PHP 5.2 auf 5.3</title>
		<link>http://blog.ersocon.net/migration-php-5-2-auf-5-3-pid14.html</link>
		<comments>http://blog.ersocon.net/migration-php-5-2-auf-5-3-pid14.html#comments</comments>
		<pubDate>Tue, 02 Feb 2010 23:42:27 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Migration]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=14</guid>
		<description><![CDATA[Im Rahmen meiner Recherche möchte ich hier einige Tipps zur Migration von PHP 5.2.x auf 5.3.x liefern. Das Besondere bei dieser Migration ist die Tatsache, dass PHP 5.3.x nicht abwärtskopatibel mit 5.2.x ist. In einer gewissen Hinsicht erscheint dies auch logisch, da die neue PHP Version bei Abwärtskompatibilität eher einer weitere 5.2.x, als eine 5.3.x [...]]]></description>
			<content:encoded><![CDATA[<p>Im Rahmen meiner Recherche möchte ich hier einige Tipps zur Migration von PHP 5.2.x auf 5.3.x liefern. Das Besondere bei dieser Migration ist die Tatsache, dass PHP 5.3.x nicht abwärtskopatibel mit 5.2.x ist. In einer gewissen Hinsicht erscheint dies auch logisch, da die neue PHP Version bei Abwärtskompatibilität eher einer weitere 5.2.x, als eine 5.3.x Version wäre.</p>
<p>Woaruaf sollte man nun also achten? Dieser Frage möchte ich mich in diesem Beitrag widmen. Eine etwas positive Nachricht zuerst: Falls man bisher schon bei der Programmierung auf Aktualität geachtet hat, wird man bei der Migration recht wenig zu tun haben. Andersherum sieht man sich ums größeren Problemen gegenüber je mehr man sich den älteren 5.2 Versionen gewidmet hat.</p>
<p><strong>Deprecated</strong><br />
Fangen wird doch mit etwas recht einfachem an. PHP bitet seit 5.3 die Möglichkeit auch E_DEPRECATED Warnings auszugeben. In vielen Fällen ist das sehr nützlich. So haben auch die Entwickler der 5.3 Version einige PHP-Methoden als deprecated markiert. D.h. diese Methoden soll man in Zukunft nicht mehr verwenden. In den meisten Fällen wird jeweils auf den passenden Ersatz hingewiesen. Man kann an dieser Stelle recht einfach migrieren indem man den eigenen Code nach diesen Methoden durchsucht: </p>
<ul>
<li>call_user_method()</li>
<li>call_user_method_array()</li>
<li>define_syslog_variables()</li>
<li>ereg()</li>
<li>ereg_replace()</li>
<li>eregi()</li>
<li>eregi_replace()</li>
<li>set_magic_quotes_runtime()/magic_quotes_runtime()</li>
<li>session_register()</li>
<li>session_unregister()</li>
<li>session_is_registered()</li>
<li>set_socket_blocking()</li>
<li>split()</li>
<li>spliti()</li>
<li>sql_regcase()</li>
</ul>
<p><strong>Reservierte Keywords</strong><br />
Das nächste Problem sollte in den meisten Fällen auch ohne große Anstrengung zu bewältigen sein. Seit 5.3 gibt es nämlich zwei weitere reservierte Keywords:</p>
<ul>
<li>goto</li>
<li>namespace</li>
</ul>
<p>Durchsucht man also den eigenen Code nach diesen Keywords, dürfte man recht schnell feststellen, ob dieser Migrationsschritt erfolgreich durchgeführt werden kann.</p>
<p><strong>Methoden mit Array-Parameter</strong><br />
Einige Methoden, die vor 5.3 noch Objekte und Arrays gleicherweise als Parameter akzeptiert haben erwarten nun einzig und allein Arrays als Parameter. Das bedeutet, dass man zunächst prüfen sollte, ob eine der Methoden im eigenen Code verwendet wird und falls dem so ist überprüfen muss, ob der übergebene Parameter ein Objekt ist. Dieses Objekt muss in dem Fall zunächst zu einem Array umgewandelt werden. Es handelt sich dabei um folgende Methoden:</p>
<ul>
<li>natsort()</li>
<li>natcasesort()</li>
<li>usort()</li>
<li>uasort()</li>
<li>uksort()</li>
<li>array_flip()</li>
<li>array_unique()</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/migration-php-5-2-auf-5-3-pid14.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
