Implementacija je krajnje jednostavna kao sto sam i rekao, dovoljno je da u skriptu cije public metode zelis da koristis uradis sledece:
<?php
//ukljuciti jAPI-Core.php u svoj skript
include("jAPI-Core.php");
//...tvoje klase, i kod koji vec hoces da imas u njima
//napravis novu instancu a kao parametar prosledis imena klasa iz kojih zelis da public funkcije budu vidljive na klijentskoj strani (javascript-u)
new jAPIBaseClass('imeTvojeKlase,imeTvojeDrugeKlase');
Evo konkretan primer kako bi mogao da izgleda:
jAPI-Remote.php
<?php
//Include jAPI Core and jAPIBaseClass
include("httpHandler/jAPI-CORE.php");
//Bellow is some demo classes with some basic functions
class MySimpleMath {
public function Addition($firstParam, $seccondParam) {
$sum = $firstParam+$seccondParam;
echo $sum;
}
public function CompareNumbers($firstNum, $seccondNum) {
$comparingResults = ($firstNum == $seccondNum)?"The numbers are equal":"The number is not equal";
echo $comparingResults;
}
}
class MyStringMixer {
public function ReverseString($inputString) {
echo strrev($inputString);
}
public function JustSayHi() {
echo "Hello world!";
}
}
//Create new instance of jAPIBaseClass with names of all classes that you want to use separeted with comma...
new jAPIBaseClass('MySimpleMath,MyStringMixer');
?>
...nakon ovoga da u svom html fajlu ukljucis jAPI.js fajl koji sluzi za slanje asinhronih zahteva i za hvatanje response-a sa servera, i gornji php skript kao javascript (ja sam ga nazvao jAPI-Remote.php ali u sustini moze biti bilo koji, nebitno je)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>jAPI Direct - Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="jAPI.js"></script>
<script type="text/javascript" src="jAPI-Remote.php"></script>
</head>
<body></body>
</html>
jAPI-Core.php je napisan tako da na osnovu imena klasa koje mu se proslede izvrsi tzv. refleksiju tih klasa, i da automatski vraca JavaScript deklaraciju ekvivalentnu deklaraciji server side metoda, sto dalje omogucava da kroz javascript mozes da pozoves na sledeci nacin PHP metodu:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jAPI.js"></script>
<script type="text/javascript" src="jAPI-Remote.php"></script>
</head>
<body>
<script>
MySimpleMath.Addition(555,2);
MySimpleMath.CompareNumbers(23,55);
MyStringMixer.ReverseString("This is a test...");
MyStringMixer.JustSayHi();
</script>
</body>
</html>
...nadam se da sam malkice pojasnio sustinu?
|