Zend 没有向 Flash 发送响应

Zend 没有向 Flash 发送响应

我有一个使用 Flash Builder 4 创建的项目,它使用 Zend Framework 与 PHP 脚本交互,该脚本与我们的 MySQL 数据库交互。为我们设置这一切的人已经离开了公司,所以我必须尝试弄清楚这一点。看起来 Zend Framework 文件夹位于 /var/www/ZendFramework,并且此文件夹中有一个“library”文件夹,里面有一个“Zend”文件夹。

我的应用程序根文件夹中的 amf_config.ini 位于 /var/www/html/cc/ControlCenterX.XX.XXXXXX,其内容如下:

[zend]
webroot = ./
zend_path = /var/www/ZendFramework/library
[zendamf]
amf.production = false
amf.directories[]=./

并且 gateway.php 包含这些内容,我认为这是默认的:

<?php
ini_set("display_errors", 1);
$dir = dirname(__FILE__);
$webroot = $_SERVER['DOCUMENT_ROOT'];
$configfile = "$dir/amf_config.ini";

//default zend install directory
$zenddir = $webroot. '/ZendFramework/library';

//Load ini file and locate zend directory
if(file_exists($configfile)) {
 $arr=parse_ini_file($configfile,true);
 if(isset($arr['zend']['webroot'])){
  $webroot = $arr['zend']['webroot'];
  $zenddir = $webroot. '/ZendFramework/library';
 }
 if(isset($arr['zend']['zend_path'])){
  $zenddir = $arr['zend']['zend_path'];
 }
}

// Setup include path
 //add zend directory to include path
set_include_path(get_include_path().PATH_SEPARATOR.$zenddir);
// Initialize Zend Framework loader
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
// Load configuration
$default_config = new Zend_Config(array("production" => false), true);
$default_config->merge(new Zend_Config_Ini($configfile, 'zendamf'));
$default_config->setReadOnly();
$amf = $default_config->amf;

// Store configuration in the registry
Zend_Registry::set("amf-config", $amf);
// Initialize AMF Server
$server = new Zend_Amf_Server();
$server->setProduction($amf->production);
if(isset($amf->directories)) {
 $dirs = $amf->directories->toArray();
 foreach($dirs as $dir) {
     // get the first character of the path. 
     // If it does not start with slash then it implies that the path is relative to webroot. Else it will be treated as absolute path
     $length = strlen($dir);
     $firstChar = $dir;
     if($length >= 1)
      $firstChar = $dir[0];

     if($firstChar != "/"){
      // if the directory is ./ path then we add the webroot only.
      if($dir == "./"){       
       $server->addDirectory($webroot);
      }else{
       $tempPath = $webroot . "/" . $dir;
    $server->addDirectory($tempPath);
   }     
  }else{
      $server->addDirectory($dir);      
  }
 }
}
// Initialize introspector for non-production
if(!$amf->production) {
 $server->setClass('Zend_Amf_Adobe_Introspector', '', array("config" => $default_config, "server" => $server));
 $server->setClass('Zend_Amf_Adobe_DbInspector', '', array("config" => $default_config, "server" => $server));
}
// Handle request
echo $server->handle();


该应用程序在我们的本地服务器上运行良好。

我们现在正在将所有内容迁移到异地云服务器。此云服务器有多个虚拟主机,每个要迁移的本地服务器都有一个虚拟主机。我通过执行 安装了 Zend Framework apt-get install zend-framework。默认情况下,它似乎安装到 /usr/share/php/libzend-framework-php。我尝试将zend_pathamf_config.ini 中的 更改为该位置,但出现“在收到确认之前通道断开连接”错误。我尝试将 ZendFramework 文件夹从本地服务器复制到云服务器上的 /var/www/ControlCenter,这是该虚拟主机的新文档根目录,然后将zend_pathamf_config.ini 中的 更改为“/var/www/ControlCenter/ZendFramework/library”,但我得到的结果完全相同。

我的 Flash 应用程序位于 /var/www/ControlCenter/ControlCenterX.XX.XXXXXX,这也是包含 amf_config.ini、gateway.php 和我的 PHP 脚本的文件夹。

看起来 PHP 函数调用得很好。为了测试,我让该函数创建一个文本文件。当 Flash 应用程序调用 PHP 函数时,会创建文本文件,因此会调用该函数,但看起来在将数据发送回 Flash 应用程序时出现了问题。

我绝不是这类事情的专家,所以请尽可能简化你的回答:-)

谢谢!

-特拉维斯

答案1

我找到了问题所在。这实际上是 PHP 文件的问题,而不是配置问题。我的 PHP 文件结构如下:

<?php
class FLASH
{
    public static function testFunction($param1, $param2)
    {
        // do stuff
        return $value;
    }
}

if ($_GET["function"])
{
    switch($_GET["function"])
    {
        case "testFunction":
            $result = FLASH::testFunction($_GET["param1"], $_GET["param2"]);
            echo $result;
            break;
    }
}
?>

这样,我就可以通过调用“http://my-url.com/FLASH.php?function=testFunction¶m1=value1¶m2=value2“。这在我的本地服务器上完全没有问题,但出于某种原因,新服务器不喜欢该文件中的测试区域。它一直说“函数”未定义或类似的东西,谈论该if ($_GET["function"])部分。所以我把测试部分拿出来放在一个辅助文件中,命名为 testFLASH.php,并通过将 FLASH.php 包含在其中,require_once("FLASH.php");现在我可以通过调用浏览器中的 testFLASH.php 而不是 FLASH.php 来测试函数。

相关内容