srplab Common Language Extension(CLE)
 

For php calls lua, here presents a new method, which ues cle developed by srplab.

A function “Add” is defined in lua which returns the sum of two input integers. The function also calls php method “Show” to print the result.

There are three steps:

1.       Init cle, create service group, and create service.

2.       Create interface object, and defines a new function “Add” of it.

3.       Write function code of Add.

 

require "libstarcore"

--Step1 : Init cle, create service group, and create service

Service = libstarcore._InitSimple("AddFunctionService","123",0,0);

--Step2 : Create interface object, and define function Add

Obj=Service:_New("TestClass");

--Step3 : Add function code

function Obj:Add(x,y)

  --call back to script function

  self:Show(x+y);

  return x+y;

end

 

For php code calls the above lua file, there are three steps;

1.       Init cle, create service group,import lua file,  and create service.

2.       Create Instance of object “TestClass” defined in lua.

3.       Call function “Add”.

 

<?php

   Step 1 : Init cle, create service group,import lua file,  and create service.

   $starcore = new StarCoreFactory();

   $Service=$starcore->_InitSimple("test","123",0,0,"AddFunctionService.lua");

   Step 2: Create Instance of object “TestClass” defined in lua.

   $a = $Service->TestClass->_New();

   function a_Show($self,$Para)

   {

       echo "from php call back"  ,$Para,"\n";

   }

   $a -> Show = "a_Show";

   Step 3: call function “Add”

   $Result = $a->Add(12,34);

   echo "Add returns : ",$Result,"\n";

   $Service->_ServiceGroup->_ClearService();

   $starcore->_ModuleExit();

?>  

 

Run : php –f php_call.php

examples code download

Copywright (C) 2005 www.SRPLab.com(Star-River Platform Lab.) All Rights Reserved Email:support@srplab.com