2013-07-21 40 views
0

我有一個簡單的Flex項目配置(WAMP服務器連接和AMFPHP包括)。和一切似乎工作,我可以從Flex調用簡單的PHP類方法,並檢索返回的數據。Flex與AMFPHP,在PHP相對路徑

但後來我有這個小問題。我正在使用額外的PHP庫,它使用相對路徑來包含或查找其他文件。因此,這裏是一個簡化的AMFPHP /服務/目錄:

  • 服務
    • MyExampleService.php
    • LIB
      • MainLibraryFile.php
        • LibraryGlobalClass.php
      • WSDL
        • LibraryGlobalService.wsdl
        • LibraryConfig.php

然後經過一番MainLibraryFile工作中,LibraryGlobalClass.php希望讀書LibraryGlobalService.wsdl。它的構造方式是,wsdl目錄的路徑保存在LibraryConfig.php中,因此GlobalClass首先從Config文件中讀取wsdl的路徑,然後將其與Service wsdl文件名的名稱連接起來。

它看起來是這樣的:

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

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

而且似乎這兩個點(父目錄)不工作在這個AMFPHP調用方式相同。它不會從等目錄到lib目錄(通過..)然後到wsdl目錄,而是創建一些無法解決的瘋狂鏈接。

我不知道是否有辦法改變它,或者我只是誤解了一些東西。

回答

0

最佳做法是使用絕對路徑,而不是相對路徑。如何用類似dirname替換$ ConfigPathToWsdl(FILE)。 '/../wsdl'?注意它是由雙下劃線包圍的文件,如這裏在這裏的評論中所示http://php.net/manual/en/function.dirname.php

+0

感謝您的答案:)我試圖使用dirname,但它沒有解決問題。所以我最終制作了絕對路徑(但是相對於我在主庫文件中包含的庫根文件夾)。 – MyFantasy512