CakePHP веб-сервис - PullRequest
       13

CakePHP веб-сервис

0 голосов
/ 16 декабря 2009

У меня проблема с созданием веб-сервиса с использованием cakephp. это то, что я делаю, чтобы создать этот веб-сервис. Я использую NuSOAP - Web Services Toolkit для PHP для этого. Я создаю контроллер с именем WsController и импортирую на него библиотеку.

class WsController extends AppController{

var $uses = array();

function info()  {
    $this->layout= null;
    $ns="http://www.techvoicellc.com/Tutorials//"; 
    $server = new soap_server(); 


    $server->configureWSDL('mostafa',$ns); 
    $server->wsdl->schemaTargetNamespace=$ns; 
    $server->wsdl->addComplexType('ArrayOfstring','complexType', 
    'array','','SOAP-ENC:Array',array()
    ,array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'string[]')), 
    'xsd:string'); 


    $server->register('sum', 
    array('x' => 'xsd:integer','y' => 'xsd:integer'),        
    array('z' => 'xsd:integer'),   
    $ns,                                           
    "$ns#sum",                               
    'rpc',                                        
    'encoded',                                    
    'documentation'     // documentation 
    );  

    $server->service($HTTP_RAW_POST_DATA); 
}

 function sum($x,$y){ 
    $z=$x+$y;
    return new soapval('return','xsd:integer',$z);
 } 

}

и я создаю клинт в действии контроллера, как это

function index() {
   $wsdl = 'http://localhost/asd/ws/info?wsdl';
   $client = new nusoap_client ( $wsdl, true );

   $this->client = new nusoap_client($wsdl, true);
   $param1 = array ('x' => 2, 'y' => 1 );
   $a = $client->call ( 'sum', $param1 );
    echo $a;
 }

это не делает ничего, хотя я создаю это в не торте, и его работа очень хорошо

надеюсь, кто-нибудь скажет мне, как лучше всего создать веб-сервис в торт php

Ответы [ 2 ]

2 голосов
/ 05 декабря 2012

Это довольно Легко разрабатывать веб-сервисы в CakePHP . Я сделал это несколько раз. Проверьте следующие шаги.

class MyWebServicesController  extends AppController {
    var $name = 'MyWebServices';
    var $layout = "ajax";

    function index() {
        $server = new SoapServer(null);
        $server->setObject($this);
        $server->handle();
        exit(0);
    }
    public function addNumbers($a,$b) {
        return $a+$b
    }
}

Теперь ваш веб-сервис размещен на http://webroot/MyWebServices Теперь вы можете вызывать addNumbers, как показано ниже.

$client = new SoapClient(null, array('location' => "http://webroot/MyWebServices");
$sum = $client->addNumbers(1+2);
0 голосов
/ 12 мая 2012

Лучше всего создать полноценный веб-сервис. CakePHP имеет все встроенное для REST. Все, что вам нужно сделать, это включить его и создать представления json / xml.

Вот ссылка с вашей отправной точкой: http://book.cakephp.org/2.0/en/development/rest.html

Есть ли причина, по которой вам нужен веб-сервис SOAP?

  1. Создание и тестирование веб-службы SOAP будет намного сложнее
  2. Для SOAP потребуются внешние библиотеки
  3. Пользователям будет сложнее использовать веб-сервис SOAP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...