[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
PHP - ako na klasicke desktop aplikacie (GTK)

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky

Urcite je tu vela ludi, ktori ovladaju PHP ale chceli by vyskusat spravit aj nejake klasicke aplikacie pre Windows (alebo aj Linux, MAC).

Ak sa nechcete zacat ucit C, Delphi alebo podobne, ale chcete zostat v tom, co velmi dobre poznate - PHP, tak tento navod bude pre vas.

Dopredu upozornujem, ze sa do toho vyznam prd, len ma to nadchlo, tak to chcem sirit dalej, kedze komunita je velmi slaba a tazko najdete niekoho, kto vam poradi.

PHP - ako na klasicke desktop aplikacie (GTK)

Navod:

Je potrebne si stiahnut GTK z:
http://gtk.php.net/download.php
Pre Windows si stiahnite Windows Binary Pack aj Extensions Pack (spolu maju asi 10MB)

Rozbalte Binary Pack a do neho rozbalte aj Extensions Pack. Ten extensions pack vam asi prepise zopar suborov..

Otvorte si subor "php-cli.ini" a najdite riadok:
Kód:
;php-gtk.extensions = php_gtk_libglade2.dll,php_gtk_sourceview2.dll

Tu bodkociarku zo zaciatku riadka zmazte - to je vlastne komentar, takze treba to odkomentovat. Tymto sa pusta podpora libglade.

To je asi tak vsetko co potrebujete :)

Takze v tom istom priecinku (aby sme si to zatial nekomplikovali) si vytvorime nejaky PHP subor. Ja som vytvoril "test.php".

Do suboru mozeme napisat napriklad testovaci hello world priklad z originalneho tutorialu.
Kód:
<?php
if (!class_exists('gtk')) {
    die("Please load the php-gtk2 module in your php.ini\r\n");
}
 
$wnd = new GtkWindow();
$wnd->set_title('Hello world');
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));
 
$lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'");
$wnd->add($lblHello);
 
$wnd->show_all();
Gtk::main();
?>


Zapneme si Prikazovy riadok a prejdeme do priecinka, kde mate rozbalene PHP GTK subory. (Prikazmi: cd "c:\php-gtk\" napriklad)

Potom spustime prikaz:
Kód:
php.exe test.php


Mali by ste vidiet toto:
PHP - ako na klasicke desktop aplikacie (GTK)

Ak to vidite, mate vsetko funkcne !

Ako rychlo vyvyjat aplikacie a zbytocne sa nezdrziavat?
Vzhlad aplikacie si mozete pracne pisat, uz v spominanom tutorialy najdete dobre navody, ale predsalen, ak chcem oddelit kod od vzhladu a chcem pracovat efektivnejsie, odporucam pouzit GLADE !

PHP - ako na klasicke desktop aplikacie (GTK)

Chodte na stranku:
http://glade.gnome.org/
A vpravo si stiahnite Glade pre Vas OS. Ak mate Windows, tak: Windows Binaries.

Nainstalujte.

Ak si dobre pamatam, pri instalacii sa spyta, ci chcete nainstalovat aj GTK+ - ten som neinstaloval a ide mi to, takze nie je potrebny.

Zapnite Glade. Hned sa vas spyta na zakladne nastavenia, tam si to prepnite na "libglade" a verziu nastavte na 2.10.

Hlavny zaklad aplikacie vyberate vlavo zo sekcie TOP LEVELS. Vyberte: Window. Vpravo v paneli v zalozke General si jeho meno/name zmente na "okno".
Potom kliknite na Button a potom na plochu. Tym pridate jedno velke tlacidlo a ulozte si tento subor ako napriklad "interface.glade" tam, kde mate aj php subor.
(tutorial na Glade je tu: http://live.gnome.org/Glade/Tutorials )

Otvorte si znova nas testovaci "test.php" subor.

Tu sa viete docitat o tom, ako pouzit glade: http://gtk.php.net/manual/en/tutorials.helloglade.php
Osobne sa toho az tak moc nedrzim, je to trosku kostrbate a neskor som s tym mal trouble.

Preto je podla mna najrozumnejsie takto si pripravit subor:
Kód:
class Jadro extends GladeXML {

  function zavriOkno()
  {
    Gtk::main_quit();
  }
 
}

$Jadro = new Jadro(dirname(__FILE__) . '/interface.glade');
$Jadro->signal_autoconnect_instance($Jadro);

$wnd = $Jadro->get_widget('okno');
$wnd->show_all();
Gtk::main();


Toto vam docieli to, ze by sa automaticky mal Glade subor pripojit k Vasej aplikacii a vzhlad z neho nacitat.
"signal_autoconnect_instance()" vam zabezpeci priradenie vsetkych signalov (akcii) z Glade suboru k vasim funkciam..

To znamena, ze v Glade ako mate pridane tlacidlo, oznate si ho.
Vpravo klik na zalozku Signals. A do riadka "Clicked" zapiste: "zavriOkno".
PHP - ako na klasicke desktop aplikacie (GTK)

Ako ste si vsimli, v nasej triede je funkcia "zavriOkno" a vdaka "signal_auto_connect" nam ju priradi k tlacidlu v Glade.

Vsetko ulozte a ako som uz vyssie spominal, spuste vas program cez prikazovy riadok (php.exe test.php).

Mali by ste vidiet:
PHP - ako na klasicke desktop aplikacie (GTK)
A po kliknuti na tlacidlo by sa malo okno zavriet..

To je vsetko :)

Ako si sprijemnit zivot?
Urcite nechcete pliest vase projekty do priecinka s GTK a ten prikazovy riadok tiez nie je dvakrat prakticky.

Preto si spravte vlastny adresar s projektami a pri vas subor .php si vytvorte aj .bat subor, nazveme ho: "spustima.bat".

Do neho napiste:
Kód:
C:\php-gtk2\php.exe d:\Projects\php-desktop\nieco\home.php
pause

Toto je priklad. Prve je cesta k "php.exe" suboru z GTK balika. Potom nasleduje cesta k vasemu .PHP suboru.

Ked si otvorite tento bat subor, spusti sa vam vasa aplikacia.
Prikaz "pause" na konci docieli, ze pokial vam aplikacia vyhodi chybu, tak sa konzola hned nevypne, ale zostane zapnuta a vy si chybu v nej viete precitat :)


