Tomáš Navrátil, Jan Pospíšil, Jiří Vrbický
Multiplatform Modular File Manager (MMFM)
Semestrální práce z předmětu X36API
Projekt na Sourceforge: http://sourceforge.net/projects/mmfm/
Archiv těchto stránek: mmfm-archiv.zip
Licence: GNU General Public License (GPL), PHP License
Úvod

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.)

Problémy při realizaci

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.

Stručný popis aplikace

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ů.

Instalace
Linux

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:

./buildconf --with-phpize=/cesta/k/phpize
#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:

php -i | grep php.ini

Poté stačí otevřít soubor a na poslední řádku přidat:

extension=php_gtk2.so

Pro úplnost se přesvědčíme, zda byla instalace úspěšná příkazem:

php -m | grep php-gtk

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:

php MMFM.phpg
Windows

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:

  1. Instalace frameworku PHP-GTK:
    1. stáhnout soubor php-gtk-frmw.zip (7 972 KB)
    2. rozbalit soubor php-gtk-frmw.zip do složky "C:\Program Files"
    3. zanést do registrů soubor "C:\Program Files\PHP GTK\php-gtk.reg"
    4. co se stalo?
      1. archív obsahuje výkonné programy PHP (5.1.1), knihovny GTK+ (2.8.9) a rozhraní PHP-GTK (2.0)
      2. soubor registrů obsahuje asociaci přípony .phpg s tímto frameworkem
  2. Instalace MMFM:
    1. stáhnout soubor mmfm.zip (65 KB)
    2. rozbalit soubor mmfm.zip do libovolného umístění
    3. spustit aplikaci dvojklikem na soubor MMFM.phpg (s ikonou PHP-GTK)
  3. 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.
FAQ
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
Screenshots
celkový pohled vyhledávání a změna jazyka prohlížení souborů hlavní okno dialog About dialog kopírování dialog vyhledávání dialog změny jazyka prohlížení souborů - ASCII prohlížení souborů - HEX
Informační zdroje
Kontakty na autory

O úroveň výš