1. wsdl を作成します
手順:
A. 非標準 Web サービスは PHP からのみアクセスできます
B. 標準 Web サービスは、サービス コンテンツを記述するために XML 構文標準を使用する Web サービス記述言語を使用する必要があります。 )
ここでは標準的なWebサービスのみを紹介します。
では、wsdl を作成するにはどうすればよいでしょうか?これは PHP にとっては確かに簡単ではありませんが、zend スタジオで作成するのが非常に便利であるという人もいます。しかし、zend Studio を使いたくない人にとっては、Web サービスを作成して Zend Studio をインストールするのは難しすぎると感じるかもしれません。
ここでは、SoapDiscovery.class.php クラスをインターネットからダウンロードします。このメソッドの最後にあるのが、このメソッドです。私は次のようにしました:
//return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ''); /wsdl ファイルを生成し、上記をコメントします return
$fso = fopen($this->class_name . ".wsdl" , "w");
fwrite($fso, sprintf('%s%s%s%s%) s% s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ''));
これで、wsdl を生成するクラス、SoapDiscovery.class.php★ができました。
wsdlを作成するためのサービスを提供する別のクラスまたは関数を準備する必要があります
たとえば、クラス: person、ファイル名: person.class.php★、その中には2つのメソッドがあります。1つはsayです、もう一方は実行されます。とてもシンプルです。
コードをコピー コードは次のとおりです:
class person
{
public function Say()
{
return("i'm speech.");
}
public function run( )
{
return("実行中です、邪魔しないでください。");
}
}
?>
ここには SoapDiscovery.class.php と person の 2 つのクラスがあります。クラス.php。
wsdl の正式な生成を開始します:
ファイルserver.phpを作成します。次の内容をコピーして実行し、person.wsdl ファイルを生成します
コードをコピーします コードは次のとおりです:
include("person.class.php");
include("SoapDiscovery .class.php");
$disco = new SoapDiscovery('person','person');//最初のパラメータはクラス名です (生成される wsdl ファイルはそれに基づいて名前が付けられます)。は person クラスです。 2 番目のパラメータはサービスの名前です (これは気軽に書くことができます)。
$disco->getWSDL();
?>
2. Web サービス サーバー プログラムを作成します
server.php ファイルの内容をクリアし、次のコードをコピーします:
コードは次のとおりです:
include("person.class.php");
$objSoapServer = new SoapServer("person.wsdl");//person.wsdl は単なる wsdl ファイルですcreated
//$objSoapServer = new SoapServer("server.php?wsdl");//これも使えます
$objSoapServer->setClass("person");//personクラスのメソッドをすべて登録します
$objSoapServer- >handle();// リクエストを処理します
?>
3. Web サービス クライアント プログラムを作成し、Web サービスが有効かどうかをテストします。 ファイル名は client.php です。それに次の内容をコピーします。
コードをコピーします
コードは次のとおりです:
< ;?php $client = new SoapClient("person.wsdl") //$client = new SoapClient("server.php?wsdl") );//これも機能しますecho($client->say( ));
echo($client->run()); br />";
?>
はい、終わりました。とてもシンプルですよね?
.NET を使用したい場合は、URL を提供するだけです。
URL を取得する方法: まず、person.wsdl ファイルに移動し、
を検索します。URL はここにあります (具体的な URL はディレクトリに基づいて決定されます) は、.NET 開発者に提供したいものです。ただし、すぐに満足しないでください。 http://xxxxxxxxxxxxxxxxxxxx/server.php?wsdl の後に「?wsdl」を追加する必要があります。これは正しいです。ブラウザのアドレスバーにURLを入力して見てください。
.NET 開発者は、指定された URL を取得したら、サービス参照または Web 参照をプロジェクトに追加し、プロンプトに従って関連する操作を完了できます。.NET を使用する開発者にとっては、非常に簡単です。
ここでは、標準 Web サービス
1 の作成のみを紹介します。 SoapDiscovery.class.php クラスをオンラインでダウンロードします
2. SoapDiscovery.class.php のパブリック メソッド getWsdl() を変更して、wsdl ファイルを自動的に生成します (ストレージ パスに注意してください)。ここでは、wsdl モデルを作成するだけです
コードをコピーします コードは次のとおりです。 //return sprintf( '%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, ''
// wsdl を生成するファイルを開き、上記の注記を返します
$fso = fopen($this->class_name . ".wsdl" , "w");
fwrite($fso, sprintf('%s%s%s%s%s%s) '、$headerWSDL、$portTypeWSDL、$bindingWSDL、$serviceWSDL、$messageWSDL、''));
終了
3.サービスを提供するクラスまたは関数
コードをコピーします
コードは次のとおりです: //たとえば、クラス: person、ファイル名: person.class.php★、その中には 2 つのメソッドがあり、1 つは Say 、もう 1 つは run です。とてもシンプルです。
class person
{
public functionsay()
{
return("私は話しています。")
}
public function run()
{
return("私は走っています、ドン邪魔しないでください。」);
}
}
?>
4.正式に wsdl の生成を開始します:
ファイルserver.phpを作成します。次の内容をコピーして実行し、person.wsdl ファイルを生成します
コードをコピーします
コードは次のとおりです: include("person.class.php");
include("SoapDiscovery .class.php");
//最初のパラメータはクラス名 (生成される wsdl ファイルはそれに基づいて名前が付けられます)、つまり person クラスであり、2 番目のパラメータはサービスの名前です。 (これはカジュアルに書いても大丈夫です)。
$disco = new SoapDiscovery('person','person');
$disco->getWSDL()
5. Web サービス サーバー プログラムを作成します
server.php ファイルの内容をクリアし、次のコードをそのファイルにコピーします:
コードをコピーします
コードは次のとおりです: include("person. class.php");
$objSoapServer = new SoapServer("person.wsdl");//person.wsdl は作成したばかりの wsdl ファイルです
//$objSoapServer = new SoapServer("server.php?wsdl");/ /これも使えます
$ objSoapServer->setClass("person");// person クラスのメソッドをすべて登録します
$objSoapServer->handle();// リクエストを処理します
?>
6. Web サービスが有効かどうかをテストする Web サービス クライアント プログラムを作成します。 ファイル名は client.php です。
コードをコピーします。 コードは次のとおりです。
$client = new SoapClient( "person.wsdl");
//$client = new SoapClient("server.php?wsdl");//これも機能しますecho($client->say()); echo "
"; echo( $client->run()); echo "
";
?>
7. .NET を使用したい場合は、その URL を指定するだけです。
URL を取得する方法: まず、person.wsdl ファイルに移動し、
を検索します。URL はここにあります (具体的な URL はディレクトリに基づいて決定されます) は、.NET 開発者に提供したいものです。ただし、すぐに満足しないでください。 http://xxxxxxxxxxxxxxxxxxxx/server.php?wsdl の後に「?wsdl」を追加する必要があります。これは正しいです。ブラウザのアドレスバーにURLを入力して見てください。
.NET 開発者は、指定された URL を取得したら、サービス参照または Web 参照をプロジェクトに追加し、プロンプトに従って関連する操作を完了できます。.NET を使用する開発者にとっては、非常に簡単です。
(1) Web サイトを作成し、Web 参照を作成し、URL を入力します
(2) 強度呼び出し
コードをコピー コードは次のとおりです:
protected void Page_Load(object sender, EventArgs e )
{
if (!IsPostBack) {
sdaf.Solsoft_HelloWorld ddd = new sdaf.Solsoft_HelloWorld();
Label1.Text = ddd.say()
}
}
テストコード http://xiazai.jb51 .net/201112 /yuanma/CreateSoap.rar
http://www.bkjia.com/PHPjc/324674.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/324674.html技術記事 1. wsdl 命令を作成します。 A. 非標準の Web サービスは、PHP によってのみアクセスできます。 B. 標準の Web サービスは、wsdl (Web サービス記述言語、つまり XML 構文を使用する) を使用する必要があります...
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。