在生产时解析错误

时间:2013-06-14 17:10:44

标签: symfony filezilla symfony-2.2

我开发了一个Symfony2项目(v2.2.2),它在本地工作得很好。

当我在服务器上部署它时,我遇到了两个问题:

  • 文件夹/ bin不通过Filezilla传输(无法开始传输)
  • 我在调试模式下尝试访问web / app.php /时遇到了解析错误(见下文)

首先,我不明白为什么它会在本地工作,而不是在生产上。 我也猜到这些错误在哪里链接但我不知道什么是/ bin用于(只包含2个文件doctrine和doctrine.php),如果我在本地删除它继续工作......

解析错误如下:

“FatalErrorException:Parse:语法错误,意外'['在/home/colocall/twinkler/src/Tk/ExpenseBundle/Services/Expenses.php第21行”

Expenses.php第15行 - > 25:

public function getAllExpenses($member, $group)

{
    $all_expenses_col = $group->getExpenses();
    $all_expenses = array();

    foreach($all_expenses_col as $expense){
        $all_expenses[] = [$expense, $this->forYou($member, $expense)];
    }

    return $all_expenses;
}

可能链接到:当我尝试通过ssh连接更新我的数据库时,也会发生解析错误。

如果有人知道我无法使其工作的原因,那么我将失去我已经失去的一天......

提前谢谢你, 朱

1 个答案:

答案 0 :(得分:1)

您的错误是通过在代码中使用短数组语法[]生成的。

在生产服务器上的PHP 5.3.10中不可用。 PHP 5.4中引入了短语法,解释了为什么您的代码在您的开发环境中工作。

改变......

$all_expenses[] = [$expense, $this->forYou($member, $expense)];

...到

$all_expenses[] = array($expense, $this->forYou($member, $expense));

...或更新服务器的php版本,它将起作用:)