0

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

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

  • 服务
    • MyExampleService.php
      • 主库文件.php
      • 班级
        • 库GlobalClass.php
      • wsdl
        • 图书馆全球服务.wsdl
      • ETC
        • 库配置.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 调用中的工作方式不同。它不是从 etc 目录到 lib 目录(通过 ..)然后到 wsdl 目录,而是创建了一些无法解决的疯狂链接。

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

4

1 回答 1

0

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

于 2013-07-22T06:30:50.560 回答