Toto je vsetko sice pekne, ale ako moj program poslem kamaratovi ?
Samozrejme, ze vysvetlovat niekomu, ako ma co rozbalit, GTK kniznice, a prikazove riadky. No proste uplne user-friendly aplikacia by to bola :)
Ako vytvorit EXE subor ?

Stiahneme si program PriadoBlender:
http://www.kksou.com/php-gtk2/Reference ... lender.php
Konkretne: PriadoBlender-2.0 BETA.zip
.. a rozbalime.
Vytvorime si textovy subor, ale bez koncovky, nazveme ho: "priado-nastavenie".
Do neho dame:
Kód:
Input_file=C:\Users\Brano\Desktop\PHP-GTK\test.php
Output_directory=C:\Users\Brano\Desktop\EXE-subor
Name=testik
Version=1
Type=1
Includes=1

Asi kazdy chape, o co sa jedna. Input file je presna cesta k nasemu php suboru.
Output directory je adresar, kde chcem nas program nakoniec mat. Name je meno, atd atd.. Includes povoluje includovanie suborov.
Otvorime si PriadoBlender.exe a zvolime: File-Open project.
Tam si najdeme nas "priado-nastevenie" subor.
A klikneme na: COMPILE.

Zvoleny priecinok sa naplni nasim programom, ktory mozete veselo sirit :)
PHP - ako na klasicke desktop aplikacie (GTK)



Dufam, ze sa najde par nadsencov, ktori zacnu robit pokusy. Rad by som sa obcas s niekym poradil, lebo som v tom absolutny zaciatocnik, preto aj tento navod je napisany asi dost neprofesionalne :) Ked mate nieco, opravte ma..


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
PHP - ako na klasicke desktop aplikacie (GTK)

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 31.08.2010 2:44 | PHP - ako na klasicke desktop aplikacie (GTK)

Asi nikto to neskusal, ale ja som si spravil mini aplikaciu..

Ide o "penazenku", na ktorej spravujete 3 ucty, v mojom pripade hotovost, ucet v banke a sporenie.
Daju sa tam pisat transakcie, ci som nieco kupil, alebo zarobil a v dolnom statusbare to pise aktualny stav na konte, atd.. Potom si viete pozriet, za co utracate a tak.. Proste taka kravina, ale musel som si dat zadanie, aby som mal co robit :lol:

PHP - ako na klasicke desktop aplikacie (GTK)

Narazil som ale na dost podstatny problem a to je, ze ten PriadoBlender mi to neskompiluje poriadne a aplikacia sa neda spustit... Asi to bude tou BETA verziou

Nasiel som ale zaujimavost s nazvom PHP-EXE:
http://remiya.com/cms/projects/php-exe/

To funguje tak, ze ten *.exe subor, ktory tam najdete (po stiahnuti zip archivu), nakopirujete pri vas *.php subor a pomenujete ho rovnako..

Takze ak mate aplikaciu "main.php" tak ten exe premenujete na "main.exe" a spustite.. Nic viac, nic menej.. .php subor ale zostava citatelny, takze nie je to bohvieco, kazdy si vie upravovat zdrojaky.. Ale na take male aplikacie pre vlastne pouzitie je to super..


_______

Aby ste mali predstavu, co a ako, tak tu vam pripajam t moju super duper exkluzivnu penazenku so super duper neprehladnym a strasnym kodom :sick: Je to ale prva moja PHP-GTK aplikacia, takze budte mily :D

http://rapidshare.com/files/416140242/finance-final.rar

Staci rozbalit a spustit "main.exe"
(teda, aspon mne to staci, som zvedavy, ci to pojde aj niekomu inemu :lol: )


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1719
Témy: 0 | 0

Peniaze sa nikdy nespracovávajú pomocou float premenných (buď sa použije priamo typ pre peniaze, prípadne sa počíta v menších jednotkách, takže v tvojom prípade v centoch). ;)

