Guest dizzy Posted November 28, 2011 Share Posted November 28, 2011 Un aspect important al limbajului PHP este acela că realizatorii de pagini web pot folosi în script-uri o mare parte a facilităţilor oferite de limbajul Java prin intermediul unei biblioteci de funcţii numită php_java. Pentru a utiliza facilităţile oferite de limbajul Java în cadrul script-urilor PHP este necesară o platformă Java care poate fi găsită la adresa http://java.sun.com/ şi pachetul php_java care conţine două fişiere: biblioteca php_java.dll (pe platforme Windows) şi pachetul php_java.jar care conţine o clasă care se ocupă de încărcarea celor folosite în script-urile PHP. Această clasă este utilizată de către PHP pentru a executa funcţii din clase Java şi pentru a rula clase noi. Limbajul PHP poate utiliza cel puţin următoarele versiuni de Java: 1.2.x, 1.3.x, 1.4.2. Eu am testat cu Java 2 SDK, Standard Edition 1.4.2_04 Cele două fişiere ale pachetului php_java pot fi găsite în versiunea integrală a limbajului PHP (în directorul php/extensions/ de pe hdd) Instalare: Pentru a utiliza această facilitate trebuie instalată platforma Java şi cele două fişiere ale pachetului php_java trebuie copiate în directorul extensions care poate fi găsit în directorul în care a fost instalat limbajul PHP. Configurare: Pentru a putea accesa clasele Java în cadrul script-urilor PHP trebuie configurată biblioteca php_java. Configurarea se realizează prin intermediul fişierului php.ini localizat pe platforme Windows în directorul sistemului de operare (în directorul Windows de obicei). În acest fişier trebuie adăugată valoarea php_java.dll variabilei extension. Există mai multe posibilităţi pentru a face acest lucru. Una dintre ele este eliminarea caracterului ";" de la începutul liniei: ;extension=php_java.dll dacă o astfel de linie există în fişierul php.ini, iar o altă varianta este adăugarea liniei: extension=php_java.dll la sfârşitul fişierului. În continuare trebuie setate valori pentru următoarele patru variabile: - java.class.path - reprezintă o listă de directoare, arhive zip sau alte tipuri de pachete suportate de limbajul java (jar, ejb, war etc.) separate între ele prin caracterul ";" această listă ar trebui să conţină calea către pachetul php_java.jar, altfel nu se pot utiliza clase Java; - java.home - reprezintă numele directorului în care este instalată platforma Java; - java.library - reprezintă calea către maşina virtuală Java care se doreşte a fi încărcată; -java.library.path - reprezintă o listă de directoare în care pot fi găsite anumite pachete de clase Java, în plus decât cele cu care este configurată platforma Java; directoarele din această listă sunt separate între ele prin caracterul ";" Valorile pentru aceste variabile se setează în fişierul php.ini în cadrul secţiunii [Java]. în cazul meu am setat astfel valorile: [Java] java.class.path=c:\php\extensions\php_java.jar java.home=c:\j2sdk1.4.2_04 java.library=C:\j2sdk1.4.2_04\jre\bin\server\jvm.dll java.library.path=c:\php\extensions\ Cu aceste setări făcute, maşina virtuală Java poate fi încărcată şi clasele pot fi utilizate în cadrul script-urilor PHP. Utilizare Clasele Java se instanţiază în PHP folosind constructorul clasei Java explicat mai jos. Metodele şi proprietăţile statice sau dinamice ale claselor instanţiate se accesează folosind operatorul de indirectare "->". De exemplu, dacă avem o variabilă $clasa căreia i-a fost ataşată ca valoare o clasă Java, atunci pentru a afişa reprezentarea textuală a acesteia trebuie să utilizăm metoda toString() (metodă specifică tuturor claselor Java) vom utiliza o instrucţiune de forma: echo $clasa->toString(); Clasa Java Această clasă se foloseşte pentru a rula o clasă a limbajului Java şi reprezintă, de fapt, o clasă derivată din clasa java.lang.Object a limbajului Java. Constructorul acesteia primeşte mai mulţi parametri, dintre care primul este un şir de caractere care reprezintă numele clasei Java care se instanţiază, iar restul de parametri reprezintă parametrii pentru care se va apela constructorul clasei respective. În cazul în care nu se reuşeşte rularea unei clase a limbajului Java este generată o excepţie Java, iar pentru a verifica dacă a fost generată o astfel de excepţie se foloseşte funcţia java_last_exception_get care este prezentată mai jos. În continuare este un exemplu de utilizare a clasei Java, cu care puteţi verifica dacă aţi instalat şi configurat corect clasele Java. Cod: <?php $system = new Java("java.lang.System"); echo "Versiunea Java este: "; echo $system -> getProperty("java.version")."<br>"; echo "Sistem de operare: "; echo $system -> getProperty("os.name")."<br>"; echo "Versiunea: "; echo $system -> getProperty("os.version")."<br>"; ?> Funcţia java_last_exception_get Această funcţie returnează o clasă Java derivată din clasa java.lang.Exception care reprezintă ultima excepţie care a fost generată sau valoarea logică false dacă nu a fost generată nici o excepţie de la începutul execuţiei script-ului sau de la ultimul apel al funcţiei java_last_exception_clear. Funcţia java_last_exception_get nu are parametri. Cod: <form action = "test.php" metod=post> Introduceti un sir de caractere: <input type = text name = "sir"> <input type = submit value = "verificare"> </form> <?php if (isset($_POST['sir'])) { echo "<hr>"; $int = new Java ("java.lang.Integer"); $sir = $_POST['sir']; $i = $int->parseInt($sir); $error = java_last_exception_get(); if ($error) { echo "Sirul \"".$sir."\" nu este un numar intreg."; java_last_exception_clear(); } else { echo "Sirul \"".$i."\" este un numar intreg."; } } ?> Funcţia java_last_exception_clear Această funcţie nu are nici un parametru şi nu returnează nici o valoare, în schimb efectul aplicării ei este acela că este anulată ultima excepţie Java care a fost generată de către maşina virtuală Java în timpul executării de cod. Apelul acestei funcţii este necesar, deoarece, în cazul în care a fost generată o excepţie şi nu a fost tratată, se poate întâmpla ca după apelul unei funcţii să tratăm excepţia greşită. Importanţa librăriei php_java Pentru programatorii de pagini web care cunosc atât limbajul Java, cât şi limbajul PHP, prezenţa acestei librării are o foarte mare importanţă. Funcţiile scrise în Java sunt executate de către procesor mult mai repede decât cele scrise în PHP, iar utilizarea codului Java oferă o mai mare siguranţă creatorilor de pagini web dinamice. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.