0

Flex プロジェクトの簡単な構成があります (WAMP サーバーが接続され、AMFPHP が含まれています)。Flex から単純な PHP クラス メソッドを呼び出して、返されたデータを取得できます。

しかし、私はこの小さな問題を抱えています。相対パスを使用して別のファイルをインクルードまたは検索する追加の PHP ライブラリを使用しています。したがって、ここに簡素化された Amfphp/Services/ ディレクトリがあります。

  • サービス
    • MyExampleService.php
    • ライブラリ
      • MainLibraryFile.php
      • クラス
        • LibraryGlobalClass.php
      • wsdl
        • LibraryGlobalService.wsdl
        • LibraryConfig.php

次に、いくつかの MainLibraryFile 作業の後、LibraryGlobalClass.php は LibraryGlobalService.wsdl を読み込もうとしています。wsdl のディレクトリへのパスが LibraryConfig.php に保存されるように構築されているため、GlobalClass は最初に Config ファイルから wsdl へのパスを読み取り、それをサービスの wsdl ファイル名と連結します。

次のようになります。

In LibraryConfig.php :
public $ConfigPathToWsdl = "../wsdl/";  

In LibraryGlobalClass.php :
$this->config = new LibraryConfig();
$this->ReadWSDL( $this->config->ConfigPathToWsdl . "LibraryGlobalService.wsdl" );

そして、この 2 つのドット (親ディレクトリ) は、この Amfphp 呼び出しでは同じようには機能しないようです。etc dir から lib dir ( .. を介して) に移動してから wsdl dir に移動するのではなく、解決できないクレイジーなリンクを作成します。

どうにかして変更する方法があるのだろうか、それとも私が何かを誤解しているだけなのだろうか。

4

1 に答える 1

0

ベスト プラクティスは、相対パスではなく絶対パスを使用することです。$ConfigPathToWsdl を dirname( FILE )のようなものに置き換えてみてはいかがでしょうか。「/../wsdl」? ここのコメントに示されているように、二重のアンダースコアで囲まれた FILE であることに注意してくださいhttp://php.net/manual/en/function.dirname.php

于 2013-07-22T06:30:50.560 に答える