PS: Ako formát dát by som asi radšej použil CSV (pretože sa dá použiť aj v iných programoch; vlastne tie lepšie si poradia aj s tvojím formátom, pretože sa v nich dá nadefinovať, čo oddeľuje jednotlivé elementy a čo oddeľuje riadky, ale klasický CSV je lepší).


Offline

Užívateľ
Užívateľ
PHP - ako na klasicke desktop aplikacie (GTK)

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
Napísal autor témyOffline : 31.08.2010 15:49 | PHP - ako na klasicke desktop aplikacie (GTK)

rozmyslal som nad CSV, ale najprv ta aplikacia mala robit nieco uplne ine a az potom z toho vznikla "penazenka"

Ale dakujem za poznatok k tym peniazom, aj ked nepoznam datovy typ pre peniaze, ale ten napad s centami je fajn...

Ako vravim, islo mi o poznavanie GTK, len co dokazem urobit. Aplikacia je ukazkova, na odskusanie toho scrollovatelneho zoznamu so zoradovanim, s drop down menu, atd..


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.09.10
Prihlásený: 14.09.10
Príspevky: 21
Témy: 0 | 0

To s tymi peniazmy je znacky $Macrosoft.

1. Pokial viem, banky pouzivaju v platovnych stykoch zaokruhlovanie na 4 desatinne miesta. Neviem, ako sa riesia zvysky po zaokruhleni. Tipujem to na nejaky vnutrobankovy ucet.
2. Neviem, ako by som riesil cenu vyrobku, ktoreho sa predavaju miliardy kusov a jeho cena sa stanovuje na povedzme 0.00056 USD resp nejaka krasna cifra (napr zrnka piesku zo saharskej puste - kusovky).

Predpokladam, ze vyhodou $macrosof Currency datatype bude ulahcenie kurzovych prepoctov a zaokruhlovania - co si ale vacsina bank chce customizovat, davat lepsim klientom vyhody a pod.

Vseobecne sa odporuca nejako rozumne nastaveny decimal. Kazdopadne musis si kvalitne poriesit rozdiely pri zaokruhlovani.


 [ Príspevkov: 5 ] 


PHP - ako na klasicke desktop aplikacie (GTK)



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PHP-GTK - ulozenie exe

v PHP, ASP

4

413

06.05.2010 15:41

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

Ako inštalovať aplikácie?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Smartfóny a tablety

32

700

11.08.2016 18:34

liveman

V tomto fóre nie sú ďalšie neprečítané témy.

Ako testovat ukoncenie aplikacie

v Delphi, Visual Basic

1

217

29.03.2013 18:14

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Ako stíšiť starý desktop?

v Ostatné

2

397

09.06.2009 12:05

mikis7

V tomto fóre nie sú ďalšie neprečítané témy.

Ako nastavím frekvenciu monitora pre aplikácie?

v nVidia grafické karty

12

654

09.04.2008 20:38

lednicky1

V tomto fóre nie sú ďalšie neprečítané témy.

ako spustit aplikacie . jar na PDA

v Mobilné zariadenia

1

1339

27.09.2007 19:35

LORD Anakin

V tomto fóre nie sú ďalšie neprečítané témy.

Notas ako nahrada desktop PC

v Notebooky a netbooky

2

253

14.12.2009 7:43

tairikuokami

V tomto fóre nie sú ďalšie neprečítané témy.

Ako refreshovat Windows Desktop Gadget

v JavaScript, VBScript, Ajax

6

151

05.05.2014 7:39

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Login problem - GTK

v Operačné systémy Unix a Linux

6

391

14.03.2008 16:45

socket

V tomto fóre nie sú ďalšie neprečítané témy.

Inštalácia aplikácie - ako vložiť ďalšie CD-x ?

v Operačné systémy Unix a Linux

1

462

03.03.2009 19:04

stopa27

V tomto fóre nie sú ďalšie neprečítané témy.

GTK bežiaci text (python)

v Perl, Python, Ruby, CGI

4

774

31.07.2011 9:41

miso128

V tomto fóre nie sú ďalšie neprečítané témy.

Ako naplanovat ukoncenie aplikacie po uplynuti urciteho casu

v Operačné systémy Microsoft

4

223

24.06.2010 14:09

don jebot

V tomto fóre nie sú ďalšie neprečítané témy.

Konf. domaci server, sluziaci aj ako desktop cez terminal

v PC zostavy

4

323

14.02.2010 10:28

AsuSmaNiaK

V tomto fóre nie sú ďalšie neprečítané témy.

V: Desktop PC za Notebook, ppr. predám ako celok

v Vymením a darujem

3

456

23.05.2011 11:48

Adam.sk

V tomto fóre nie sú ďalšie neprečítané témy.

Ako pripojiť DVD/CD RW SATA z notebooku na desktop

v Optické zariadenia

6

1222

13.10.2008 22:04

charlie

V tomto fóre nie sú ďalšie neprečítané témy.

Ako nastaviť index.php ako homepage

v Redakčné systémy

4

519

01.09.2006 9:59

BaSkeR



© 2005 - 2017 PCforum, edited by JanoF