LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> PHP (94) - GUI

PHP se dá kromě tvorby webu a shellových skriptů použít i k vytváření samstatných aplikací - včetně grafického rozhraní. Klíčem k tomu je PHPGTK.

21.1.2005 15:00 | Petr Zajíc | Články autora | přečteno 36464×

Komerční sdělení: Pořádáme Kurzy PHP

Ačkoli to mnoho lidí vůbec neví, dá se PHP kromě tvorby webových stránek (a kromě použití jako shellový interpreter) použít rovněž jako obecný jazyk pro tvorbu samostatných aplikací, a to dokonce aplikací s grafickým rozhraním. V tomto a následujícím díle si trochu ukážeme, jak na to.

Princip

Samotné PHP nemá žádné prostředky pro tvorbu GUI (graphic user interface, grafické uživatelské rozhraní). Tím mám na mysli prostředky pro tvorbu oken s tlačítky, rozevíracími seznamy, zaškrtávači, přepínači a tak dále. Existují nicméně samostatně napsané programy, jejichž úkolem je - zjednodušeně řečeno - vytvářet prvky grafického uživatelského rozhraní. Takže, kdyby se PHP na některý takový program (často se nazývá toolkit) vhodně napojilo, mohla by vzniknout zajímavá kombinace, že? Zejména, kdyby takový toolkit byl dostupný pod nějakou symatickou licencí a kdyby fungoval pod více operačními systémy.

Tvůrci dnes již velmi populárního programu pro manipulaci s obrázky GIMP (na Linuxsoftu máme mimochodem o GIMPu seriál) přesně takový toolkit kdysi potřebovali. Takže vznikl GTK+, neboli "The Gimp Toolkit" - nezávislý balíček pro tvorbu grafického uživatelského rozhraní. Šířen je pod licencí GNU LGPL, čili patří mezi svobodný software. Software je to velmi používaný, GTK+ je například základem prostředí GNOME.

A teď to nejlepší - GTK+ funguje pod Windows i pod Linuxem a existuje projekt spojující PHP a GTK+! Takže pomocí PHP můžeme vytvářet aplikace s grafickým rozhraním, aniž bychom se museli zabývat "nízkoúrovňovým" programováním samotného rozhraní. Projekt, který PHP a GTK integruje se nazývá PHPGTK a má pochopitlně svoje internetové stránky. Pojďme se krátce podívat na to, jak takovou věc vůbec zprovoznit:

Instalace PHPGTK

Windows

PHPGTK je potřeba stáhnout a rozbalit. Soubor README.txt popisuje, kam se jednotlivé složky mají překopírovat (to uděláte ručně). Část archivu se musí dostat do složky, kde máte nainstalované PHP a část do systémové složky WINDOWS. Je to poměrně dobře dokumentované. Instalací si můžete přepsat soubor php.ini (což osobně nepovažuji za příliš dobrý nápad), nebo si můžete sekci, týkající se PHP do vlastního php.ini překopírovat (mnohem lepší). Distribuce obsahuje rovněž příklady, které si můžete spustit a vyzkoušet. GTK+ aplikace se spouštějí pomocí souboru php_win.exe, takže můžete naspat něco ve smyslu:

c:\php\php_win D:\pokus\gtk\gtk.php

a měl by se vám objevit požadovaný příklad.

LINUX

Ověřte si, zda máte k dispozici GTK. Způsob, jakým to provedete bude záležet na možnostech konkrétní distribuce, pro Fedoru Core můžete například použít něco ve smyslu:

yum search gtk | grep installed

Dále si ověřte, zda máte nainstalováno PHP 4.3.4 nebo novější. Pokud jste četli předchozí díl seriálu, asi pro Vás nebude překvapením, že to z terminálu většinou můžete provést pomocí příkazu:

php -v

Stáhněte si nejnovější verzi ze stránek gtk.php.net. Například v době psaní tohoto článku to bylo takto:

wget http://gtk.php.net/do_download.php?download_file=php-gtk-1.0.1.tar.gz

Směle to rozbalte a pusťte se do kompilace pomocí:

./buildconf
./configure
make
make install

Hotovo! Celý proces je poměrně dobře zdokumentován na stránkách projektu, takže byste se v případě problémů neměli ztratit.

Něco málo příkladů

Především, kompletní popis již samotné filozofie použití PHP-GTK je silně nad rámec tohoto článku, takže se omezíme jen na to opravdu nejdůležitější. Klasický začátečnický příklad "Hello world" byste pomocí PHP-GTK napsali nějak takto:

<?php

if (!extension_loaded('gtk')) {
    
dl( 'php_gtk.' . PHP_SHLIB_SUFFIX);
}

// při zavření okna
function destroy()
{
    
Gtk::main_quit();
}

// při kliknutí na tlačítko
function hello()
{
    global    
$window;
    
$window->destroy();
}

// Nadefinujeme si okno
$window = &new GtkWindow();
$window->set_border_width(10);
$window->connect('destroy', 'destroy');

// a čudlíček...
$button = &new GtkButton('Hello World!');
$button->connect('clicked', 'hello');

//který do okna přidáme
$window->add($button);

// zobrazíme to ...
$window->show_all();

// a jedeme
Gtk::main();

?>

Dokážu si představit, že jste z toho dost vyjukaní, zejména pokud jste nikdy nepracovali s jazyky ovládajícími grafické uživatelské rozhraní (jako je C++, Java a podobně). Proto si příště tento příklad trochu hlouběji rozebereme. Abych ale prozradil alespoň něco: tento přístup využívá objekty; už jsme o nich mluvili v 19. a 20. díle našeho seriálu. Objekty mohou vzájemně souviset (takže například tlačítko souvisí s oknem, na němž je zobrazeno). Ale víc už neprozradím, sledujte příští díl seriálu.

Mimochodem, docela by mě zajímalo, jestli někdo z čtenářů PHPGTK používá a k čemu. Podělte se s námi v diskusi!

Verze pro tisk

pridej.cz

 

DISKUZE

jak na instalaci 5.9.2009 12:30 Windik




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.5.2017 23:50 /František Kučera

Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).


Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

11.5.2017 23:32 / lelo
Re: Problém se správcem balíčků

11.5.2017 5:45 / davd mašek
Re: Problém se správcem balíčků

10.5.2017 22:54 / lelo
Re: Problém se správcem balíčků

10.5.2017 22:19 / davd mašek
Problém se správcem balíčků

17.4.2017 19:15 / Jakub shoop
chyba

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze