Re: [PHP-GTK-DOC] German translation for PHP-GTK 2
[email protected] ("Georgy Berdyshev")
| Newsgroups | php.gtk.doc |
|---|---|
| Message-ID | <[email protected]> |
Hello Steph, Thanks in advance! I'm attaching with this mail following files from cvs, translated into german: installation.xml hello_world.xml helloadvanced.xml Regards, Georgy
hello_world.xml
(text/xml, 6.5 KB)
<?xml version="1.0" encoding="utf-8" ?>
<!-- $Revision: 1.7 $ -->
<chapter id="tutorials.helloworld">
<title>Hallo Welt (Grundlage)</title>
<simpara>
Wenn Sie beginnen eine Programmiersprache zu erlernen, ist das erste
Programme, das Sie oft 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 vorraus.
Der Aufbau der bungen verleiht dem Leser sowohl das Wissen, wie man PHP-GTK
benutzt, als auch das Wissen und die Technik dahinter.
</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 erklren anschlieend jede
Zeile des Programms, und geben einen berblick zur Funktionsweise einer einfachen
PHP-GTK Anwendung.
</simpara>
<example>
<title>Ein einfaches Hallo Welt Skript</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>. Anschlieend ffnen Sie eine Konsole und straten
das Skript durch <command>php hello.phpw</command>. Es erscheint ein Fenster mit
dem Titel "Hello world", das nichts auer dem Text "Just wanted to say 'Hello world!'"
enthlt.
</para>
<example>
<title>berprfe, 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 berprfen, 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 knnen 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> Widget
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 Kaufmnnischeund
<literal>&</literal> vor <literal>new</literal> vermissen. Dies war in
PHP 4 erforderlich, darf 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 leichter in der Fensterleiste zu ermglichen,
setzen wir einen Fensternamen:
Ein ganz einfacher Aufruf einer Objekt Methode.
</simpara>
<example>
<title>Ein sauberes Herunterfahren ermglichen</title>
<programlisting role="php"><![CDATA[$wnd->connect_simple('destroy', array('gtk', 'main_quit'));]]></programlisting>
</example>
<para>
Dies ist der wirklich erste Interesse Teil des Quelltexts: Der
<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/zerstrt wird.
(Die Main Schleife wird in eingen Abschnitten weiter unten erklrt.)
</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 fr diese Aufgabe.
</para>
<example>
<title>Den Label zum Fenster hinzufgen</title>
<programlisting role="php"><![CDATA[$wnd->add($lblHello);]]></programlisting>
</example>
<simpara>
Jetzt sagen wir dem Fenster, dass der Label direkt hinzugefgt werden soll.
</simpara>
<example>
<title>Das Fenster sichtbar machen</title>
<programlisting role="php"><![CDATA[$wnd->show_all();]]></programlisting>
</example>
<para>
Bis jetzt, werden Sie nichts auf Ihrem Bildschirm sehen. Um das Fenster
sichtbar zu machen, mssen Sie die <function class="GtkWidget">show</function>
Funktion aufrufen. Das macht das Fenster sichbar, aber nicht das Label - wir mssten
auch die <function class="GtkWidget">show</function> Funktion fr das
Label aufrufen. Das ist sehr ungnstig, wenn Sie mehrere Widgets, zum
Beispiel Knpfe, Checkboxen und andere im Fenster haben:
<function class="GtkWidget">show_all</function> bernimmt das Sichtbarmachen
des Fensters und aller Kind Widgets.
</para>
<example>
<title>Starten der main Schleife</title>
<programlisting role="php"><![CDATA[Gtk::main();]]></programlisting>
</example>
<para>
Nachdem alles eingestellt wurden, mssen wir sicherstellen, dass das
Fenster offen bleibt und auf alle Benutzerinteraktionen reagiert.
Ein normales PHP Skript wrde zu Ende sein und an dieser Stelle stoppen,
aber wir wollen es laufen lassen: Dazu muss die main Schleife gestartet
werden. Sie sorgt dafr, dass die Applikation ausgefhrt 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">Packing
bung</link> an.
</para>
</sect1>
</chapter>
helloadvanced.xml
(text/xml, 8.1 KB)
<chapter id="tutorials.helloadvanced">
<!-- $Revision: 1.4 $ -->
<title>Hallo Welt (Fortgeschrittene)</title>
<simpara>
Diese bung behandelt einige mehr fortgeschrittene
Funktionalitten, als die erste Hallo Welt bung.
Hier erstellen wir ein Login Fenster, in dem der
Benutzer seinen Benutzernamen und sein Passwort
eingeben kann. Wenn der Benutzer den Login Knopf
drckt, werden die Textfelder berprft, und eine
Fehlermeldung wird angezeigt wenn der Benutzer
seinen Namen oder sein Passwort vergessen hat.
</simpara>
<para>
Hier ist ein Fensterabbild, 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 main Schleife, dass sie das beendet werden soll, wenn das Fenster
zerstrt wird - Sie wissen 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 nchste Aufgabe ist das Erstellen aller Widgets, die wir
fr diesen Dialog brauchen werden: Zuerst, zwei Texteingabe
Felder fr den Benutzernamen und das Passwort:
<informalexample>
<programlisting role="php"><![CDATA[
$txtUsername = new GtkEntry();
$txtPassword = new GtkEntry();
]]></programlisting>
</informalexample>
Anschlieend wollen wir den Benutzer wissen lassen, welches
Textfeld fr das Passwort und den Benutzernamen ist, deshalb
brauchen wir einige aussagekrftige 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 Knpfe: Einen fr Login, 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 zu sagen,
dass der Unterstrich <literal>_</literal> als Unterlinie des nchsten
Zeichens gezeigt werden soll, aber das wird nicht im <classname>GtkButton</classname>
Konstruktor erledigt: Der Button Konstruktor macht dies automatisch,
whrend der Label Konstruktor dies nicht tut. Dieses Verhalten
mag Ihnen seltsam erscheinen, aber es ist viel mehr, dass Sie
sich den Mnemonic Label eines Buttons als einen normalen Label merken.
</para>
<para>
Nun mssen die Labels wissen, was fr 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, mssen wir herausfinden welche Aktion ausgefhrt wird,
wenn die Knpfe gedrckt werden. Der Abbrechen Knopf soll das
Fenster zerstren (somit die Applikation beenden) und der Login
Knopf soll die Textfelder auf Korrektheit berprfen und weitere
Aktionen ausfhren:
<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 zustzliche 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 zerstren/verbergen.
</para>
<para>
Da wir jetzt alle Widgets, die wir brauchen haben, werden sie dem
Fenster hinzugefgt. Da <classname>GtkWindow</classname> ein
binrer Container ist, kann es nur ein einzelnes Widget beihalten.
Deshalb brauchen wir einen Container, der mehrere Widgets beinhalten
kann und auch unsere Elemente schn anordnen kann.
Die Entscheidung fllt auf <classname>GtkTable</classname>, weil es
uns ermglicht die Labels in einer Spalte zubeinhalten, und die
Eingabefelder in der nchsten 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 Knpfe sehr schn 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 Hinzufgen der Tabelle und der Box
fr die Knpfe zum Fenster. Dies ist nicht direkt mglich, 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 knnen 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 vermisst wird, ist die <literal>login</literal>
Funktion, die aufgerufen wird, wenn the Benutzer den Login Knopf
drckt. Sie soll die Werte des Benutzername- und Passwortfeldes
berprfen: Wenn Ihre Lnge 0 ist (der Benutzer hat nichts eingegeben),
wird eine Fehlermeldung angezeigt. Wenn alles in Ordnung ist, wird
das Fenster zerstrt und das Programm knnte 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 berprufng luft ber die normale php <literal>strlen</literal>
Funktion. Falls ein Fehler auftrat, wollen wir eine kleine Messagebox
mit einer kurzen Nachricht anzeigen.
<classname>GtkMessageDialog</classname> ist eignet sich hervorragend
dazu, da es automatisch die Symbole und Knpfe erstellt (Ok, Yes/No):
<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
einfgen und fhren 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>
installation.xml
(text/xml, 11.9 KB)
<?xml version="1.0" encoding="utf-8" ?>
<!-- $Revision: 1.9 $ -->
<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
hher benutzt werden. Obwohl der hufigste Weg PHP-GTK2 zu installieren
das Kompilieren ist, kann sich dieser Vorgang als sehr langwierig auf
Windows zeigen; in diesem Falle werden die meisten Leute das offizielle
PHP-GTK 2 Binrpaket oder den Gnope Installer benutzen.
</para>
<para>
Wir werden den Installationprozess auf den drei meist bekannten
Betriebssystemen: Windows, Linux und Mac OS X abdecken. Die Anweisungen
fr Linux sind auf den meisten Distributionen im Zusatz zu anderen
POSIX komatiblen Systemen anwendbar.
</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 und unterhalten bewhrt. Gnope is ein voll ausgestatteter
PHP-GTK 2 Installer, komplett mit PHP 5.1, GTK 2.6 und PEAR.
Einige einfache Mausklicks und Sie sind fertig!
</para>
<para>
Laden Sie einfach den Installer von <ulink url="&url.gnope;">gnope.org</ulink>
herunter und folgen Sie den Bildschirmanweisungen. Gnope hat auch einen
eigenen PEARartigen Kanal, wo Sie PHP-GTK 2 Anwendungen, zustzlich zu
offiziellen PEAR Paketen, z.B. aus der <ulink url="&url.pear.gtk2;">Gtk2 Kategorie</ulink>
herunterladen knnen.
</para>
</sect2>
<sect2 id="tutorials.installation.windows.manual">
<title>Manuelle Installation</title>
<para>
Ladenen Sie das Alpha Binrpaket von PHP-GTK 2 fr Windows von der
PHP-GTK 2 <ulink url="&url.phpgtk.download;">Download</ulink> Seite.
Extrahieren Sie die Dateien in ein Verzeichnis Ihrer Wahl. Ein
Verzeichnis <literal>php-gtk</literal> wird erstellt und beinhaltet
den Paketinhalt.
</para>
<para>
Sie bentigen eine Kopie von <filename>php.exe</filename> (CLI Version) und
<filename>php5ts.dll</filename>, beide sind im Binrpaket von PHP 5 fr
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 Binrdateien auch in diesem Verzeichnis ablegen.
</para>
<para>
<!-- FIXME: Do we need to do this? I doubt that this is necessary
-cweiske -->
Danach mssen Sie Ihre <literal>PATH</literal> Umgebung setzen, um
das <filename>gtk+2.6.9</filename> Verzeichnis fr dieses Paket zugnglich
zu machen. Sie knnen auch die <literal>gtkpath.bat</literal> Batch Datei
fr Sie die passende <literal>PATH</literal> Variable fr die derzeitige
Kommandozeilen Sitzung setzen lassen, indem Sie diese ausfhren.
</para>
</sect2>
<sect2 id="tutorials.installation.windows.cvs">
<title>Kompilierung vom CVS</title>
<para>
Dies ist die letzte zur Erwgung 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 Checkout.
</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 Binrpakete oder Binrpakete fr irgendwelche Distributionen
verfgbar, deshalb knnen Sie nicht Ihren Lieblingspaketmanager benutzen, um
PHP-GTK 2 zu installieren! Diese Anweisungen sollten fr die meisten Linux
Distributionen stimmen, sowohl fr andere POSIX genormte Systeme.
</para>
<note>Die hier aufgelisteten Vorgehensweisen funktionieren nach Erfahrungsberichten
nicht unter FreeBSD</note>
<para>
Es gibt zwei Mglichkeiten PHP-GTK 2 unter Linux Systemen zu installieren.
Sie knnen entweder es sich aussuchen, die bereits auf Ihrem Linux System
vorhandene PHP Installation zu benutzen, oder sich entscheiden eine seperate
PHP Installation zu erstellen und diese PHP-GTK 2 zu widmen. Die letztere ist
die einfacherere Methode und wird Benutzern empfohlen, die wenig oder gar keine
Linux Kenntnisse haben. In jedem Fall, brauchen Sie eine installierete Gtk+
Version 2.6 oder hher.
</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 knnen entweder die
<literal>5_1</literal> oder <literal>5_2</literal> Branch verwenden, mit beiden
funktioniert es gut:
<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, mssen 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 der aktuelle CVS Inhalt 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 mchten 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 entschlieen PHP-GTK 2 zu Ihrer vorhanden PHP
Installation "hinzu zufgen", 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 knnen Ihre PHP Version prfen, indem Sie <command>php -v</command>
in der Kommandozeile eintippen. Vergessen Sie nicht zu prfen, dass das
Wort <literal>cli</literal> in der Ausgabe erscheint!
</para>
<para>
Holen Sie nun die aktuellen CVS Quelltext von PHP-GTK 2, oder laden Sie
den Alpha Quelltext Tarball herunter, wie aufer PHP-GTK 2
<ulink url="&url.phpgtk.download;">Download</ulink> Seite erlutert wird.
<literal>cd</literal> in das geholte / extrahierte Verzeichnis, und
fhren Sie folgendes aus:
<programlisting role="bash"><![CDATA[
$ ./buildconf
$ ./configure
$ make
$ make install]]></programlisting>
</para>
<para>
Dies msste bei den meisten Leuten funktionieren. Wie auch immer,
falls mehrere Installationen von PHP auf Ihrem System oder Sie
PHP an irgendeinem exotischen Ort installiert haben, knnten Sie
einigen Problemen begegnen. Die meisten dieser Flle knnen gelst
werden, indem man den exakten Aufenthaltsort der <literal>phpize</literal>
under <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 knnen, mssen Sie die Erweiterung
in Ihrer php.ini aktivieren. Fgen Sie einfach ein
<programlisting role="ini"><![CDATA[
extension=php_gtk2.so]]></programlisting>
unter allen anderen <literal>extension=</literal> Einstellungen hinzu.
</para>
<para>
Sie knnen testen, ob Ihre Installation erfolgreich war, indem
Sie folgendes ausfhren:
<programlisting role="bash"><![CDATA[
$ php -m | grep php-gtk]]></programlisting>
Sie sollte eine einzelne Zeilen erhalten, in der <literal>php-gtk</literal> steht.
</para>
<para>
Als nchsten knnen Sie die Demo Anwendungen 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 mssen 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 standardmig unter Mac OX X
installiert ist, mssen Sie manuell die Developer Tools und den X Server
auswhlen. Obwohl Sie irgendeinen X Server verwenden knnen, ist es am
einfachsten den zu benutzen, der von Apple standardmig zur Verfgung im
Mac OS X Installer bereitgestellt wird.
</para>
<para>
Holen Sie die <ulink url="&url.macports;">MacPorts</ulink> (frher bekannt als
DarwinPorts) oder <ulink url="&url.fink;">Fink</ulink> und installieren
Sie es. Sie knnen entweder es dazu benutzen eine Version von X (wenn Sie sich
gegen Apple's standardmige Distribution entschlossen haben), und um Gtk+
selbst zu installieren. Sowohl Fink als auch MacPorts stellen Version 2.6 und
hher von Gtk+ zur Verfgung.
</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 drfen, 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> enthlt. Dies ist normalerweise sowas wie:
<literal>/usr/local/lib/php/extensions/no-debug-non-zts-some-date</literal>.
Sie mgen 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:
<link linkend="tutorials.installation.linux.testing">Testen der Installation</link>.
</para>
</sect1>
</chapter>