Flex与AMFPHP,在PHP的相对路径


Flex with AMFPHP, in PHP relative path

我有一个Flex项目的简单配置(连接WAMP服务器并包括AMFPHP)。一切似乎都正常,我可以从Flex中调用简单的PHP类方法并检索返回的数据。

但是我有一个小问题。我正在使用额外的PHP库,它使用相对路径来包含或查找其他文件。这里有一个简化的Amfphp/Services/目录:

  • 服务
    • MyExampleService.php
    • lib
      • 主库文件.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" );

在这个Amfphp调用中,这两个点(父目录)的工作方式似乎不一样。它不是从etc-dir到lib-dir(通过..),然后再到wsdl-dir,而是创建了一些无法解决的疯狂链接。

我想知道是否有办法以某种方式改变它,或者我只是误解了什么。

最佳实践是使用绝对路径,而不是相对路径。用类似dirname(FILE)的东西替换$ConfigPathToWsdl怎么样?'//wsdl?请注意,它是由双下划线包围的FILE,如这里的注释所示http://php.net/manual/en/function.dirname.php