Semestrální práce z předmětu X36API
Tento projekt si vzal za cíl vytvořit Multiplatformního Modulárního Souborového Správce. Při práci bylo využito frameworku PHP-GTK ve verzi 2.0 alpha. Jedná se o interpretační jazyk PHP 5 (známý především z webových aplikací) doplněný o podporu knihoven GTK+. Tedy programování okenních aplikací v PHP 5. Více informací o PHP-GTK 2 naleznete na webových stránkách http://gtk.php.net/. Již od samého počátku byly využity výhody PHP verze 5, tedy podpora objektového programování. Z tohoto důvodu bylo velice snadné realizovat velice důležitou vlastnost projektu, tedy možnost rozšíření programu pomocí Modulů. Jádro programu bylo realizováno právě s ohledem na rozšíření moduly a jejich jednoduchou implementaci. To je jasně vidět na jazykovém rozšíření, Modulu Jazyky. Provázanost s aplikací je úplná, množství jazyků pro překlad programu je "neomezené".
Framework PHP-GTK 2 s sebou nese i další zajímavou vlastnost - provoz aplikací na několika platformách (v současné době je PHP-GTK 2 dostupný pro OS Windows a GNU Linux). Pokud máte funkční rozhraní PHP-GTK 2 na systému Windows a Linux, je možné využívat aplikaci beze změn na obou platformách stejně. (Vzhledem k typu aplikace bylo v průběhu realizace programu učinit některá opatření pro bezproblémový provoz aplikace a oddělit některé funkce pro Windows a Linux, přesněji rozlišit použitý operační systém.)
Zásadní problém, který se při realizaci vyskytl, bylo použití vláken/procesů v PHP. V současné době není v PHP podpora pro vlákna/procesy. Kvůli tomu dochází k "zamrznutí" programu při spuštění jiné aplikace z programu (například externí editace textového souboru programem Notepad), nebo při spuštění časově náročnější operace.
K vývoji a sestavení GUI byl použit program GLADE. Celé GUI je v XML souboru, jenž je při spuštění aplikace zpracován PHP (pomocí GladeXML). Okno aplikace je rozděleno do dvou hlavních panelů, menu, panelu disků, panelu adresa, panelu akcí a commandline.
V jádru aplikace jsou interface, které zajišťují komunikaci všech dostupných modulů a dovoluje tak jejich činnost. Základním modulem je FileSystem Module, ten zajišťuje akce jako zjištění adresářů, souborů, jejich identifikace, kopírování souborů a adresářů, jejich přesun a mazání, vytváření nového adresáře. Dalším modulem je View Module, který se stará o zobrazení souborů a adresářů, zobrazení podrobností (velikost, datum posledního přístupu), zobrazení souboru (ASCII, HEX). Další moduly se starají o výpis adresářové struktury do textového souboru, jazykové mutace, vyhledávání či kompresi a dekompresi souborů.
Pro chod programu je třeba php5 (kvůli podpoře objektového programování) a knihovny php-gtk2. Php5 je obsaženo ve standardní instalaci většiny dnešních linuxových distribucí. Pokud vaše distribuce php5 neobsahuje stačí je nainstalovat buď v balíčkovacím programu nebo stáhnout a zkompilovat zdrojové kódy z http://www.php.net/downloads.php.
Nyní můžeme přistoupit k instalaci php-gtk2. Zdrojové kódy nalezneme zde http://gtk.php.net/download.php. Stáhneme příslušný balík (v době vydání to byl php-gtk-2.0.0 alpha Source), rozbalíme a přepneme se do rozbaleného adresáře. Nyní stačí do příkazové řádky napsat:
#phpize nalezneme obvykle v adresáři /usr/bin
./configure --with-php-config=/cesta/k/php-config
#php-config nalezneme obvykle v adresáři /usr/bin
make
make install
Dále je třeba přidat rozšíření do php.ini. Nejjednodušší způsob jak zjistit kde se php.ini nachází je tento:
Poté stačí otevřít soubor a na poslední řádku přidat:
Pro úplnost se přesvědčíme, zda byla instalace úspěšná příkazem:
Pokud dostaneme tento výpis: php-gtk
, tak php-gtk modul existuje a můžeme jej používat.
Nakonec stačí stáhnout zdrojové kódy programu MMFM, rozbalit, přepnout se do rozbaleného adresáře a spustit:
Ke správnému chodu potřebujete stejně jako pro Linux fungující PHP-GTK framework. Můžete si stáhnout zvlášť GTK+, PHP5 a php-gtk2, správně nainstalovat a nastavit, nebo můžete využít náš připravený balík all-in-one:
- Instalace frameworku PHP-GTK:
- stáhnout soubor php-gtk-frmw.zip (7 972 KB)
- rozbalit soubor php-gtk-frmw.zip do složky "C:\Program Files"
- zanést do registrů soubor "C:\Program Files\PHP GTK\php-gtk.reg"
- co se stalo?
- archív obsahuje výkonné programy PHP (5.1.1), knihovny GTK+ (2.8.9) a rozhraní PHP-GTK (2.0)
- soubor registrů obsahuje asociaci přípony .phpg s tímto frameworkem
- Instalace MMFM:
- stáhnout soubor mmfm.zip (65 KB)
- rozbalit soubor mmfm.zip do libovolného umístění
- spustit aplikaci dvojklikem na soubor MMFM.phpg (s ikonou PHP-GTK)
- Co tím získáte navíc? Instalací frameworku PHP-GTK získáte skriptovací jazyk pro Vaši příkazovou řádku. Pokud vytvoříte soubor s příponou .phpg, můžete je podobně jako soubory s příponou .bat (nebo .cmd) přímo spouštět. Uvnitř toho souboru můžete využít veškeré příkazy a programové struktury, které nabízí PHP.
- Kódování českého překladu
- Pokud budete používat český překlad, můžete se setkat s problémem při zobrazení českých znaků. Pokud se tak stane, editujte váš konfigurační soubor php.ini (ve složce, kde máte PHP nainstalováno, viz. níže). Do sekce "Code Page" přidejte položku (případně editujte na)
php-gtk.codepage = utf-8
- Jan Pospíšil
- jabber: fosfor@jabber.cz
- email: fosfor(dot)software(at)seznam(dot)cz
- icq: 96560956
- Jiří Vrbický
- email: vrbicky(at)policka(dot)cz
- Tomáš Navrátil
- email: navratilt(at)centrum(dot)cz
- icq: 221244844