我有一个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