cvs: php-gtk-doc /manual/de/tutorials hello_world.xml helloadvanced.xml installation.xml

[email protected] ("Christian Weiske")
Newsgroups php.gtk.doc
Message-ID <cvscweiske1160556659@cvsserver>
cweiske		Wed Oct 11 08:50:59 2006 UTC

  Added files:                 
    /php-gtk-doc/manual/de/tutorials	hello_world.xml helloadvanced.xml 
                                    	installation.xml 
  Log:
  three German tutorials
cweiske-20061011085059.txt (text/plain, 27 KB)
http://cvs.php.net/viewvc.cgi/php-gtk-doc/manual/de/tutorials/hello_world.xml?view=markup&rev=1.1
Index: php-gtk-doc/manual/de/tutorials/hello_world.xml
+++ php-gtk-doc/manual/de/tutorials/hello_world.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- $Revision: 1.1 $ -->
<chapter id="tutorials.helloworld">
 <title>Hallo Welt (Grundlage)</title>

  <simpara>
   Wenn Sie anfangen, eine Programmiersprache zu erlernen, ist das erste
   Programme, das Sie schreiben ein 'Hallo Welt' Programm. Um uns
   allen anderen anzupassen, wird die erste Übung in diesem Handbuch ein
   'Hallo Welt' Programm sein!
  </simpara>
  <simpara>
   Überall in den Übungen setzten wir ein angemessenes Wissen von PHP voraus.
   Der Aufbau der Übungen verleiht dem Leser sowohl das Wissen, wie man PHP-GTK 
   benutzt, als auch das Wissen über die Technik im Hintergrund.
  </simpara>
  <simpara>
   In dieser Übung erstellen wir ein einfaches Fenster, in dem der Text "Hallo Welt!"
   enthalten sein wird.
  </simpara>
  <simpara>
   Wir beginnen mit der Auflistung des Programms und erklären anschließend jede
   Zeile des Programms, und geben einen Überblick zur Funktionsweise einer einfachen
   PHP-GTK-Anwendung.
  </simpara>


  <example>
   <title>Ein einfaches "Hallo Welt"-Beispiel</title>
   <programlisting role="php">
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" 
     href="&directory.examples;/tutorials/helloworld/helloworld.phpw" parse="text">
     <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
    </xi:include>
   </programlisting>
  </example>

  <para>
   Kopieren Sie nun den Quelltext in einen Texteditor und speichern sie ihn als
   <filename>hello.phpw</filename>. Anschließend öffnen Sie eine Konsole und starten
   das Skript durch <command>php hello.phpw</command>. Es erscheint ein Fenster mit
   dem Titel "Hello world", das nichts außer dem Text
   "Just wanted to say 'Hello world!'" enthält.
  </para>


  <example>
   <title>Überprüfen, ob PHP-GTK vorhanden ist</title>
   <programlisting role="php"><![CDATA[if (!class_exists('gtk')) {
    die("Please load the php-gtk2 module in your php.ini\r\n");
}]]></programlisting>
  </example>

  <para>
   Wir stellen sicher, dass PHP-GTK vorhanden ist, in dem wir überprüfen, ob 
   die Klasse <literal>gtk</literal> existiert. Im Gegensatz zu PHP 4 und PHP-GTK 1,
   sollten Sie nicht versuchen das PHP-GTK Modul durch
   <ulink url="http://www.php.net/dl">dl()</ulink> zu laden.
   Dies wurde in PHP 5 verworfen, und sollte nicht in neu geschriebenem Code
   verwendet werden. Alles, was wir tun können ist die Ausgabe einer Nachricht, dass
   das Modul nicht vorhanden ist und vom Benutzer aktiviert werden soll.
  </para>


  <example>
   <title>Ein Fenster erstellen</title>
   <programlisting role="php"><![CDATA[$wnd = new GtkWindow();]]></programlisting>
  </example>

  <para>
   Das Erstellen eines neuen <link linkend="gtk.gtkwindow">window</link> Widgets
   ist genau so leicht, wie die Instanzierung eines neuen Objekts: der Variable
   <literal>$wnd</literal> wird das neue Objekt zugewiesen. Falls Sie schon mit
   PHP 4 und PHP-GTK 1 programmiert hatten, werden Sie das kaufmännische Und
   <literal>&amp;</literal> vor <literal>new</literal> vermissen. Dies war in
   PHP 4 erforderlich, sollte aber nicht mehr in PHP 5 benutzt werden,
   weil Referenzen automatisch erstellt werden.
  </para>


  <example>
   <title>Setzen des Fensternamens</title>
   <programlisting role="php"><![CDATA[$wnd->set_title('Hello world');]]></programlisting>
  </example>

  <simpara>
   Um die Identifizierung des Fensters in der Fensterleiste leichter zu ermöglichen,
   setzen wir einen Fensternamen:
   Ein ganz einfacher Aufruf einer Objektmethode.
  </simpara>


  <example>
   <title>Ein sauberes Beenden ermöglichen</title>
   <programlisting role="php"><![CDATA[$wnd->connect_simple('destroy', array('gtk', 'main_quit'));]]></programlisting>
  </example>

  <para>
   Dies ist der wirklich erste interessante Teil des Quelltexts: Das
   <signalname class="GtkObject">destroy</signalname> Signal wird
   an die statische <link linkend="gtk.method.main_quit">Gtk::main_quit</link> 
   Methode verbunden. Es sagt einfach zu GTK, dass es die main Schleife
   verlassen soll, wenn das Fenster geschlossen/zerstört wird.
   (Die Main-Schleife wird in eingen Abschnitten weiter unten erklärt.)
  </para>


  <example>
   <title>Ein Label zur Darstellung des Texts erstellen</title>
   <programlisting role="php"><![CDATA[$lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'");]]></programlisting>
  </example>

  <para>
   Wie auch zuvor, erstellen wir ein neues Widget. Diesmal wollen wir einen
   kleinen Text darstellen, und <classname>GtkLabel</classname> erweist sich
   als perfekt für diese Aufgabe.
  </para>


  <example>
   <title>Das Label zum Fenster hinzufügen</title>
   <programlisting role="php"><![CDATA[$wnd->add($lblHello);]]></programlisting>
  </example>

  <simpara>
   Jetzt sagen wir dem Fenster, dass das Label direkt hinzugefügt werden soll.
  </simpara>


  <example>
   <title>Das Fenster sichtbar machen</title>
   <programlisting role="php"><![CDATA[$wnd->show_all();]]></programlisting>
  </example>

  <para>
   Bis jetzt sehen Sie nichts auf Ihrem Bildschirm. Um das Fenster
   sichtbar zu machen, müssen Sie die <function class="GtkWidget">show</function>-
   Methode aufrufen. Das macht das Fenster sichbar, aber nicht das Label - wir müssten
   auch die <function class="GtkWidget">show</function>-Methode für das
   Label aufrufen. Das ist sehr ungünstig, wenn Sie mehrere Widgets, zum
   Beispiel Knöpfe, Checkboxen und andere im Fenster haben:
   <function class="GtkWidget">show_all</function> übernimmt das Sichtbarmachen
   des Fensters und aller Kindelemente.
  </para>


  <example>
   <title>Starten der Hauptschleife</title>
   <programlisting role="php"><![CDATA[Gtk::main();]]></programlisting>
  </example>

  <para>
   Nachdem alles eingestellt wurden, müssen wir sicherstellen, dass das
   Fenster offen bleibt und auf alle Benutzerinteraktionen reagiert.
   Ein normales PHP Skript würde zu Ende sein und an dieser Stelle stoppen,
   aber wir wollen es laufen lassen: Dazu muss die main Schleife gestartet
   werden. Sie sorgt dafür, dass die Applikation ausgeführt wird und auf
   Benutzerereignisse wartet. Wenn Ereignisse auftreten, leitet es sie
   an die entsprechenden Callbacks.
  </para>


 <sect1 id="tutorials.helloworld.futherreading">
  <title>Literaturhinweise</title>
  <para>
   Nachdem Sie nun Ihre erste PHP-GTK 2 Applikation erstellt haben, wollen 
   Sie vielleicht ein komplexeres Layout erstellen. Um das Grundlegende
   zu lernen, schauen Sie sich die
   <link linkend="tutorials.packing">Verschachtelungsübung</link> an.
  </para>
 </sect1>

</chapter>
http://cvs.php.net/viewvc.cgi/php-gtk-doc/manual/de/tutorials/helloadvanced.xml?view=markup&rev=1.1
Index: php-gtk-doc/manual/de/tutorials/helloadvanced.xml
+++ php-gtk-doc/manual/de/tutorials/helloadvanced.xml
<chapter id="tutorials.helloadvanced">
<!-- $Revision: 1.1 $ -->
 <title>Hallo Welt (Fortgeschritten)</title>

 <simpara>
  Diese Übung behandelt einige fortgeschrittenere
  Funktionalitäten als die erste Hallo Welt Übung.
  Hier erstellen wir ein Loginfenster, in dem der
  Benutzer seinen Benutzernamen und sein Passwort 
  eingeben kann. Wenn der Benutzer den Loginknopf
  drückt, werden die Textfelder überprüft, und eine
  Fehlermeldung wird angezeigt wenn der Benutzer
  seinen Namen oder sein Passwort vergessen hat.
 </simpara>

 <para>
  Hier ein Screenshot, wie das Programm aussieht, wenn
  es fertig ist:
  <graphic fileref="&directory.images;/tutorials/helloadvanced.png"/>
 </para>

 <para>
  Zuerst erstellen wir ein Fenster, setzen den Fensternamen und sagen
  der Hauptschleife, dass sie das beendet werden soll, wenn das Fenster
  zerstört wird - Sie kennen das bereits aus der ersten Übung:
  <informalexample>
   <programlisting role="php"><![CDATA[
$wnd = new GtkWindow();
$wnd->set_title('Login');
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));
]]></programlisting>
  </informalexample>
 </para>

 <para>
  Die nächste Aufgabe ist das Erstellen aller Elemente, die wir
  für diesen Dialog brauchen werden: Zuerst zwei Texteingabe
  Felder für den Benutzernamen und das Passwort:
  <informalexample>
   <programlisting role="php"><![CDATA[
$txtUsername = new GtkEntry();
$txtPassword = new GtkEntry();
]]></programlisting>
  </informalexample>
  Anschließend wollen wir den Benutzer wissen lassen, welches
  Textfeld für das Passwort und den Benutzernamen ist, deshalb
  brauchen wir einige aussagekräftige Labels:
  <informalexample>
   <programlisting role="php"><![CDATA[
//The second parameter says that the underscore should be parsed as underline
$lblUsername = new GtkLabel('_Username', true);
$lblPassword = new GtkLabel('_Password', true);
]]></programlisting>
  </informalexample>
  Und zuletzt brauchen wir zwei Knöpfe: Einen für das Anmelden, und einen,
  um den Vorgang abzubrechen:
  <informalexample>
   <programlisting role="php"><![CDATA[
$btnLogin    = new GtkButton('_Login');
$btnCancel   = new GtkButton('_Cancel');
]]></programlisting>
  </informalexample>
  Sie haben vielleicht gemerkt, dass der <classname>GtkLabel</classname> 
  Konstruktor einen zweiten Parameter übergeben bekommt, um festzulegen,
  dass der Unterstrich <literal>_</literal> als Unterstreichung des nächsten
  Zeichens gezeigt werden soll, aber das wird nicht im <classname>GtkButton</classname>
  Konstruktor erledigt: Der Button-Konstruktor macht dies automatisch,
  während der Label Konstruktor dies nicht tut. Dieses Verhalten
  mag Ihnen seltsam erscheinen, aber die Wahrscheinlichkeit, dass Sie
  ein "Mnemonic Label" auf einem Button haben möchten ist viel höher,
  als dass sie das bei einem normalen Label wollen.
 </para>

 <para>
  Nun müssen die Labels wissen, was für ein Widget aktiviert
  werden muss, wenn sie über den Mnemonic aktiviert werden.
  Dies wird auf folgende Weise gemacht:
  <informalexample>
   <programlisting role="php"><![CDATA[
$lblUsername->set_mnemonic_widget($txtUsername);
$lblPassword->set_mnemonic_widget($txtPassword);
]]></programlisting>
  </informalexample>
  Desweiteren, müssen wir festlegen, welche Aktion ausgeführt werden
  sollen, wenn die Knöpfe gedrückt werden.
  Der Abbrechen Knopf soll das Fenster zerstören (und somit die Applikation
  beenden) und der Loginknopf soll die Textfelder auf Korrektheit überprüfen
  und weitere Aktionen ausführen:
  <informalexample>
   <programlisting role="php"><![CDATA[
$btnCancel->connect_simple('clicked', array($wnd, 'destroy'));
$btnLogin ->connect_simple('clicked', 'login', $wnd, $txtUsername, $txtPassword);
]]></programlisting>
  </informalexample>
  Wir übergeben die drei Widgets <varname>$wnd</varname>,
  <varname>$txtUsername</varname> und <varname>$txtPassword</varname>
  als zusätzliche Parameter an die (noch zu definierende)
  <literal>login</literal> Funktion, weil wir sie dort brauchen werden:
  Um die Werte der Textfelder zu bekommen, und um das Fenster wenn alles 
  in Ordnung ist zu zerstören/verbergen.
 </para>

 <para>
  Da wir jetzt alle Widgets, die wir brauchen, haben, werden sie dem
  Fenster hinzugefügt. Da <classname>GtkWindow</classname> ein
  binärer Container ist, kann es nur ein einzelnes Widget beihalten.
  Deshalb brauchen wir einen Container, der mehrere Widgets beinhalten
  kann und auch unsere Elemente schön anordnen kann.
  Die Entscheidung fällt auf <classname>GtkTable</classname>, weil es
  uns ermöglicht, die Labels in eine Spalte zu packen, und die
  Eingabefelder in der nächsten Spalte:
  <informalexample>
   <programlisting role="php"><![CDATA[
$tbl = new GtkTable(3, 2);
$tbl->attach($lblCredit, 0, 2, 0, 1);
$tbl->attach($lblUsername, 0, 1, 1, 2);
$tbl->attach($txtUsername, 1, 2, 1, 2);
$tbl->attach($lblPassword, 0, 1, 2, 3);
$tbl->attach($txtPassword, 1, 2, 2, 3);
]]></programlisting>
  </informalexample>
  (Die <varname>$lblCredit</varname> Variable ist einfach ein Label mit 
  einer Nachricht). Die Buttons erhalten ihre eigene
  <classname>GtkHButtonBox</classname>, weil diese Klasse es einem erlaubt,
  mehrere Knöpfe auf einfache Weise ansprechend anzuordnen:
  <informalexample>
   <programlisting role="php"><![CDATA[
$bbox = new GtkHButtonBox();
$bbox->set_layout(Gtk::BUTTONBOX_EDGE);
$bbox->add($btnCancel);
$bbox->add($btnLogin);
]]></programlisting>
  </informalexample>
 </para>

 <para>
  Das Letzte am Layout ist das Hinzufügen der Tabelle und der Box
  für die Knöpfe zum Fenster. Dies ist nicht direkt möglich, weil
  <classname>GtkWindow</classname> ein <classname>GtkBin</classname>
  ist und nur ein Widget beinhalten kann. Deshalb brauchen wir einen
  anderen Container, diesmal eine <classname>GtkVBox</classname>:
  <informalexample>
   <programlisting role="php"><![CDATA[
$vbox = new GtkVBox();
$vbox->pack_start($tbl);
$vbox->pack_start($bbox);
]]></programlisting>
  </informalexample>
  Das war es, nun können wir das Fenster anzeigen:
  <informalexample>
   <programlisting role="php"><![CDATA[
$wnd->add($vbox);
$wnd->show_all();
Gtk::main();
]]></programlisting>
  </informalexample>
 </para>

 <para>
  Das Letze, was noch fehlt, ist die <literal>login</literal>funktion,
  die aufgerufen wird, wenn the Benutzer den Loginknopf 
  drückt. Sie soll die Werte des Benutzername- und Passwortfeldes
  überprüfen: Wenn Ihre Länge 0 ist (der Benutzer hat nichts eingegeben),
  wird eine Fehlermeldung angezeigt. Wenn alles in Ordnung ist, wird
  das Fenster zerstört und das Programm könnte mit dem Laden des
  Hauptfensters fortfahren.
 </para>

 <para>
  Das Erhalten des Textes aus den Widgets ist sehr einfach, wir
  benutzten nur die
  <function class="GtkEntry">get_text</function>-Methode
  von <classname>GtkEntry</classname>:
  <informalexample>
   <programlisting role="php"><![CDATA[
$strUsername = $txtUsername->get_text();
$strPassword = $txtPassword->get_text();
]]></programlisting>
  </informalexample>
  Die Überprufung läuft über die normale php-<literal>strlen</literal>-Funktion.
  Falls ein Fehler auftritt, wollen wir eine kleine Messagebox mit einer
  kurzen Nachricht anzeigen.
  <classname>GtkMessageDialog</classname> ist eignet sich hervorragend 
  dazu, da es automatisch die Symbole und Knöpfe erstellt (Ok, Ja/Nein):
  <informalexample>
   <programlisting role="php"><![CDATA[
$dialog = new GtkMessageDialog($wnd, Gtk::DIALOG_MODAL, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, $errors);
$dialog->set_markup("The following errors occured:\r\n<span foreground='red'>" . $errors . "</span>");
$dialog->run();
$dialog->destroy();
]]></programlisting>
  </informalexample>
 </para>

 <para>
  Zuletzt stellen Sie sicher, dass Sie die login Funktion vor(!) der main Schleife
  einfügen und führen Sie es aus.
 </para>

 <example>
  <title>Das ganze Programm</title>
  <programlisting role="php">
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
               href="&directory.examples;/tutorials/helloadvanced/helloadvanced.phpw"
               parse="text">
    <xi:fallback>FIXME: MISSING XINCLUDE CONTENT</xi:fallback>
   </xi:include>
  </programlisting>
 </example>

