Știm cu toții că PHP este proiectat pentru a crea rapid pagini web dinamice. În orice caz, este scris pe site-ul oficial al dezvoltatorilor PHP. Cu toate acestea, de ce nu încercați să găsiți PHP „un pic“ altă aplicație, de exemplu, pentru a încerca să creeze o aplicație completă pentru Windows? Interesat? Apoi am alergat!
pătrat negru
Aplicațiile sunt împărțite în consolă și fereastra. Să începem cu crearea primului, așa cum este mai ușor. Deci, mai întâi trebuie să decidem ce scrie. Propun să scrie un simplu MD5 Base64 Encoder - lucru în economia necesară și utilă, mai ales că aici totul este destul de simplu. Pentru a rula un script PHP din linia de comandă și transferul parametrilor necesari utiliza următoarea structură:
În ceea ce privește conținutul de script-ul, numărul de parametrii transmiși stocate în $ argc variabilă, în timp ce setările sunt stocate în matrice $ argv. La această informare pentru aplicatii consola este de peste și este timpul să înceapă să ia măsuri.
Pentru a nu deranja vă scris scenariul, am decis să-l scrie pentru tine. Iată ce am primit:

Script-ul este scris și este acum cel mai interesant - compilarea unei aplicații EXE. Pentru a compila aplicatii consola pe care le folosesc Roadsend Compiler Studio. Acesta poate fi descărcat de pe site-ul www.roadsend.com după înregistrare gratuită. Descărcări? Acum, deschis Roadsend IDE, a crea un nou proiect (Project -> Nou), prevede parametrii necesari (script-ul nostru va recomanda sa-l arunce în directorul proiectului), am apăsați „OK“ și în cele din urmă a da proiectul râvnit -> Build. Acum ne îndreptăm spre dosarul cu proiectul, iar dacă ai făcut totul bine - acolo veți găsi un EXE gata. Asta e tot? Da. Este simplu, dacă știi unele nuanțe. Singurul lucru pe care l-ar recomanda - este util uneori să poshamanit biblioteci de legătură și de aceea este posibil să împacheteze nostru EXE UPX`m, cu toate că acest subiect mă voi adresa de mai jos. Ne întoarcem acum la aplicație Windows.
După cum probabil ați ghicit - pentru a crea aplicatii desktop folosind PHP personal nu mai face acest lucru trebuie mai întâi să selectați un instrument de dezvoltare a ferestrei noastre. Dintre toate instrumentele cele mai multe sunt de două - este destul de exagerat PHP-GTK (www.gtk.php.net) și mai puțin promovate, dar nu mai puțin WinBlider funcțională (www.winbinder.org). Există cazul în care mai mult de publicitate și bine-cunoscut nu este atât de bun (acest lucru este IMHO meu), și, prin urmare, pentru dezvoltarea primului nostru panou în PHP vom folosi WinBlinder. Pentru a începe, trebuie să descărcați. Gata? Bine, să mergem mai departe.
Codul este destul de simplu, și cred că după ședința cu înregistrările de 1-2 ore, veți începe să-l înțeleagă la fel de bine ca și mine. Și acum punctul culminant - colecta fereastra. În acest scop, vă sugerez să creeze un director separat și pentru a muta script-ul acolo. Trebuie doar să transferați pentru a include un dosar din directorul phpcode vinblindera. Gata? Acum compila! Uh. Oprire nu trebuie să se înțeleagă la Roadsend IDE. Cum? Iată cum! Ea nu are suport pentru Blinder, dar acceptă numai GTK, și judecând după răspunsurile vagi Roadsend dezvoltatori de pe forumul lor - suport Blinder poate fi încă mult timp în vin. Ștergeți Cu toate acestea muci, și va căuta alte căi, precum și numele acestei căi navigabile Bamcompile (www.bambalam.se/bamcompile/). Cu toate acestea, pentru un motiv oarecare, versiunea 1.21 nu este întotdeauna adevărat, și, uneori, care rulează compilează toate în aplicația nelucratoare, dar astfel de scapari versiunea 1.1 nu suferă, așa că recomand să-l folosească. Acum selectați cu generozitate un dosar pentru compilator nostru, vom merge la un prompt de comandă și comanda mândri:

Dacă este făcută corect, aplicația fereastra svezheskolochenoe va fi în directorul de compilator. Totul. Nu pot adăuga doar că toate aplicațiile, eu încă ar recomanda pachetul UPX`om (care merge direct la Bamcompile).
cutie magică
Toate acestea, desigur, este foarte interesant și informativ, dar sunt momente când instrumentele potrivite la îndemână acolo. Ce să faci atunci? Mai ales pentru această ocazie, există un foarte interesant EXE recepție de recepție prin șamanismul în opțiunile arhiva SFX WinRAR. Ca un exemplu, voi folosi prima noastră script pentru consola. Pentru a începe, pune script-ul într-un dosar separat, există php.exe copie și php * ts.dll. Apoi, creați un folder în același run.bat, după cum urmează:
Acum, avem nevoie de aceste lucruri la pachet, pentru a selecta toate fișierele, apăsăm butonul din dreapta și selectați „Adăugați la arhivă.“.
În fereastra care apare, alegeți formatul de fișier RAR, expune maxim de compresie și a pus o verificare „Creați o arhivă SFX“.
După aceea du-te în pliul „Advanced -> SFX Options“, se pune comutatorul pe „Zidește în dosarul curent“ în „Run după extracție“ prescrie „run.bat“, precum și în tab-ul „Moduri“ se pune o capusa „Despachetați la folder temporar „precum și expune switch-uri“ Ascunde toate «și» Suprascriere toate fișierele“.

Gustul poate lipirea icoana lui la fila respectivă. Acum, confirmă crearea fișierului și de ieșire este EXE fără compilatoare.
Nu spune ce problema este și cum să-l repare.
Ar trebui să php 5.2.4 sub apatchem, el lucrează mare
mulțumesc
Când faceți clic pe Project -> Build da o eroare
binar nu este setat
E interesant. Creați o aplicație fereastră este într-adevăr posibil, dar prea simplu.
Pe similitudinea exemplului de mai sus.
Inclus Winbinder formeditor este, de asemenea, scris în PHP.
A încercat să lucreze cu o jumătate de oră, am fost oripilat de dosar - de swap, care a crescut până la 1,7 GB. Doar am încercat să scrie un calendar - jurnal, aceeași utilizare a resurselor excesiv.
Mă voi uita la PHP-GTK
Vă mulțumim pentru koment. Acum, utilizatorii vor înțelege exact;)
În general, pentru a crea un executabilele viabile binderovskih aplicații desktop folosind bamcompile 1.21, după cum am înțeles, proiectul trebuie să fie conectat bibliotecă php_winbinder.dll. Apoi, totul este în regulă (cel puțin în script-ul prezentat în articol, arat bine).
Și, așa cum scrie în readme bamcompile-fișier, acest kompillyatora cip, incepand cu versiunea 1.2 este abilitatea de a conecta la proiect biblioteci suplimentare care anterior erau indisponibile. De exemplu, puteți scrie binderovsky (PHP shny) script-ul funcționează bine cu biblioteca gd_2, dar după stabilirea EXE corespunzător folosind bamcompile 1.1, în cerere nu vor fi disponibile funcții grafice; în versiunea specificată bamcompile 1.21 gd_2-bibliotecă poate fi conectat la proiectul, iar executabil rezultat va respecta deja cu caracteristicile grafice relevante.
În general, a se vedea exemplele dosarul exemple bamcompile-arhivă - puteți găsi ceva util (în ceea ce privește modul de a cere ka єkzeshnika creație).