Claudiu Persoiu

Blog-ul lui Claudiu Persoiu

Archive for the ‘soap’ tag

Adobe AIR

without comments

Last week I was supposed to create a little project. Requirements were short: interoperability.Given the fact that I’ve never used Adobe AIR before, I thought it was a good opportunity to try it.

The result was a small project management app. For the server-size I’ve used PHP + SOAP + Zend Framework, and for the client I’ve used Adobe AIR with JavaScript.

I’ve created the server in a few lines:

// autoload class for Zend Framework
include 'Zend/Loader/Autoloader.php';

// class that deals with SOAP requests
include 'SOAP.class.php';

// initialize autloader

// if it's a request for the WSDL descriptor file
if(isset($_GET['wsdl'])) {
 $autodiscover = new Zend_Soap_AutoDiscover();
// if it's a SOAP request
} else {
 $soap = new Zend_Soap_Server("http://localhost/soap/index.php?wsdl");


The descriptor is build automatically using PHP Documenter type comments from the class that handles SOAP requests, if this case it’s named “test”.

This was the easy part so I’ve moved on to the Adobe AIR client following this simple steps:

  • Download and install Aptana Studio
  • Install Adobe AIR plug-in
  • New project -> Adobe AIR
  • and voila! Coding can begin!

Adobe AIR is using for a JavaScript engine Webkit. Sounds familiar? Webkit is used by Safari and Google Chrome. So the JavaScript code should only be compatible with Webkit!

Of course there is a “but” and a plus. The “but” is that there are some restrictions, for instance “eval” can only be used to decode JSON, and the text introduced directly in an element (as text) can not be executed:

div.innerHTML = "<a onclick=\"alert('ceva')\" href=\"#\">click</a>";

This link will get to the element by will not run anything on “onclick” because the parameter was send as text.

This was a pretty big disadvantage for me, but I’ve managed to figure out an alternative by building HTML elements using DOM and adding events using addEventListener.

Briefly Adobe AIR is using this formula:

Adobe AIR = (Webkit)Web Development - security + air framework.

It seems very easy for a Web Developer to develop desktop apps with Adobe AIR.

Of course is not very fast and it’s not looking like a good idea for complex apps. But if your thinking about medium and small apps, if I had to choose between Adobe AIR and PHP GTK for instance, the first option seems a lot more viable and easy to use!

In the end the project was ready in less then 3 days and the graphics were gorgeous! It didn’t even look like it was build using only HTML and JavaScript!

Written by Claudiu Persoiu

6 November 2009 at 11:44 PM

Curs valutar cu PHP si SOAP de pe

with one comment

Siteul pune la dispozitie cursul oficial BNR si BCE in diferite formare pentru programatori. Printre aceste formate este si Web Service (SOAP), pentru care nu exista decat un exemplu in C#.

Zilele trecute am avut nevoie de un mic exemplu de SOAP, din pacate nu am reusit sa fac pe moment clientul sa mearga, iar cum in seara asta am avut putin timp liber am vrut sa-i dau de cap.

De fapt nu este chiar atat de complicat:

// obiectul SOAP
$client = new SoapClient("");

// metoda cu data ultimei actualizari
$result = $client->lastdateinserted();

// pentru afisare apelam singura proprietate pe care o are obiectul intors
echo 'Data ultimei actualizari: '.$result->LastDateInsertedResult.PHP_EOL;

// apelam o metoda cu un parametru
$result = $client->GetLatestValue(array('Moneda'=>'EUR'));

// afisam cursul apeland singura proprietate pe care o are obiectul intors
echo 'Euro: '.$result->GetLatestValueResult.PHP_EOL;

// apelam o metoda cu un parametru
$result = $client->GetLatestValue(array('Moneda'=>'USD'));

// afisam cursul apeland singura proprietate pe care o are obiectul intors
echo 'USD: '.$result->GetLatestValueResult.PHP_EOL;

Chestile care mi se par ciudate sunt: metodele care au parametrii au nevoie in parametru de un array cu tip si valoare, iar obiectul intors are o singura proprietate. Practic de la aceste doua lucruri m-am pierdut eu.

Dar acum ca este gata putem sa ne uitam linistiti cat de mult a crescut euro.

Written by Claudiu Persoiu

24 May 2009 at 3:03 AM

Posted in PHP

Tagged with ,