</chapter>
http://cvs.php.net/viewvc.cgi/php-gtk-doc/manual/de/tutorials/installation.xml?view=markup&rev=1.1
Index: php-gtk-doc/manual/de/tutorials/installation.xml
+++ php-gtk-doc/manual/de/tutorials/installation.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- $Revision: 1.1 $ -->
<chapter id="tutorials.installation">
 <title>Installation von PHP-GTK 2</title>

  <sect1 id="tutorials.installation.introduction">
   <title>Einleitung</title>
   <para>
    PHP-GTK 2 is eine Erweiterung zu PHP und kann nur mit Version 5.1 oder
    höher benutzt werden. Obwohl der häufigste Weg PHP-GTK2 zu installieren 
    das Kompilieren ist, kann sich dieser Vorgang als sehr schwierig auf
    Windows erweisen; in diesem Falle werden die meisten Leute das offizielle
    PHP-GTK 2 Binärpaket oder das Gnope-Installationsprogramm benutzen.
   </para>
   <para>
    Wir werden den Installationprozess auf den drei meistbekannten
    Betriebssystemen abdecken: Windows, Linux und Mac OS X.
    Die Anweisungen für Linux sind auf den meisten Distributionen
    anwendbar, die POSIX komatibel sind.
   </para>
  </sect1>

  <sect1 id="tutorials.installation.windows">
   <title>Installation unter Windows</title>

   <sect2 id="tutorials.installation.windows.gnope">
    <title>Benutzung von Gnope</title>
    <para>
     Gnope hat sich als die einfachste Art PHP-GTK 2 unter Windows zu 
     installieren bewährt. Gnope is ein voll ausgestattetes
     PHP-GTK 2-Installationsprogramm, komplett mit PHP 5.1, GTK 2.6 und PEAR.
     Einige einfache Mausklicks und Sie sind fertig!
    </para>
    <para>
     Laden Sie einfach das Programm von <ulink url="&url.gnope;">gnope.org</ulink>
     herunter und folgen Sie den Bildschirmanweisungen. Gnope hat auch einen
     eigenen PEAR-kompatiblen Channel, in dem Sie PHP-GTK 2 Anwendungen,
     zusätzlich zu offiziellen PEAR Paketen,
     z.B. aus der <ulink url="&url.pear.gtk2;">Gtk2 Kategorie</ulink>,
     herunterladen können.
    </para>
   </sect2>

   <sect2 id="tutorials.installation.windows.manual">
    <title>Manuelle Installation</title>
    <para>
     Ladenen Sie das Alpha-Binärpaket von PHP-GTK 2 für Windows von der
     PHP-GTK 2 <ulink url="&url.phpgtk.download;">Downloadseite</ulink>.
     Extrahieren Sie die Dateien in ein Verzeichnis Ihrer Wahl. Ein
     Verzeichnis <literal>php-gtk</literal> wird erstellt und beinhaltet
     den Paketinhalt.
    </para>
    <para>
     Sie benötigen eine Kopie von <filename>php.exe</filename> (CLIversion) und
     <filename>php5ts.dll</filename>, beide sind im Binärpaket von PHP 5 für
     Windows enthalten, und legen Sie diese in das <filename>php-gtk</filename>
     Verzeichnis ab. Falls sie es bevorzugen weitere Erweiterungen mit dieser
     Kopie von <filename>php.exe</filename> zu benutzen, stellen Sie sicher, dass 
     Sie deren Binärdateien auch in diesem Verzeichnis ablegen.
    </para>
    <para>
     <!-- FIXME: Do we need to do this? I doubt that this is necessary
        -cweiske -->
     Danach müssen Sie Ihre <literal>PATH</literal> Umgebung setzen, um 
     das <filename>gtk+2.6.9</filename> Verzeichnis für dieses Paket zugänglich 
     zu machen. Sie können auch die <literal>gtkpath.bat</literal> Batchdatei 
     für Sie die passende <literal>PATH</literal>-Variable für die derzeitige 
     Kommandozeilen Sitzung setzen lassen, indem Sie diese ausführen.
    </para>
   </sect2>

   <sect2 id="tutorials.installation.windows.cvs">
    <title>Kompilierung aus dem CVS</title>
    <para>
     Dies ist die letzte in Erwägung zu ziehende Methode PHP-GTK 2 unter
     Windows zu installieren. Falls Sie immer noch dieses Vorhaben
     durchsetzen wollen, bitte lesen Sie <filename>win32/README.win32.txt</filename> 
     im CVS.
    </para>
   </sect2>
  </sect1>

  <sect1 id="tutorials.installation.linux">
   <title>Installation unter Linux</title>

   <para>
    Die beste Weg PHP-GTK 2 unter Linux zu installieren, ist es zu kompilieren.
    Bisher sind keine Binärpakete oder Binärpakete für irgendwelche Distributionen
    verfügbar, deshalb können Sie nicht Ihren Lieblingspaketmanager benutzen, um
    PHP-GTK 2 zu installieren! Diese Anweisungen sollten für die meisten Linux
    Distributionen funktionieren, als auch für andere POSIX-genormte Systeme.
   </para>

   <note>
    Die hier aufgelisteten Vorgehensweisen funktionieren nach
    Erfahrungsberichten nicht unter FreeBSD
   </note>

   <para>
    Es gibt zwei Möglichkeiten, PHP-GTK 2 auf Linuxsystemen zu installieren.
    Sie können entweder die bereits auf Ihrem Linux System
    vorhandene PHP-Installation zu benutzen, oder eine seperate
    PHP-Installation zu erstellen und diese nur für PHP-GTK 2 zu verwenden.
    Die letztere ist die einfacherere Methode und wird Benutzern empfohlen,
    die wenig oder gar keine Linuxkenntnisse haben.
    In jedem Fall brauchen Sie eine installieretes Gtk+, Version 2.6 oder höher.
   </para>

   <sect2 id="tutorials.installation.linux.newphp">
    <title>Installation von PHP-GTK 2 zusammen mit einer neuen PHP-Installation</title>

    <para>
     Folgen Sie einfach den Schritten, und alles sollte funktionieren!
     Das erste was Sie brauchen, ist ein frischer Checkout von PHP.
     Sie können entweder die <literal>5_1</literal> oder
     <literal>5_2</literal> Branch verwenden, mit beiden
     funktioniert es:

     <programlisting role="bash"><![CDATA[
$ cvs -d :pserver:[email protected]:/repository login
$ cvs -d :pserver:[email protected]:/repository co -r PHP_5_2 php-src]]></programlisting>

     Jetzt, müssen Sie sie kompilieren und installieren:

     <programlisting role="bash"><![CDATA[
$ cd php-src
$ ./buildconf
$ ./configure --prefix=/opt/php5_2 --disable-cgi
$ make
$ su
$ make install
$ echo extension=php_gtk2.so >> /opt/php5_2/lib/php.ini
$ /opt/php5_2/bin/php-config --extension-dir | xargs echo 'extension_dir=' >> /opt/php5_2/lib/php.ini]]></programlisting>
    </para>

    <note>
     <para>
      Falls des aktuelle CVS von PHP nicht kompiliert,
      verwenden Sie ein offizielles Paket von der
      <ulink url="&url.php.download;">php Download Seite</ulink>,
      oder einen <ulink url="&url.php.snapshots;">Schnappschuss</ulink>.
     </para>
    </note>

    <para>
     Lassen Sie uns jetzt PHP-GTK 2 auschecken und installieren:

      <programlisting role="bash"><![CDATA[
$ cd ..
$ cvs -d :pserver:[email protected]:/repository co php-gtk
$ cd php-gtk
$ ./buildconf --with-phpize=/opt/php5_2/bin/phpize
$ ./configure --with-php-config=/opt/php5_2/bin/php-config
$ make
$ make install]]></programlisting>
    </para>

    <para>
     Sie möchten vielleicht einen Link zu neuen php Programmdatei erstellen:

      <programlisting role="bash"><![CDATA[
$ ln -s /opt/php5_2/bin/php /usr/bin/php-gtk]]></programlisting>

     Das ist alles, Sie sind fertig!
    </para>
   </sect2>

   <sect2 id="tutorials.installation.linux.existingphp">
    <title>Eine vorhandene PHP-Installation verwenden</title>

    <para>
     Falls Sie sich dazu entschließen, PHP-GTK 2 zu Ihrer vorhanden PHP
     Installation "hinzuzufügen", stellen sie sicher dass Ihrere PHP
     Version mindestens 5.1 ist, mit aktiviertem CLI.
     PHP-GTK 2 wird NICHT mit irgendeiner anderen Version von PHP funktionieren.
     Sie können Ihre PHP Version prüfen, indem Sie <command>php -v</command> 
     in der Kommandozeile eintippen. Vergessen Sie nicht zu prüfen, dass das 
     Wort <literal>cli</literal> in der Ausgabe erscheint!
    </para>

    <para>
     Holen Sie nun die aktuellen Quelltext aus dem CVS von PHP-GTK 2, oder laden Sie
     den Alpha-Quelltext-Archiv herunter, wie auf der PHP-GTK 2
     <ulink url="&url.phpgtk.download;">Downloadseite</ulink> erläutert wird.
     <literal>cd</literal> in das geholte / extrahierte Verzeichnis, und
     führen Sie folgendes aus:
     <programlisting role="bash"><![CDATA[
$ ./buildconf
$ ./configure
$ make
$ make install]]></programlisting>
    </para>

    <para>
     Dies müsste bei den meisten Leuten funktionieren.
     Falls mehrere Installationen von PHP auf Ihrem System existieren oder Sie
     PHP an irgendeinem exotischen Ort installiert haben, könnten Sie
     einigen Problemen begegnen. Die meisten dieser Fälle können gelöst
     werden, indem man den exakten Aufenthaltsort der <literal>phpize</literal>
     und der <literal>php-config</literal> Programmdateien angibt:
     <programlisting role="bash"><![CDATA[
$ ./buildconf --with-phpize=/path/to/phpize
$ ./configure --with-php-config=/path/to/php-config]]></programlisting>
    </para>
   </sect2>

   <sect2 id="tutorials.installation.linux.testing">
    <title>Testen der Installation</title>

    <para>
     Bevor Sie PHP-GTK 2 verwenden können, müssen Sie die Erweiterung
     in Ihrer php.ini aktivieren. Fügen Sie einfach ein
     <programlisting role="ini"><![CDATA[
extension=php_gtk2.so]]></programlisting>
     unter allen anderen <literal>extension=</literal> Einstellungen hinzu.
    </para>

    <para>
     Sie können testen, ob Ihre Installation erfolgreich war, indem
     Sie folgendes ausführen:

     <programlisting role="bash"><![CDATA[
$ php -m | grep php-gtk]]></programlisting>

     Sie sollte eine einzelne Zeile sehen, in der
     <literal>php-gtk</literal> steht.
    </para>

    <para>
     Als nächsten können Sie die Demoanwendungen im <filename>demos</filename> 
     Verzeichnis der php-gtk Quelltexte ausprobieren, z.B. 
     <filename>demos/phpgtk2-demo.php</filename>.
    </para>
   </sect2>
  </sect1>

  <sect1 id="tutorials.installation.macosx">
   <title>Installation unter Mac OS X</title>

    <para>
     Sie müssen sicherstellen, dass Sie die Apple Developer Tools, das BSD Subsystem,
     und eine Installation von X haben, bevor Sie versuchen PHP-GTK 2 zu 
     installieren. Obwohl das BSD Subsystem standardmäßig unter Mac OS X
     installiert ist, müssen Sie manuell die Developer Tools und den X-Server
     auswählen. Obwohl Sie irgendeinen X-Server verwenden können, ist es am 
     einfachsten den zu benutzen, der von Apple standardmäßig im
     Mac OS X Installer bereitgestellt wird.
   </para>

    <para>
     Holen Sie die <ulink url="&url.macports;">MacPorts</ulink> (früher bekannt als
     DarwinPorts) oder <ulink url="&url.fink;">Fink</ulink> und installieren
     Sie es. Sie können entweder es dazu benutzen eine Version von X (wenn Sie sich 
     gegen Apple's standardmäßige Distribution entschlossen haben), und um Gtk+
     selbst zu installieren. Sowohl Fink als auch MacPorts stellen Version 2.6 und
     höher von Gtk+ zur Verfügung.
    </para>

    <para>
     Nachdem Sie alles von oben an einem Ort haben, holen Sie die 5_2 Branch von
     PHP, kompilieren und installieren Sie diese. Obwohl Sie sie überall hin
     installieren dürfen, gilt <literal>/usr/local</literal> im Ganzen als eine
     gute Wahl.

     <programlisting role="bash"><![CDATA[
$ cvs -d :pserver:[email protected]:/repository co -r PHP_5_2 php-src
$ cd php-src
$ ./buildconf
$ ./configure --disable-cgi
$ make
$ sudo make install]]></programlisting>
    </para>

    <para>
     Nun holen Sie den aktuellen PHP-GTK Code und kompilieren Sie diesen:

     <programlisting role="bash"><![CDATA[
$ cd..
$ cvs -d :pserver:[email protected]:/repository co php-gtk
$ cd php-gtk
$ ./buildconf --with-phpize=/usr/local/bin/phpize
$ ./configure --with-php-config=/usr/local/bin/php-config \
            --disable-libglade
$ make
$ sudo make install]]></programlisting>
    </para>

    <para>
     Zum Schluss, kopieren Sie die <literal>php.ini-recommended</literal> Datei 
     nach <literal>/usr/local/lib/php.ini</literal> und ändern Sie den Wert von
     <literal>extension_dir</literal> in das Verzeichnis, das
     <literal>php_gtk2.so</literal> enthält. Dies ist normalerweise sowas wie:
     <literal>/usr/local/lib/php/extensions/no-debug-non-zts-some-date</literal>.
     Sie mögen vielleicht einen neuen symbloischen Link in <literal>/usr/bin</literal>
     erstellen, der auf <literal>/usr/local/bin/php</literal> zeigt.
    </para>

    <para>
     Nun fahren Sie weiter fort mit dem
     <link linkend="tutorials.installation.linux.testing">Testen der Installation</link>.
    </para>
   </sect1>

</chapter>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.