.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
14 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 14

もっと...

.
.リンク集

メイン
   インストール・セットアップ(Install,Setup)
     vendorsにpear::soapを組み込んでSOAPを使いたい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tomof
投稿日時: 2007-10-8 0:23
Baker スタート
登録日: 2007-10-7
居住地: 静岡県
投稿: 7
vendorsにpear::soapを組み込んでSOAPを使いたい
CakePHP & PEARについても初心者で、申し訳ありませんがよろしくお願いします。

現在、pear::soapをvendorsで使えないか試しているのですが、上手く動作させることが出来ず困っています。これまで試した手順を下記に載せますので分かる方がいらっしゃれば解決策など教えていただけないでしょうか。
(開発環境はWinXP上のローカル上で、CakePHPの簡単なアプリが動作することは確認済みです。また、開発環境はPHP5で、実際に動作させたい本環境がPHP4となっています。)

1.http://pear.php.net/package/SOAP/downloadから、パッケージをダウンロード。

2.vendorに下記のように、配置。
・app/vendors/PEAR/SOAP
・app/vendors/pear_ini.php
引用:

ini_set('include_path', ini_get('include_path'). PATH_SEPARATOR . dirname(__FILE__));


3.適当なviewファイルで動作確認
・app/views/schedules/index.thtml
引用:

vendor("pear_ini");
vendor("PEAR/SOAP/Client");
$wsdl = new SOAP_WSDL(" http://bearmini.net/publicholidays/JP.asmx?WSDL");
$soapclient = $wsdl->GetPublicHolidayNames(2007,10,8);
echo($soapclient);


4.下記のエラーメッセージが出現
引用:

Warning: require_once(SOAP/Value.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs2\app\vendors\PEAR\SOAP\Client.php on line 25

Fatal error: require_once() [function.require]: Failed opening required 'SOAP/Value.php' (include_path='C:\Program Files\Apache Group\Apache2\htdocs2;C:\Program Files\Apache Group\Apache2\htdocs2\app\;.;c:\php\pear;C:\Program Files\Apache Group\Apache2\htdocs2\app\vendors') in C:\Program Files\Apache Group\Apache2\htdocs2\app\vendors\PEAR\SOAP\Client.php on line 25


どうやら、「require_once 'SOAP/Value.php';」というスクリプトがエラーのようです。内容からパス指定が間違っているように思えますが、何か設定等が足りないのでしょうか?

分かる方いらっしゃいましたら、教えていただけないでしょうか。
よろしくお願い致します。
shun
投稿日時: 2007-10-8 1:46
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: vendorsにpear::soapを組み込んでSOAPを使いたい
検証はしていませんが、この情報はいかがでしょうか。

PEAR HTML_QuickForm and cakephp
http://groups.google.com/group/cake-php/browse_thread/thread/7bd6454b607a5ea/

bakeryメインテナの情報です。
tomof
投稿日時: 2007-10-8 13:31
Baker スタート
登録日: 2007-10-7
居住地: 静岡県
投稿: 7
Re: vendorsにpear::soapを組み込んでSOAPを使いたい
shunさん

情報ありがとうございます!
教えていただいた先の情報を参考にファイルの配置と設定を変更してみたところ、上手くいきました!

情報元はおそらく、「app/vendor」では無く「vendor」にPEARパッケージを配置しているようですが、それを「app/vendor」に置き換えてみました。どのように対応したか載せておきます。

1.app/vendors/pear_ini.phpを配置(ソースは下記のとおり)
引用:

define('PEAR_PATH', dirname(__FILE__) . DS . 'PEAR');
set_include_path(PEAR_PATH . PATH_SEPARATOR . get_include_path());


2.必要なパッケージをvendorに配置
引用:

app/vendors/PEAR/HTTP/*
app/vendors/PEAR/NET/*
app/vendors/PEAR/SOAP/*


3.app/views/schedules/index.thtml(適当なビューファイルでテスト)
引用:

vendor("pear_ini");
require_once('SOAP' . DS . 'Client.php');
$wsdl = new SOAP_WSDL("http://bearmini.net/publicholidays/JP.asmx?WSDL", array('timeout' => 20));
$proxy = $wsdl->getProxy();
$ary_result = $proxy->GetPublicHolidayNames(2007,10,8);
echo $ary_result[0]->value;


これで、祝日の「体育の日」をbear.miniさんの休日情報 Web サービスからSOAPを利用して取得することができました。
ポイントはpear_ini.phpだったんでしょうか。(^^;)

あと、「DS」という定数の正体が何なのかよく分からずじまいです。分かったら、再度こちらに報告したいと思います。
本当にありがとうございました。m(_ _)m

>修正
2の「vendors/PEAR/…」は「app/vendors/PEAR/…」でした。
shun
投稿日時: 2007-10-8 22:15
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: vendorsにpear::soapを組み込んでSOAPを使いたい
うまくいって何よりです。
DSは、“ディレクトリセパレータ”の略で、プラットフォーム(OS)に応じて、自動的に切り替わります!
tomof
投稿日時: 2007-10-9 0:39
Baker スタート
登録日: 2007-10-7
居住地: 静岡県
投稿: 7
Re: vendorsにpear::soapを組み込んでSOAPを使いたい
「DS」についても答えていただいて、ありがとうございます!
「PATH_SEPARATOR」みたいなものでは無いかとは思っていましたが…。
それにしても、こうやってPEARもサーバ環境に依存されずに自由に使えてしまうなんてCakePHPは本当に良いですね。安いサーバでも、いろいろ出来るのは自分にとっては本当にありがたいです(^-^)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .